Skip to content

Conversation

@luqven
Copy link
Owner

@luqven luqven commented Dec 29, 2025

Summary

Add comprehensive documentation for the status command:

  • Usage examples
  • Status bits explanation (CI, Approved, Mergeable, Stack clear)
  • Flag descriptions
  • Output format examples (Unicode, ASCII, JSON)
  • Legend behavior
  • Integration with log --status

Documentation

See docs/status.md for the full documentation.


Part 5 of 5 in the status-command stack

Stacked PR Chain: status-command

PR Title Merges Into
#30 Add head_sha/html_url accessors to PullRequest -
#31 Add GitHub Checks API module #30
#32 Add status module with core logic and rendering #31
#33 Add status subcommand and log --status flag #32
#34 👉Add status command documentation #33

These accessors are needed for the upcoming status command:
- head_sha() returns the commit SHA for check status lookups
- raw_title() returns unformatted title for display
- html_url() converts API URL to web URL for display

Handles both github.com and enterprise GitHub URLs.
Add api/checks.rs with:
- fetch_check_status() - get CI status for a commit SHA
- fetch_mergeable_status() - get PR mergeable state
- CheckStatus/CheckState types for status representation
- Proper error handling for rate limits and API errors
- 14 tests including unit tests and async/mock tests

Also adds tempfile dev dependency for upcoming legend file tests.
Add status.rs with:
- StatusBit enum (Passed/Failed/Pending/NotApplicable)
- PrStatus struct with CI/approval/mergeable/stack_clear bits
- build_status_entries() - fetch and compute status for stack
- render_status() - format output with status bits (unicode/ASCII)
- render_status_json() - JSON output format
- Legend detection via ~/.gh-stack-legend-seen (first-run only)
- Title truncation to 50 chars

Includes 38 tests:
- 29 unit tests for status bit logic, formatting, stack computation
- 9 snapshot tests for output rendering

Also adds dirs dependency for home directory detection and
Serialize derive to CommitInfo for JSON output.
Add CLI integration for status feature:
- gh-stack status <identifier> - show stack with status bits
- gh-stack log --status <identifier> - alias for status view

Status command flags:
- --no-checks: skip fetching CI/approval/conflict status
- --no-color: disable colors and Unicode characters
- --help-legend: show status bits legend
- --json: output in JSON format
- -C, --project: path to local repository
- -r, --repository: specify repository
- -o, --origin: specify git remote

Legend is shown on first run, then only with --help-legend.
Document the status command including:
- Usage examples
- Status bits explanation (CI, Approved, Mergeable, Stack clear)
- Flag descriptions
- Output format examples (Unicode, ASCII, JSON)
- Legend behavior
- Integration with log --status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants