$ show dlvhdr/gh-enhance
gh-enhance is a production-ready GitHub CLI extension that delivers a fast, terminal-based user interface for monitoring and interacting with GitHub Actions workflows, jobs, steps, and check runs. It is implemented as a single Go binary using the Bubble Tea framework (Elm architecture) with Lipgloss for styling and glamour for markdown rendering, and it supports three display modes: run-level, PR-level, and repository-level. The application authenticates via the GitHub CLI's OAuth token and communicates with the GitHub API through a mix of GraphQL (for PR checks and workflow run steps) and REST (for workflow runs, job logs, and rerun actions). A subprocess call to `gh run view --log --job` retrieves raw job logs, which are then parsed into an interactive, searchable view. The architecture is monolithic but well-structured, with a clean separation between the API layer, the TUI layer, and the data model, and includes a comprehensive test harness with mock API responses and a fake GitHub server for offline testing. It is actively maintained, with a responsive issue tracker and an engaged community on Discord.
The LLM identified 3 files worth highlighting for reuse:
A standalone, parameterized vertical scrollbar component implementing a local Model interface. It communicates via custom message types (Msg, HeightMsg) and can be extracted into any Bubble Tea application needing a scrollbar. Demonstrates clean separation of rendering logic and state management.
Parses GitHub Actions log lines with tab-separated fields including RFC3339 timestamps, markers (##[group], ##[error], [command]), and group nesting depth. The parser is self-contained and could be reused in any tool that needs to process raw GitHub Actions log output, such as a CI dashboard or monitoring system.
Implements a structured key binding system using Go maps with typed key sets for each TUI pane, including support for zoom modes and help overlay. The pattern is decoupled from the specific commands and could be repurposed for any terminal application needing context-sensitive keyboard shortcuts with help generation.