Skip to content
CAI
Software that uses CAICheck a score

prontolabs/pronto

61.2

Adequate · 19 September 2026

1.9k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

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.