Skip to content
CAI
Software that uses CAICheck a score

defunkt/gist

53.7

Adequate · 28 September 2026

715

lines of production code

Ruby

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Ruby-based command-line tool and library for interacting with GitHub Gists. It enables users to create, read, update, and delete gists, supporting single or multiple file uploads, stdin input, and clipboard integration. The tool handles authentication via OAuth and supports both public GitHub and GitHub Enterprise environments.

Features

Added vendored JSON parser implementation

The application now includes a vendored copy of the JSON library (json.rb) in the vendor directory. This adds a pure-Ruby JSON parser implementation to the codebase, allowing the application to parse JSON strings into Ruby data structures without relying on an external C-extension or system library. This change ensures consistent JSON parsing behavior across different environments and removes potential dependency conflicts with system-installed JSON libraries.

vendor · high confidence

Executable gist CLI binary added

The repository now includes a standalone executable script at bin/gist, allowing users to interact with GitHub Gists directly from the command line. This binary supports creating, reading, updating, and deleting gists, as well as listing gists for a user. It handles authentication via an OAuth2 token obtained through the --login flag, manages file inputs (including STDIN), and provides options for private gists, URL shortening, clipboard copying, and raw URL display.

bin · high confidence

Initial release of the Gist library (v6.1.0)

This change introduces the core \lib/gist.rb\ library, establishing the foundational API for interacting with GitHub Gists. It implements functionality for creating, updating, and listing gists via the GitHub API, including support for multi-file uploads, authentication via OAuth tokens (stored in \\~/.gist\), and various output formats (HTML, short URL, JavaScript embed). The library also handles clipboard integration for copying URLs and manages HTTPS connections with certificate verification.

lib · high confidence

Initial release of the gist command-line tool and library

This change introduces the \gist\ gem, a command-line tool and Ruby library for uploading code snippets to GitHub Gists. It supports uploading single or multiple files, reading from standard input, and pasting directly from the system clipboard. Authentication is handled via GitHub's device-code OAuth flow (default) or a deprecated username/password exchange, with tokens stored securely in \\~/.gist\. The tool also provides options to create private gists, update existing ones, copy URLs to the clipboard, and open gists in a browser. Additionally, it includes a Ruby library interface (\Gist.gist\, \Gist.multi\_gist\) for programmatic access and supports GitHub Enterprise via the \GITHUB\_URL\ environment variable.

(repo-wide) · high confidence

Behavioural changes

Standalone binary and updated manpage for gist v6.1.0

The build directory now includes a generated standalone executable (build/gist) that bundles the Ruby runtime and a pure-Ruby JSON parser, allowing the tool to run without external gem dependencies. The accompanying manpage (build/gist.1) has been updated to reflect the current installation methods and documents the default GitHub device-code OAuth login flow, while noting the deprecation of the username/password flow.

build · high confidence

Test coverage

Added test suite for authentication, clipboard, and GitHub Enterprise support

This change introduces a new RSpec test suite under the \spec/\ directory to verify core application behaviors. The tests cover \AuthTokenFile\ operations (reading and writing tokens to specific file paths based on the GitHub URL), clipboard integration for copying gist URLs and JavaScript embed links, and GitHub Enterprise (GHE) connectivity by verifying API calls are routed to custom hosts when the \GITHUB\_URL\ environment variable is set. Additional tests validate the \--no-private\ flag logic, HTTP proxy handling via the \HTTP\_PROXY\ environment variable, raw URL generation, and URL shortening via git.io, while also confirming that anonymous gisting is no longer supported.

spec · high confidence

Dependencies

Initial gem packaging with development dependencies

The project is now packaged as a Ruby gem, introducing a Gemfile and gist.gemspec to manage dependencies. This setup includes development dependencies for testing and documentation (rake, rspec \>3, ronn, webmock) and configures the gem source to use https://rubygems.org.

(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

Score

  • CAI 51 → 54 (+2.6)
  • Rubric changed (rubric-2026.09.8 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 52 → 53 (+0.7)
  • Readiness 33 → 38 (+4.8)
  • Security 95 → 96 (+1.3)

Resolved (2)

  • Hotspot: lib/gist.rb (lib/gist.rb)
  • Off-boarding risk: anonymized user #1

New (5)

  • Ambiguous distinction between 'list' and 'list_all'. It is unclear if 'list_all' implies pagination handling, fetching all pages, or if it is a redundant alias for 'list_gists'.
  • Documentation: no project overview (README.md)
  • Inconsistent method naming for creating gists. 'gist' implies a single action, while 'multi_gist' implies multiple. However, 'gist' could also accept multiple files via options. The naming does not clearly distinguish between single-file and multi-file creation semantics.
  • Inconsistent naming strategy for authentication methods. 'login!' is generic, while others specify the mechanism ('device_flow', 'access_token'). This creates confusion about which method to use for standard credential-based login versus specific OAuth flows.
  • Off-boarding risk: anonymized user #1

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

Survey your own repository

defunkt/gist 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 28 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 9c684d1f683460b9501e3efcb95edcb32487ddfe — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.