원클릭으로
issue-management
Work with GitHub issues - create, list, update, comment, and search issues using gh CLI
메뉴
Work with GitHub issues - create, list, update, comment, and search issues using gh CLI
GitHub code review operations - approve PRs, request changes, comment on code, and manage review workflows using gh CLI
View and analyze commits in GitHub repositories - commit history, diffs, and commit details using gh CLI
Manage GitHub gists - create, edit, list, and share code snippets using gh CLI
Manage GitHub labels - create, edit, delete, apply labels, and organize with color coding using gh CLI
GitHub PR operations - create, list, merge, update, and manage pull requests using gh CLI
Manage GitHub releases - create releases, upload assets, manage tags, and generate release notes using gh CLI
| name | issue-management |
| description | Work with GitHub issues - create, list, update, comment, and search issues using gh CLI |
This skill provides comprehensive issue management operations including creating, listing, updating, and commenting on GitHub issues.
Create a new issue in a repository with title, body, labels, and assignees.
List issues with various filters (state, labels, assignee, etc.).
Retrieve details of a specific issue.
Update issue properties like title, body, state, labels, or assignees.
Add a comment to an existing issue.
Search for issues across repositories.
Basic issue:
gh issue create --repo owner/repo-name --title "Bug: Login not working" --body "Users cannot log in with valid credentials"
Issue with labels:
gh issue create --repo owner/repo-name \
--title "Feature: Add dark mode" \
--body "Add dark mode support to the application" \
--label "enhancement" \
--label "ui"
Issue with assignee:
gh issue create --repo owner/repo-name \
--title "Fix memory leak" \
--body "Memory usage increases over time" \
--label "bug" \
--assignee username
Interactive mode:
gh issue create --repo owner/repo-name
# Follow the prompts to enter title and body
From template:
gh issue create --repo owner/repo-name --template bug_report.md
List all open issues:
gh issue list --repo owner/repo-name
List all issues (including closed):
gh issue list --repo owner/repo-name --state all
Filter by label:
gh issue list --repo owner/repo-name --label bug
Multiple labels (AND):
gh issue list --repo owner/repo-name --label bug --label critical
Filter by assignee:
gh issue list --repo owner/repo-name --assignee username
Filter by author:
gh issue list --repo owner/repo-name --author username
Limit results:
gh issue list --repo owner/repo-name --limit 50
Custom output format:
gh issue list --repo owner/repo-name --json number,title,state,labels --jq '.[] | "\(.number): \(.title)"'
View issue in terminal:
gh issue view 123 --repo owner/repo-name
View with comments:
gh issue view 123 --repo owner/repo-name --comments
View in browser:
gh issue view 123 --repo owner/repo-name --web
JSON output:
gh issue view 123 --repo owner/repo-name --json number,title,body,state,labels,assignees,createdAt
Change issue state to closed:
gh issue close 123 --repo owner/repo-name
Close with comment:
gh issue close 123 --repo owner/repo-name --comment "Fixed in PR #456"
Reopen issue:
gh issue reopen 123 --repo owner/repo-name
Edit issue title and body:
gh issue edit 123 --repo owner/repo-name \
--title "Updated title" \
--body "Updated description"
Add labels:
gh issue edit 123 --repo owner/repo-name --add-label "needs-triage"
Remove labels:
gh issue edit 123 --repo owner/repo-name --remove-label "needs-triage"
Add assignees:
gh issue edit 123 --repo owner/repo-name --add-assignee user1,user2
Remove assignees:
gh issue edit 123 --repo owner/repo-name --remove-assignee user1
Interactive edit:
gh issue edit 123 --repo owner/repo-name
Add simple comment:
gh issue comment 123 --repo owner/repo-name --body "This is my comment"
Add multi-line comment:
gh issue comment 123 --repo owner/repo-name --body "First line
Second line
Third line"
Comment from file:
gh issue comment 123 --repo owner/repo-name --body-file comment.md
Interactive comment:
gh issue comment 123 --repo owner/repo-name
# Opens editor for comment
Search across all repositories:
gh search issues "memory leak" --limit 20
Search in specific repository:
gh search issues "bug" --repo owner/repo-name
Search with filters:
gh search issues "crash" --label bug --state open --limit 10
Search by author:
gh search issues "feature" --author username
Search by date:
gh search issues "security" --created ">2025-01-01"
Search in organization:
gh search issues "todo" --owner myorg
Complex query:
gh search issues "is:open label:bug assignee:username"
# List new untriaged issues
gh issue list --repo owner/repo-name --label "needs-triage" --state open
# Review an issue
gh issue view 123 --repo owner/repo-name
# Add labels and assign
gh issue edit 123 --repo owner/repo-name \
--add-label "bug" \
--add-label "high-priority" \
--remove-label "needs-triage" \
--add-assignee developer1
# Add triage comment
gh issue comment 123 --repo owner/repo-name --body "Confirmed bug. High priority for next sprint."
# Create bug from template
gh issue create --repo owner/repo-name \
--title "Bug: API returns 500 error" \
--body "$(cat bug-details.md)" \
--label "bug" \
--label "api"
# Get issue number from output, e.g., #456
# Link to related issue
gh issue comment 456 --repo owner/repo-name --body "Related to #123"
# Update when fixed
gh issue close 456 --repo owner/repo-name --comment "Fixed in commit abc123"
Close multiple stale issues:
# List stale issues
gh issue list --repo owner/repo-name --label "stale" --state open --json number --jq '.[].number' > stale_issues.txt
# Close each one
while read issue_num; do
gh issue close $issue_num --repo owner/repo-name --comment "Closing stale issue"
done < stale_issues.txt
Add label to multiple issues:
for issue in 101 102 103 104; do
gh issue edit $issue --repo owner/repo-name --add-label "sprint-3"
done
Create from bug template:
gh issue create --repo owner/repo-name --template bug_report.md --web
Create from feature template:
gh issue create --repo owner/repo-name --template feature_request.md --web
# Check if issue exists
gh issue view 123 --repo owner/repo-name 2>&1 | grep -q "could not find" && echo "Issue not found"
# List available labels first
gh label list --repo owner/repo-name
# Then create issue with valid label
gh issue create --repo owner/repo-name --title "Test" --body "Test" --label "valid-label"
# Check repository access
gh auth status
# Verify you have write access
gh api repos/owner/repo-name --jq '.permissions'
[Open] -> [Closed] # gh issue close
[Closed] -> [Open] # gh issue reopen
[Open] -> [In Progress] # Add label/project card
[In Progress] -> [Closed] # Complete work and close
repository-management to create repos before creating issuespull-request-management to link PRs that fix issuessearch-operations for advanced cross-repository issue searchescommit-operations to reference commits that address issues