Skip to content
CAI
Software that uses CAICheck a score

amro/gibbon

62.1

Adequate · 20 September 2026

470

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Gibbon is a Ruby library that provides a modern wrapper for the MailChimp API, enabling developers to perform CRUD operations through a fluent request builder. It handles HTTP communication via Faraday, manages structured responses and detailed error objects, and enforces secure TLS connections. The system supports configuration for timeouts, proxies, and key formatting, with a comprehensive test suite ensuring reliability across supported Ruby versions.

Behavioural changes

Gibbon 4.0.0: Complete API rewrite with modern HTTP client and structured errors

This release replaces the previous HTTP implementation with a new architecture built on Faraday, introducing a fluent \Request\ builder that supports method chaining for all CRUD operations (create, retrieve, update, upsert, delete). The library now enforces TLS 1.2 as the minimum security standard and supports Faraday v2+ authentication patterns. Users gain access to a structured \Response\ object containing parsed bodies and headers, configurable symbol/string key handling, and detailed \MailChimpError\ exceptions that expose status codes, titles, and raw bodies for better debugging. The default read and open timeouts are set to 60 seconds, and proxy support is retained via environment variables or instance configuration.

lib/gibbon · high confidence

Gibbon 4.0.0: Ruby 3.1+ requirement and TLS 1.2+ minimum

Gibbon has been updated to version 4.0.0, which raises the minimum supported Ruby version to 3.1 (dropping support for EOL versions 2.4 through 3.0) and enforces TLS 1.2 or newer for connections. The release also modernizes the development setup by loosening RSpec pinning, removing Rubinius leftovers, and updating the CI matrix to cover Ruby 3.1 through 4.0.

(repo-wide) · high confidence

Test coverage

Initial RSpec test suite for Gibbon core components; Removal of placeholder test file.

Dependencies

Gibbon library initialization and dependency requirements

The lib/gibbon.rb file now explicitly requires Faraday, multi\_json, CGI, and Logger, and loads internal helper, error, request, and response modules. This establishes the runtime dependencies and module structure for the Gibbon wrapper, ensuring these components are available when the library is loaded.

lib · high confidence

Modernize gem dependencies and Ruby requirements

The gem now requires Ruby 3.1.0 or higher and relies on Faraday \>= 1.0 and multi\_json \>= 1.11.0 for core functionality. Development dependencies have been updated to RSpec \~\> 3.13, WebMock \~\> 3.8, and YARD \~\> 0.9, while legacy development tools like shoulda, bundler 1.x, jeweler, and rcov have been removed. The Gemfile now delegates to the gemspec, and the source URL has been switched to HTTPS.

(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 62.

Lenses

  • Code Health 99
  • Architecture 69
  • Maturity 50
  • Readiness 65
  • Security 92

Changes since last survey

  • 300 commits — 266 feature/other, 34 fixes

By area

  • (root) — 174 commits
  • lib/gibbon — 62 commits
  • (repo) — 51 commits
  • spec/gibbon — 10 commits
  • .github/workflows — 2 commits
  • .github/FUNDING.yml — 1 commit

Notable commits

  • fix: Adds spec for MailChimpError; fixes error instantiation in APIRequest
  • fix: Attempt to fix rbx build on travis-ci
  • fix: Do not override MailChimpError @message, fix #170
  • fix: Fix api endpoint check and add a test or two, remove dead tests
  • fix: Fix basic auth not working with Faraday.request, using Faraday.basic_auth instead
  • fix: Fix bug where export timeout doesn't get set
  • fix: Fix campaign reports example to read response body
  • fix: Fix incorrect version number in changelog
  • fix: Fix parse error creation
  • fix: Fix readme highlighting
  • fix: Fix stale doc config and add a yard setup
  • fix: Fix static timeout bug, fix some tests
  • fix: Fix the test
  • fix: Fix upsert example in README
  • fix: Fixes #159 - campaign send not working
  • fix: Fixes statically setting faraday_adapter
  • fix: Merge pull request #124 from accessd/fix-pass-request-params
  • fix: Merge pull request #216 from brapacz/custom-logger-fix
  • fix: Revert "Add Export API support"
  • fix: Revert "Fix basic auth not working with Faraday.request, using Faraday.basic_auth instead"
  • …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

amro/gibbon 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 20 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 bceaaa914e7597f6eb8e6fde0210181547ebcbd1 — 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-b51f968c9b10.