inaka/shotgun
56.6
Adequate · 2 October 2026
820
lines of production code
Erlang
primary language
2
measurements over time
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.