{"id":28566790,"url":"https://github.com/salsify/salsify_rubocop","last_synced_at":"2026-03-05T18:09:11.711Z","repository":{"id":8662156,"uuid":"59226827","full_name":"salsify/salsify_rubocop","owner":"salsify","description":"Salsify shared RuboCop configuration and experimental cops","archived":false,"fork":false,"pushed_at":"2026-03-05T13:39:02.000Z","size":113,"stargazers_count":5,"open_issues_count":4,"forks_count":1,"subscribers_count":35,"default_branch":"master","last_synced_at":"2026-03-05T16:38:18.422Z","etag":null,"topics":["gem"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salsify.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-05-19T17:13:13.000Z","updated_at":"2025-11-06T13:15:09.000Z","dependencies_parsed_at":"2024-07-22T17:45:21.598Z","dependency_job_id":null,"html_url":"https://github.com/salsify/salsify_rubocop","commit_stats":null,"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"purl":"pkg:github/salsify/salsify_rubocop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsify%2Fsalsify_rubocop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsify%2Fsalsify_rubocop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsify%2Fsalsify_rubocop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsify%2Fsalsify_rubocop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salsify","download_url":"https://codeload.github.com/salsify/salsify_rubocop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salsify%2Fsalsify_rubocop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30141585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gem"],"created_at":"2025-06-10T15:38:53.644Z","updated_at":"2026-03-05T18:09:11.698Z","avatar_url":"https://github.com/salsify.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# salsify_rubocop\n\nThis gem provides shared configuration for RuboCop for Salsify applications/gems and some experimental cops.\n\n[RuboCop](https://github.com/bbatsov/rubocop) is a static code analyzer that \ncan enforce style conventions as well as identify common problems.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngroup :development, :test do\n  gem 'salsify_rubocop', require: false\nend  \n```\n\nOr to your gem's gemspec file:\n\n```ruby\nspec.add_development_dependency 'salsify_rubocop'\n```\n\nIf you created your gem using \n[cookiecutter-salsify-gem](https://github.com/salsify/cookiecutter-salsify-gem)\nthen this dependency was added automatically.\n\nThen execute:\n\n    $ bundle install\n\nIt's best to ensure that you're starting from the latest release, so execute:\n\n    $ bundle update salsify_rubocop\n\n## Configuration\n\nTo use one of the shared RuboCop configurations from this gem, you must define\na `.rubocop.yml` file at the top-level directory in your project:\n\n```yaml\ninherit_gem:\n  salsify_rubocop: conf/rubocop_rails.yml\n```\n\nFurther customization of RuboCop for your local project may also be added to\nthis file.\n\n### Available Configurations\n\n- **rubocop_rails**: For Rails projects, this inherits from **rubocop**.\n- **rubocop**: Assumes RSpec is used and requires \n  [rubocop-rspec](https://github.com/nevir/rubocop-rspec). This configuration\n  is the default for gems. This inherits from **rubocop_without_rspec**.\n- **rubocop_without_rspec**: Configuration without `rubocop-rspec`. This is \n  intended for gems that we may have forked and taken ownership of without\n  converting tests from a different framework.\n  \n## Usage\n\nRun `rubocop` for an entire project:\n\n    $ bundle exec rubocop --format fu\n    \nSee the `rubocop` command-line for additional options including auto-generating\nconfiguration for existing offenses and auto-correction.\n\n### Overcommit\n\nConsider using [overcommit](https://github.com/brigade/overcommit) to \nautomatically run `rubocop` on changed files before committing.\n\nThis is automatically added by \n[cookiecutter-salsify-gem](https://github.com/salsify/cookiecutter-salsify-gem/blob/master/%7B%7Bcookiecutter.repo_name%7D%7D/.overcommit.yml).\n\n### CI\n\nConsider running `rubocop` prior to running tests in CI for your project. \n\nTODO: add more info here.\n\n## Versioning\n\nThis gem is versioned based on the MAJOR.MINOR version of `rubocop`. The first\nrelease of the `salsify_rubocop` gem was v0.40.0.\n\nThe patch version for this gem does _not_ correspond to the patch version of \n`rubocop`. The patch version for this gem will change any time that one of its\nconfigurations is modified _or_ its dependency on `rubocop` is changed to require\na different patch version.\n\nThis gem also includes a dependency on `rubocop-rspec` that will be updated to\nthe latest compatible version each time that the MAJOR.MINOR version of `rubocop` \nis updated.\n\n## Change Process\n\nThis configuration is meant to represent the general opinion of Salsify's Ruby community around best practices for\nwriting readable Ruby code. As a result, changes to this configuration should go through a discussion phase in the\n#rubocop-changes Slack channel to ensure the broader Salsify Ruby community is on board with the change. Non-Salsify\ndevelopers should file an issue via GitHub with proposed changes.\n\nWhen enabling a cop we try to keep the following points in mind to avoid overburdening consumers:\n\n* Does the cop support safe auto-correction? If not, do we expect a large number of offenses needing manual remediation?\n* Does the cop help avoid bugs or is it merely stylistic?\n* For stylistic cops, does the enforced style reflect that of Salsify developers?\n\n### Updating RuboCop\n\nUpdating to a new minor version of `rubocop` may add new \"pending\" cops which are not enabled until the next major\nversion (see: [RuboCop Versioning](https://docs.rubocop.org/rubocop/versioning.html)). However, we may wish to eagerly\nenable or explicitly disable newly introduced cops. Any such decisions around \"pending\" cops should go through the\nchange process described above.\n\nWhen updating to a new major version or updating other dependencies that don't follow the same versioning pattern, we\nshould check if there are any newly enabled cops included in the update. Any new cops should go through a review process\nin #rubocop-changes to ensure we truly want to enable the cop.\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec salsify_rubocop` to use the gem in this directory, ignoring other installed copies of this gem.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/salsify/salsify_rubocop.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalsify%2Fsalsify_rubocop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalsify%2Fsalsify_rubocop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalsify%2Fsalsify_rubocop/lists"}