prontolabs/pronto
61.2
Adequate · 19 September 2026
1.9k
lines of production code
Ruby
primary language
1
measurement over time
What this system is
Pronto is a command-line tool that runs static analysis on code changes to facilitate automated code reviews. It integrates with Git repositories and connects to code hosting platforms like GitHub, GitLab, and Bitbucket to post feedback as comments, reviews, or status checks. The system supports configurable analyzers and output formats, allowing developers to enforce coding standards across pull requests and merge requests.
How it got here
2013 — Initial project scaffolding and core architecture
10 changes.
This period established the Pronto project's foundational structure, including configuration files, the main executable entry point, and the core static analysis runner API. It introduced the initial formatter architecture for integrating with GitHub, GitLab, and Bitbucket, alongside comprehensive test coverage and dependency management to support the gem's early releases.
2014–2017 — Git integration and Bitbucket support
6 changes.
This period focused on restructuring the Git backend into dedicated classes to support staged, unstaged, and working directory diffs, accompanied by comprehensive test coverage. It also introduced native support for Bitbucket Cloud and Bitbucket Server, enabling pull request management and comment integration. Additionally, a new GitHub Status Formatter was added to provide aggregated linting feedback directly on pull requests.
Features
Add Bitbucket and Bitbucket Server support
Users can now integrate Pronto with Bitbucket Cloud and Bitbucket Server repositories. The new BitbucketClient connects to the Bitbucket API v2.0, enabling features such as fetching pull requests, viewing and creating comments on commits and pull requests, and approving or unapproving pull requests. The BitbucketServerClient provides similar functionality for self-hosted Bitbucket Server instances, supporting pull request retrieval and comment management via the server's API.
lib/pronto/clients · high confidence
Added pronto executable entry point
A new executable script named 'pronto' has been added to the bin directory. This script serves as the entry point for the Pronto CLI tool, initializing the command-line interface by requiring the necessary libraries and starting the application.
bin · high confidence
Initial project scaffolding and configuration
This change establishes the foundational structure for the Pronto project by adding essential configuration files: \.rspec\ for test runner settings, \.rubocop.yml\ for Ruby code style enforcement, and \CONTRIBUTING.md\ for developer guidelines. It also updates the \Rakefile\ to use standard Bundler gem tasks and adds a coverage task, while removing the legacy Travis CI configuration (\.travis.yml\) and updating the license year to 2018.
(repo-wide) · high confidence
Initial release of Pronto static analysis runner
This commit introduces the Pronto gem, a tool for running static analysis on code changes. It provides a core API to diff commits, run configured analyzers (runners), and format results using a variety of built-in formatters including text, JSON, Checkstyle, and specific integrations for GitHub, GitLab, and Bitbucket pull requests.
lib · high confidence
Introduce GitHub Status Formatter for PR feedback
Added a new \GithubStatusFormatter\ that posts a single, aggregated status check to GitHub Pull Requests. The formatter summarizes lint results by counting issues per severity level (info, warning, error, fatal) and displays a human-readable summary (e.g., "Found 2 warnings.") or "Coast is clear!" if no issues are present. It maps these levels to GitHub status states (success or failure) and uses a specific context name (e.g., \pronto/\<runner-title\>\) to distinguish checks from different linters.
_lib/pronto/formatter/github\_status\formatter · high confidence
New Travis CI integration rake task
A new \Pronto::RakeTask::TravisPullRequest\ rake task has been added to automate code review runs on Travis CI. When the \TRAVIS\_PULL\_REQUEST\ environment variable is present, the task automatically loads all installed Pronto formatters and runs them against the pull request's base SHA, posting results via the GitHub formatter. The task is verbose by default and can be customized via the \name\ and \verbose\ accessors.
_lib/pronto/rake\task · high confidence
Pronto version 0.11.5 release with Bitbucket support and CLI enhancements
This release updates Pronto to version 0.11.5 and introduces several key capabilities. It adds native support for Bitbucket and Bitbucket Server, allowing users to run Pronto against pull requests on these platforms via new \Bitbucket\ and \BitbucketServer\ client classes. The CLI is enhanced with a \list\ command to show available runners, a \version\ command, and a \--verbose-version\ flag that displays the Ruby environment details. Configuration is now centralized in a \Config\ class that supports environment variables prefixed with \PRONTO\_\ (e.g., \PRONTO\_PULL\_REQUEST\_ID\) and a \.pronto.yml\ file, deprecating the old \PULL\_REQUEST\_ID\ variable. The system also introduces a \Runner\ architecture that allows filtering which runners to execute and which files to exclude, along with a \max\_warnings\ configuration option to limit the number of warnings reported per review.
lib/pronto · high confidence
Rewritten formatter architecture with new integrations and output formats
The formatter system has been completely restructured to support multiple output formats and code-hosting platforms. Users can now generate reports in Checkstyle XML and JSON, or post feedback to GitHub (as commit comments, pull request reviews, or combined statuses), GitLab (as commit comments or merge request reviews), and Bitbucket (as commit comments or pull request reviews, with optional auto-approval). The text output now supports colorized terminal display and configurable message templates, while a new registration system allows custom formatters to be added easily.
lib/pronto/formatter · high confidence
Behavioural changes
Refactor Git integration into dedicated Pronto::Git classes
The Git backend has been restructured into distinct classes (Pronto::Git::Repository, Patch, Patches, Line) to improve code organization and maintainability. This change introduces support for analyzing unstaged changes via a new --unstaged option (renamed from --index), adds a --staged option for staged diffs, and includes a --workdir option for working directory diffs. It also fixes rename detection by using find\_similar! and ensures the repository path is returned as a Pathname object.
lib/pronto/git · high confidence
Test coverage
Added test coverage for Bitbucket and Bitbucket Server clients; Added test coverage for Pronto Git module classes; Added test coverage for Pronto core components and integrations; Added test coverage for Pronto formatters; Added test fixtures for git history and checkstyle parsing; Added tests for Pronto.run and configured RSpec with randomization and code coverage.
Dependencies
Updated gem dependencies and refined gemspec configuration
The pronto gem's dependencies have been updated to support newer versions of key libraries, including rugged (\>= 0.23.0, \< 2.0), octokit (\>= 4.7.0, \< 11.0), and gitlab (\>= 4.4.0, \< 7.0), while adding runtime dependencies for ostruct, rainbow, rexml, and httparty. Development dependencies have also been refreshed, with rspec upgraded to \~\> 3.4 and simplecov constrained to avoid specific flaky versions. Additionally, the gemspec now explicitly requires Ruby \>= 2.3.0, includes MIT license information, and restricts packaged files to those necessary for the library, excluding test and configuration files.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 61.
Lenses
- Code Health 100
- Architecture 90
- Maturity 49
- Readiness 64
- Security 69
Changes since last survey
- 300 commits — 272 feature/other, 28 fixes
By area
- (root) — 156 commits
- lib/pronto — 64 commits
- (repo) — 39 commits
- .github/workflows — 20 commits
- spec/pronto — 17 commits
- spec/fixtures — 2 commits
- .github/CODEOWNERS — 1 commit
- .github/dependabot.yml — 1 commit
Notable commits
- fix: Fix #139 - Add article on how to build new runner
- fix: Fix ${line} in text format to mean line number
- fix: Fix AbcSize cop name in .rubocop.yml
- fix: Fix Rubocop warnings
- fix: Fix Rubocop warnings
- fix: Fix commits until walk
- fix: Fix error when get config in bitbucket_pull_request_formater
- fix: Fix for GithubSpec Test (fixes #324) (#325)
- fix: Fix query params in BitbucketServerClient
- fix: Fix rubocop warnings
- fix: Fix running pronto inside git submodules (#387)
- fix: Fix the code coverage badge
- fix: Fix to sort runner in alphabetical order
- fix: Fix travis ruby version: 2.1.10 -> 2.1
- fix: Fix unclosed code span (#313)
- fix: Fix unintentional class conversion
- fix: GithubSpec: fixed test
- fix: Merge pull request #203 from juno/fix-error-on-excluding
- fix: Merge pull request #215 from astrauka/fix/do_not_modify_patches
- fix: Merge pull request #234 from aergonaut/fix/require-delegate
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
prontolabs/pronto was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit da52c9c6ff4f58a579550f9803c051d0acdd4941 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.