Pronto runs analysis quickly by checking only the relevant changes. Created to be used on pull requests, but also works locally and integrates with GitLab. Perfect if want to find out quickly if branch introduces changes that conform to your styleguide, are DRY, don't introduce security holes and more.
Pronto runs the checks on a diff between the current HEAD and the provided commit-ish (default is master).
You can run Pronto locally. First, install Pronto and the runners you want to use:
gem install pronto
gem install pronto-rubocop
Then navigate to the repository you want to run Pronto on, and:
git checkout feature/branch
# Analyze diff of committed changes on current branch and master:
pronto run
# Analyze diff of uncommitted changes and master:
pronto run --index
# Analyze *all* changes since the *initial* commit (may take some time):
pronto run --commit=$(git log --pretty=format:%H | tail -1)
Just run pronto
without any arguments to see what Pronto is capable of.
You can run Pronto as a step of your CI builds and get the results as comments
on GitHub commits using GithubFormatter
or GithubPullRequestFormatter
.
Add Pronto runners you want to use to your Gemfile:
gem 'pronto'
gem 'pronto-rubocop', require: false
gem 'pronto-scss', require: false
or gemspec file:
s.add_development_dependency 'pronto'
s.add_development_dependency 'pronto-rubocop'
s.add_development_dependency 'pronto-scss'
Set the GITHUB_ACCESS_TOKEN environment variable to OAuth token that has access to the repository.
Then just run it:
GITHUB_ACCESS_TOKEN=token pronto run -f github -c origin/master
or, if you want comments to appear on pull request diff, instead of commit:
GITHUB_ACCESS_TOKEN=token PULL_REQUEST_ID=id pronto run -f github_pr -c origin/master
As an alternative, you can also set up a rake task:
Pronto.gem_names.each { |gem_name| require "pronto/#{gem_name}" }
formatter = Pronto::Formatter::GithubFormatter.new # or GithubPullRequestFormatter
Pronto.run('origin/master', '.', formatter)
You can run Pronto as a step of your CI builds and get the results as comments
on GitLab commits using GitlabFormatter
.
note: this requires at least GitLab v7.5.0
Add Pronto runners you want to use to your Gemfile:
gem 'pronto'
gem 'pronto-rubocop', require: false
gem 'pronto-scss', require: false
or gemspec file:
s.add_development_dependency 'pronto'
s.add_development_dependency 'pronto-rubocop'
s.add_development_dependency 'pronto-scss'
Set the GITLAB_API_ENDPOINT
environment variable to your API endpoint URL.
If you are using Gitlab.com's hosted service your endpoint will be https://gitlab.com/api/v3
.
Set the GITLAB_API_PRIVATE_TOKEN
environment variable to your Gitlab private token
which you can find in your account settings.
Then just run it:
GITLAB_API_ENDPOINT="https://gitlab.com/api/v3" GITLAB_API_PRIVATE_TOKEN=token pronto run -f gitlab -c origin/master
As an alternative, you can also set up a rake task:
Pronto.gem_names.each { |gem_name| require "pronto/#{gem_name}" }
formatter = Pronto::Formatter::GitlabFormatter.new
Pronto.run('origin/master', '.', formatter)
Pronto can run various tools and libraries, as long as there's a runner for it. Currently available: