defunkt/gist
53.7
Adequate · 28 September 2026
715
lines of production code
Ruby
primary language
2
measurements over time
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.