--- name: github description: "Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries. Use when the user asks about GitHub issues, pull requests, workflows, or wants to interact with GitHub repositories from the command line — including tasks like check CI status, create PR, list issues, or query the GitHub API." --- # GitHub Skill Use the `gh` CLI to interact with GitHub. Always specify `--repo owner/repo` when not in a git directory, or use URLs directly. ## Pull Requests Check CI status on a PR: ```bash gh pr checks 55 --repo owner/repo ``` List recent workflow runs: ```bash gh run list --repo owner/repo --limit 10 ``` View a run and see which steps failed: ```bash gh run view --repo owner/repo ``` View logs for failed steps only: ```bash gh run view --repo owner/repo --log-failed ``` ### Debugging a CI Failure Follow this sequence to investigate a failing CI run: 1. **Check PR status** — identify which checks are failing: ```bash gh pr checks 55 --repo owner/repo ``` 2. **List recent runs** — find the relevant run ID: ```bash gh run list --repo owner/repo --limit 10 ``` 3. **View the failed run** — see which jobs and steps failed: ```bash gh run view --repo owner/repo ``` 4. **Fetch failure logs** — get the detailed output for failed steps: ```bash gh run view --repo owner/repo --log-failed ``` ## API for Advanced Queries The `gh api` command is useful for accessing data not available through other subcommands. Get PR with specific fields: ```bash gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login' ``` ## JSON Output Most commands support `--json` for structured output. You can use `--jq` to filter: ```bash gh issue list --repo owner/repo --json number,title --jq '.[] | "\(.number): \(.title)"' ```