Skip to content
cccskills
FreePublished on GitHub

github-issues

Create, triage, label, assign GitHub issues via gh or REST.

The English summary is being prepared. Showing the original description.

Works withGitHub
See how to install

Files included (1)

  • SKILL.md3.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

GitHub Issues Management

Create, search, triage, and manage GitHub issues. Each section shows gh first, then curl fallback.

Prerequisites

  • Authenticated with GitHub (see github-auth skill)
  • Inside a git repo with GitHub remote, or specify repo explicitly

Setup

if command -v gh &>/dev/null && gh auth status &>/dev/null; then
  AUTH="gh"
else
  AUTH="curl"
fi

REMOTE_URL=$(git remote get-url origin)
OWNER_REPO=$(echo "$REMOTE_URL" | sed -E 's|.*github\.com[:/]||; s|\.git$||')
OWNER=$(echo "$OWNER_REPO" | cut -d/ -f1)
REPO=$(echo "$OWNER_REPO" | cut -d/ -f2)

1. Viewing Issues

# With gh
gh issue list --state open --limit 20
gh issue view 42

# With curl
curl -s "https://api.github.com/repos/$OWNER/$REPO/issues?state=open&per_page=20" | python3 -c "
import sys, json
for i in json.load(sys.stdin):
    print(f'#{i[\"number\"]:4d} [{i[\"state\"]:6s}] {i[\"title\"][:60]}')
"

2. Creating Issues

# With gh (interactive editor)
gh issue create

# With gh (inline)
gh issue create --title "Bug: login fails on Safari" --body "Description..."

# With curl
curl -s -X POST \
  -H "Authorization: token $GITHUB_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/issues \
  -d '{"title":"Bug: login fails","body":"Description","labels":["bug"]}'

3. Searching Issues

# Search within repo
gh issue list --search "login error" --state all

# Search across GitHub
gh search issues "is:issue is:open repo:$OWNER/$REPO label:bug"

# With curl (GitHub Search API)
curl -s "https://api.github.com/search/issues?q=repo:$OWNER/$REPO+label:bug+state:open" | python3 -c "
import sys, json
r = json.load(sys.stdin)
print(f'Total: {r[\"total_count\"]}')
for i in r['items']:
    print(f'#{i[\"number\"]:4d} {i[\"title\"][:60]}')
"

4. Labels

# List labels
gh label list

# Create label
gh label create "priority-high" --color "D73A4A" --description "High priority"

# Add label to issue
gh issue edit 42 --add-label "priority-high"

# With curl
curl -s -X POST \
  -H "Authorization: token $GITHUB_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/issues/42/labels \
  -d '{"labels":["priority-high"]}'

5. Assigning

# With gh
gh issue edit 42 --add-assignee username

# With curl
curl -s -X POST \
  -H "Authorization: token $GITHUB_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/issues/42/assignees \
  -d '{"assignees":["username"]}'

6. Comments

# With gh
gh issue comment 42 --body "Can you reproduce with the latest version?"

# With curl
curl -s -X POST \
  -H "Authorization: token $GITHUB_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/issues/42/comments \
  -d '{"body":"Can you reproduce with the latest version?"}'

7. Closing / Reopening

# With gh
gh issue close 42
gh issue reopen 42

# With curl
curl -s -X PATCH \
  -H "Authorization: token $GITHUB_TOKEN" \
  https://api.github.com/repos/$OWNER/$REPO/issues/42 \
  -d '{"state":"closed"}'

8. Triage Workflow

# List untriaged issues (no labels)
gh issue list --state open --search "no:label"

# Bulk add labels
for num in 10 11 12 13; do
  gh issue edit $num --add-label "triaged"
done

# List issues assigned to you
gh issue list --assignee @me --state open

Pitfalls

  • Issues vs PRs: GitHub API returns PRs in the issues endpoint. Filter with pull_request field: if 'pull_request' not in i.
  • Rate limits: authenticated 5000/hour, unauthenticated 60/hour. Always use token.
  • Label colors: must be 6-char hex without # (e.g. D73A4A).
  • Assignees: must be collaborators. Non-collaborators silently ignored.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Structured peer-review of academic papers.

The English summary is being prepared. Showing the original description.

HezaoHezao/poirot251Updated Jul 29, 2026

Dark-themed SVG architecture/cloud/infra diagrams as HTML.

The English summary is being prepared. Showing the original description.

HezaoHezao/poirot251Updated Jul 29, 2026

arxiv

Free

Search arXiv papers by keyword, author, category, or ID.

The English summary is being prepared. Showing the original description.

HezaoHezao/poirot251Updated Jul 29, 2026

Monitor blogs and RSS/Atom feeds via blogwatcher-cli.

The English summary is being prepared. Showing the original description.

HezaoHezao/poirot251Updated Jul 29, 2026

Onboarding conversation to generate a user profile.

The English summary is being prepared. Showing the original description.

HezaoHezao/poirot251Updated Jul 29, 2026

Generate charts: select type, extract data, render image.

The English summary is being prepared. Showing the original description.

HezaoHezao/poirot251Updated Jul 29, 2026

See all skills by HezaoHezao

Report a problem with this skill