Push commits to an existing GitHub PR's source branch. NEVER create new branches. Use when the user says "push to PR #N", "push到PR", or any variation meaning to push local commits onto an existing pull request. Covers finding the PR's head branch via GitHub API, setting up the correct remote, and pushing with HEAD:<branch> syntax.
Install
npx skillscat add project-n-e-k-o/n-e-k-o/push-to-pr Install via the SkillsCat registry.
SKILL.md
Push to PR
Push local commits to an existing PR's source branch. Never create new branches.
Workflow
1. Find PR head branch
curl -s https://api.github.com/repos/{OWNER}/{REPO}/pulls/{N} \
| python3 -c "import sys,json; p=json.load(sys.stdin); print(f\"branch={p['head']['ref']}\nclone_url={p['head']['repo']['clone_url']}\ncan_modify={p['maintainer_can_modify']}\")"head.ref= branch name (e.g.active_visual_chat)head.repo.clone_url= fork URLmaintainer_can_modifymust betrue
2. Ensure remote exists
git remote -v # check if clone_url already listed
git remote add <name> <clone_url> # only if missing3. Fetch + rebase if needed
git fetch <remote> <branch>
# If local commits not on top:
git rebase <remote>/<branch>4. Push
git push <remote> HEAD:<branch>Critical Rules
- NEVER create new branches on any remote
- NEVER
git push <remote> <local_branch>if local branch differs from PR branch — always useHEAD:<pr_branch> - Branch name comes only from
head.refin API response - If
maintainer_can_modifyisfalse, inform user — cannot push - If push rejected (non-fast-forward), fetch and rebase first