GitHub Pull Request Workflow
SkillDev toolsGitHub PR lifecycle: branch, commit, open, CI, merge.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the GitHub Pull Request Workflow skill
What this skill tells your AI
The instructions your AI receives, as published by hezaohezao/poirot in poirot/backend/agents/skill/builtin_skills/software-development/github-pr-workflow/SKILL.md and read by ahel’s review.
Complete guide for managing the PR lifecycle. gh first, git + curl
fallback.
Prerequisites
- Authenticated with GitHub (see
github-authskill) - Inside a git repository with a GitHub remote
1. Branch & Commit
# Create feature branch
git checkout -b feature/add-login
# Make changes, commit
git add -A
git commit -m "feat: add login endpoint"
# Push
git push -u origin feature/add-login
2. Create PR
# With gh (interactive)
gh pr create
# With gh (inline)
gh pr create \
--title "feat: add login endpoint" \
--body "## Changes
- Add /api/login route
- Add JWT token generation
- Add tests
## Testing
\`\`\`bash
pytest tests/test_auth.py -v
\`\`\`" \
--base main \
--head feature/add-login
# With curl
curl -s -X POST \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/pulls \
-d '{
"title":"feat: add login endpoint",
"body":"Add /api/login route with JWT",
"head":"feature/add-login",
"base":"main"
}'
3. Check CI Status
# With gh
gh pr checks 42
# With curl (check runs)
curl -s "https://api.github.com/repos/$OWNER/$REPO/commits/$HEAD_SHA/check-runs" | python3 -c "
import sys, json
for r in json.load(sys.stdin)['check_runs']:
print(f'{r[\"name\"]:30s} {r[\"conclusion\"] or r[\"status\"]}')
"
# With curl (statuses — legacy CI)
curl -s "https://api.github.com/repos/$OWNER/$REPO/commits/$HEAD_SHA/status" | python3 -c "
import sys, json
r = json.load(sys.stdin)
print(f'Overall: {r[\"state\"]}')
for s in r['statuses']:
print(f' {s[\"context\"]:30s} {s[\"state\"]}')
"
4. Update PR (push more commits)
# Make more changes
git add -A
git commit --fixup HEAD # or regular commit
git push
# PR automatically updates
5. Review & Approve
# Request review
gh pr edit 42 --add-reviewer username
# Approve (as reviewer)
gh pr review 42 --approve --body "LGTM!"
# Request changes
gh pr review 42 --request-changes --body "See inline comments."
# Comment
gh pr review 42 --comment --body "Some suggestions."
6. Merge
# With gh
gh pr merge 42 --merge # merge commit
gh pr merge 42 --squash # squash merge
gh pr merge 42 --rebase # rebase merge
gh pr merge 42 --squash --delete-branch # squash + delete branch
# With curl
curl -s -X PUT \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$OWNER/$REPO/pulls/42/merge \
-d '{"merge_method":"squash"}'
7. Cleanup
# Delete local branch
git checkout main
git pull origin main
git branch -d feature/add-login
# Delete remote branch (if not auto-deleted)
git push origin --delete feature/add-login
Full Workflow Example
# 1. Branch
git checkout -b fix/issue-42-login-timeout
# 2. Implement + test
# ... make changes ...
pytest tests/test_auth.py -v
# 3. Commit
git add -A
git commit -m "fix: increase login timeout to 30s (fixes #42)"
# 4. Push
git push -u origin fix/issue-42-login-timeout
# 5. Create PR
gh pr create --title "fix: increase login timeout (fixes #42)" --body "..." --base main
# 6. Check CI
gh pr checks
# 7. After CI passes + review approved
gh pr merge --squash --delete-branch
# 8. Cleanup
git checkout main && git pull
Pitfalls
fixes #42: auto-closes issue 42 on merge. Userefs #42to reference without closing.- Squash merge: all commits become one. Branch history is lost. Best for small PRs.
- Merge conflicts:
git fetch origin && git rebase origin/mainto resolve before pushing. - Draft PR:
gh pr create --draftmarks as WIP. Reviewers can't approve until marked ready. - Force push:
git push --force-with-lease(not--force) to avoid overwriting others' work on shared branches. - CI not triggering: check if branch protection rules require specific status checks. Some CI only runs on certain branch patterns.
Signals
- GitHub stars
- 220
- Forks
- 19
- Last commit
- Jul 2026
ahel review
S4info
community integration — published by hezaohezao, not github
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
github-pr-workflow-hezaohezao- Source
- github.com/hezaohezao/poirot