| name | github-issues |
| description | GitHub issue management — create, update, label, milestone, and link issues to PRs via gh CLI or curl fallback. |
| version | 1.0.0 |
| author | hermes-CCC (ported from Hermes Agent by NousResearch) |
| license | MIT |
| metadata | {"hermes":{"tags":["GitHub","Issues","Project-Management","Automation","Triage"],"related_skills":["github-code-review","github-pr-workflow","github-auth"]}} |
GitHub Issues
Full issue lifecycle management using the gh CLI. Every command has a curl fallback for machines without gh.
Prerequisites
- GitHub CLI:
gh auth login (or set GH_TOKEN env var)
- curl fallback: set
GITHUB_TOKEN and know your OWNER/REPO
export OWNER=myorg
export REPO=myrepo
export GITHUB_TOKEN=ghp_...
List Issues
gh issue list
gh issue list --state open --label bug --assignee @me
gh issue list --state all --limit 50
curl -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$OWNER/$REPO/issues?state=open&per_page=20"
View an Issue
gh issue view 123
gh issue view 123 --web
curl -H "Authorization: token $GITHUB_TOKEN" \
"https://api.github.com/repos/$OWNER/$REPO/issues/123"
Create an Issue
gh issue create \
--title "Fix null pointer in auth module" \
--body "Steps to reproduce:\n1. ...\n2. ..." \
--label "bug,priority:high" \
--assignee @me
gh issue create
curl -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: application/json" \
"https://api.github.com/repos/$OWNER/$REPO/issues" \
-d '{"title":"Fix null pointer","body":"...","labels":["bug"]}'
Edit an Issue
gh issue edit 123 --add-label "priority:high"
gh issue edit 123 --remove-label "needs-triage"
gh issue edit 123 --add-assignee username
gh issue edit 123 --milestone "v2.0"
gh issue edit 123 --title "New title"
Comment on an Issue
gh issue comment 123 --body "Looking into this now."
curl -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: application/json" \
"https://api.github.com/repos/$OWNER/$REPO/issues/123/comments" \
-d '{"body":"Looking into this now."}'
Close / Reopen an Issue
gh issue close 123
gh issue close 123 --reason "completed"
gh issue close 123 --comment "Fixed in #456"
gh issue reopen 123
Search Issues
gh issue list --search "error in production"
gh issue list --search "label:bug created:>2024-01-01"
gh issue list --search "is:open is:issue assignee:@me"
Link Issues to PRs
Reference issues in PR body or commits:
Fixes #123
Closes #456
Resolves #789
GitHub auto-closes linked issues when PR merges.
Bulk Operations
gh issue list --label "wontfix" --json number --jq '.[].number' | \
xargs -I{} gh issue close {} --reason "not planned"
gh issue list --json number,title,labels,assignees --limit 100
Milestones
gh api repos/$OWNER/$REPO/milestones
gh api repos/$OWNER/$REPO/milestones \
--method POST \
-f title="v2.0" \
-f due_on="2024-06-01T00:00:00Z"
Labels
gh label list
gh label create "priority:high" --color FF0000 --description "Urgent"
gh label clone owner/source-repo
Issue Templates
Create .github/ISSUE_TEMPLATE/bug_report.md:
---
name: Bug Report
about: Report a bug
labels: bug
---
## Description
## Steps to Reproduce
## Expected vs Actual
## Environment