with one click
pull-request-management
GitHub PR operations - create, list, merge, update, and manage pull requests using gh CLI
Menu
GitHub PR operations - create, list, merge, update, and manage pull requests 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
Work with GitHub issues - create, list, update, comment, and search issues using gh CLI
Manage GitHub labels - create, edit, delete, apply labels, and organize with color coding using gh CLI
Manage GitHub releases - create releases, upload assets, manage tags, and generate release notes using gh CLI
| name | pull-request-management |
| description | GitHub PR operations - create, list, merge, update, and manage pull requests using gh CLI |
This skill provides comprehensive pull request (PR) management operations including creating, listing, reviewing, merging, and managing PR status.
Create a new pull request from one branch to another.
List PRs with filters (state, base branch, head branch, etc.).
Retrieve detailed information about a specific PR.
View the list of files changed in a PR.
Check the status of CI/CD checks and reviews.
View review comments on a PR.
View all reviews submitted on a PR.
Update PR branch with latest changes from base branch.
Merge a pull request using different merge strategies.
Basic PR:
gh pr create --repo owner/repo-name \
--base main \
--head feature-branch \
--title "Add new feature" \
--body "This PR adds a new feature to the application"
PR with labels and reviewers:
gh pr create --repo owner/repo-name \
--base main \
--head feature-branch \
--title "Fix critical bug" \
--body "Fixes issue #123" \
--label "bug" \
--label "urgent" \
--reviewer reviewer1,reviewer2
Draft PR:
gh pr create --repo owner/repo-name \
--base main \
--head feature-branch \
--title "WIP: New feature" \
--body "Work in progress" \
--draft
Interactive PR creation:
gh pr create --repo owner/repo-name
# Follow prompts for base, title, and body
PR from current branch:
cd repo-name
git checkout feature-branch
gh pr create --title "My feature" --body "Description"
PR with template:
gh pr create --repo owner/repo-name --template pull_request_template.md
List all open PRs:
gh pr list --repo owner/repo-name
List all PRs (including closed):
gh pr list --repo owner/repo-name --state all
List closed/merged PRs:
gh pr list --repo owner/repo-name --state closed
gh pr list --repo owner/repo-name --state merged
Filter by base branch:
gh pr list --repo owner/repo-name --base main
Filter by head branch:
gh pr list --repo owner/repo-name --head feature-branch
Filter by label:
gh pr list --repo owner/repo-name --label "needs-review"
Filter by author:
gh pr list --repo owner/repo-name --author username
Filter by assignee:
gh pr list --repo owner/repo-name --assignee username
Limit results:
gh pr list --repo owner/repo-name --limit 50
Custom JSON output:
gh pr list --repo owner/repo-name --json number,title,state,headRefName --jq '.[] | "\(.number): \(.title) (\(.headRefName))"'
View PR in terminal:
gh pr view 123 --repo owner/repo-name
View with comments:
gh pr view 123 --repo owner/repo-name --comments
View in browser:
gh pr view 123 --repo owner/repo-name --web
JSON output:
gh pr view 123 --repo owner/repo-name --json number,title,body,state,isDraft,mergeable,reviews,statusCheckRollup
Get PR by branch:
gh pr view feature-branch --repo owner/repo-name
List changed files:
gh pr diff 123 --repo owner/repo-name --name-only
View full diff:
gh pr diff 123 --repo owner/repo-name
View diff for specific file:
gh pr diff 123 --repo owner/repo-name -- path/to/file.js
Get file list with stats:
gh api repos/owner/repo-name/pulls/123/files --jq '.[] | "\(.filename): +\(.additions) -\(.deletions)"'
Check overall status:
gh pr view 123 --repo owner/repo-name --json statusCheckRollup
Check if checks passed:
gh pr checks 123 --repo owner/repo-name
Watch checks in real-time:
gh pr checks 123 --repo owner/repo-name --watch
Check specific workflow:
gh pr checks 123 --repo owner/repo-name --json | jq '.[] | select(.name=="CI")'
View comments:
gh pr view 123 --repo owner/repo-name --comments
Get review comments as JSON:
gh api repos/owner/repo-name/pulls/123/comments --jq '.[] | {author: .user.login, body: .body, path: .path}'
List all conversation threads:
gh pr view 123 --repo owner/repo-name --json comments --jq '.comments[] | "\(.author.login): \(.body)"'
View all reviews:
gh pr view 123 --repo owner/repo-name --json reviews
Check review status:
gh pr view 123 --repo owner/repo-name --json reviewDecision
# Returns: APPROVED, CHANGES_REQUESTED, or REVIEW_REQUIRED
List reviewers:
gh pr view 123 --repo owner/repo-name --json reviews --jq '.reviews[] | {reviewer: .author.login, state: .state}'
Update with base branch:
gh pr checkout 123 --repo owner/repo-name
git pull origin main
git push
Rebase on base branch:
gh pr checkout 123 --repo owner/repo-name
git fetch origin
git rebase origin/main
git push --force-with-lease
Merge base into PR branch:
gh pr checkout 123 --repo owner/repo-name
git merge origin/main
git push
Using GitHub API to update:
gh api repos/owner/repo-name/pulls/123/update-branch -X PUT
Merge with merge commit:
gh pr merge 123 --repo owner/repo-name --merge
Squash and merge:
gh pr merge 123 --repo owner/repo-name --squash
Rebase and merge:
gh pr merge 123 --repo owner/repo-name --rebase
Auto-merge when checks pass:
gh pr merge 123 --repo owner/repo-name --auto --squash
Merge with custom commit message:
gh pr merge 123 --repo owner/repo-name --squash --subject "feat: add new feature" --body "Detailed description"
Delete branch after merge:
gh pr merge 123 --repo owner/repo-name --squash --delete-branch
Merge and close issues:
gh pr merge 123 --repo owner/repo-name --squash --body "Fixes #456, closes #457"
# 1. Create feature branch
cd repo-name
git checkout -b feature/new-feature
git commit -m "Add feature"
git push -u origin feature/new-feature
# 2. Create PR
gh pr create --title "Add new feature" --body "Implements feature X"
# 3. Check status
gh pr checks --watch
# 4. Request reviews
gh pr edit --add-reviewer team1,user1
# 5. Respond to feedback
git commit -m "Address review comments"
git push
# 6. Merge when ready
gh pr merge --squash --delete-branch
# 1. List PRs needing review
gh pr list --label "needs-review" --repo owner/repo-name
# 2. View PR details
gh pr view 123 --comments
# 3. Check out PR locally
gh pr checkout 123
# 4. Test changes
npm test
# 5. Add review (see code-review skill)
gh pr review 123 --approve --body "LGTM!"
# 6. Merge if approved
gh pr merge 123 --squash
# 1. Check if PR has conflicts
gh pr view 123 --json mergeable
# 2. Check out PR
gh pr checkout 123
# 3. Update with base branch
git fetch origin
git merge origin/main
# 4. Resolve conflicts
# (manually edit files)
# 5. Complete merge
git add .
git commit -m "Resolve merge conflicts"
git push
# 1. Create draft PR
gh pr create --draft --title "WIP: Feature X"
# 2. Continue working
git commit -m "Progress on feature"
git push
# 3. Mark as ready when done
gh pr ready 123
# 4. Request reviews
gh pr edit 123 --add-reviewer team1
# Enable auto-merge when checks pass
gh pr merge 123 --auto --squash
# Cancel auto-merge
gh pr merge 123 --auto=false
# Check for existing PR from branch
gh pr list --head feature-branch --repo owner/repo-name
# Check if PR is mergeable
gh pr view 123 --json mergeable --jq '.mergeable'
# If not mergeable, update branch
gh pr checkout 123
git merge origin/main
# Resolve conflicts, commit, push
# View failed checks
gh pr checks 123 --repo owner/repo-name
# View workflow runs
gh run list --branch feature-branch
# Rerun failed checks
gh run rerun <run-id>
# Check permissions
gh api repos/owner/repo-name --jq '.permissions'
# Ensure you're authenticated
gh auth status
[Draft] -> [Ready for Review] # gh pr ready
[Open] -> [Merged] # gh pr merge
[Open] -> [Closed] # gh pr close
[Closed] -> [Open] # gh pr reopen
[Open] -> [Auto-merge Enabled] # gh pr merge --auto
issue-management to link PRs to issuescode-review to add reviews and commentscommit-operations to view commit historyrepository-management to manage branches