Gitlab::Styles centralizes some shared GitLab's styles config (only RuboCop
for now), as well as custom RuboCop cops.
Add this line to your application's Gemfile:
gem 'gitlab-styles', require: false
And then execute:
Or install it yourself as:
$ gem install gitlab-styles
Inherit all rules
Include the following in your
.rubocop.yml and remove all the rules that are
inherit_gem: gitlab-styles: - rubocop-default.yml
Inherit only some kind of rules
The rules are grouped by type so you can choose to inherit only some kind of rules:
inherit_gem: gitlab-styles: - rubocop-gemspec.yml - rubocop-naming.yml
After checking out the repo, run
bin/setup to install dependencies.
rake spec to run the tests. You can also run
bin/console for an
interactive prompt that will allow you to experiment.
To test some rules locally, there is a test application in the playground folder. It is a vanilla Rails 6 application with your local
gitlab-styles included, and it is used to test RuboCop rules. You can add code in it (preferably RuboCop offenses) and run the following command to test the RuboCop policy we setup:
cd playground bundle install bundle exec rubocop -c .rubocop.yml
Activate lefthook locally
gitlab-styles on an ad-hoc basis. There is no regularity to when
we release, we just release when we make a change - no matter the size of the
To release a new version:
- Create a Merge Request.
- Use Merge Request template Release.md.
- Follow the instructions.
- (Optional, but appreciated) Create an MR on
gitlab-org/gitlabproject with the
New Version of gitlab-styles.mdtemplate to test the new version of
gitlab-styles, and follow the MR instructions.
- After the Merge Request has been merged, a new gem version is published automatically
See !123 as an example.
Bug reports and merge requests are welcome on GitLab at https://gitlab.com/gitlab-org/gitlab-styles. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the
Gitlab::Styles project’s codebases, issue trackers,
chat rooms and mailing lists is expected to follow the
code of conduct.