81 lines
2.2 KiB
Markdown
81 lines
2.2 KiB
Markdown
---
|
|
name: github
|
|
description: "Use the `gh` CLI for issues, pull requests, Actions runs, and GitHub API queries."
|
|
risk: safe
|
|
source: "Dimillian/Skills (MIT)"
|
|
date_added: "2026-03-25"
|
|
---
|
|
|
|
# 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.
|
|
|
|
## When to Use
|
|
- When the user asks about GitHub issues, pull requests, workflow runs, or CI failures.
|
|
- When you need `gh issue`, `gh pr`, `gh run`, or `gh api` from the command line.
|
|
|
|
## 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 <run-id> --repo owner/repo
|
|
```
|
|
|
|
View logs for failed steps only:
|
|
```bash
|
|
gh run view <run-id> --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 <run-id> --repo owner/repo
|
|
```
|
|
4. **Fetch failure logs** — get the detailed output for failed steps:
|
|
```bash
|
|
gh run view <run-id> --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)"'
|
|
```
|
|
|
|
## Limitations
|
|
- Use this skill only when the task clearly matches the scope described above.
|
|
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
|
|
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
|