Skip to content
CAI
Software that uses CAICheck a score

inaka/shotgun

56.6

Adequate · 2 October 2026

820

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Shotgun is an Erlang HTTP client library that provides a high-level API for making standard HTTP requests and handling Server-Sent Events. Built on top of the Gun library, it manages connections via a gen\_statem behavior and includes a comprehensive test suite covering core methods, authentication, and streaming scenarios.

Features

Added default system configuration for the shotgun application

A new rel/sys.config file has been introduced to define the default configuration for the shotgun application. The file initializes the shotgun application with an empty configuration list, establishing the baseline settings for the release environment.

rel · high confidence

Initial release of Shotgun HTTP client

This change introduces the Shotgun library, an HTTP client built on top of Gun. It provides a high-level API for making HTTP requests (GET, POST, PUT, DELETE, etc.) and handling Server-Sent Events (SSE). The package includes the main \shotgun\ module implementing a \gen\_statem\ behavior for connection management, along with application (\shotgun\_app\) and supervisor (\shotgun\_sup\) modules to manage the process tree. Users can now open connections, send requests with various options (async, timeout, SSL), and parse SSE events.

src · high confidence

Test coverage

Added comprehensive test suite for Shotgun HTTP client

Added Common Test (CT) suites and supporting test infrastructure to verify the Shotgun HTTP client library. The new tests cover core HTTP methods (GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH), basic authentication, and error handling for invalid URIs. Additionally, the suite includes tests for asynchronous operations, specifically Server-Sent Events (SSE) and binary streaming, including event parsing, custom event handlers, and connection drop scenarios with and without reconnection enabled.

test · high confidence

Dependencies

Migrate to rebar3 and upgrade Gun dependency to v2

The project has switched its build system from erlang.mk to rebar3, introducing a new rebar.config and lockfile while removing legacy build artifacts. The underlying HTTP client dependency, Gun, has been upgraded to version 2.2 (resolved to 2.4.1 in the lockfile), requiring users to update their environment accordingly. Additionally, the project now requires Erlang 17 or later due to the use of maps in the API.

(repo-wide) · 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

Score

  • CAI 47 → 57 (+10.0)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 97 → 97 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 32 → 32 (+0.0)
  • Readiness 36 → 80 (+43.6)
  • Security 100 → 98 (-2.0)

Resolved (3)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no architecture or design documentation (README.md)
  • Documentation: no usage examples (README.md)

New (4)

  • High CVE: [GHSA redacted] (rebar.lock)
  • Medium CVE: [GHSA redacted] (rebar.lock)
  • Outdated: gun
  • Unbounded dependency requirement: cowlib

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

inaka/shotgun 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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 213dca3071a2a47bc2074b867f1196ab2873a656 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.