About gh-update-pr
A skill for updating GitHub pull request titles or descriptions through the REST API when `gh pr edit` fails due to a deprecated GraphQL field. It provides safe payload construction and steps to verify the update.
Key features
- 01Use `gh api` REST endpoint for updates
- 02Build JSON safely with `jq --arg`
- 03Fetch current PR context first
- 04Omit fields that are unchanged
- 05Verify response URL and updated fields
Use cases
- 01Change a PR title without `gh pr edit`
- 02Update a PR body through REST API
- 03Prevent stale fields from overwriting PR content
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ lwlee2608/ agent-skills --skill gh-update-prAfter installing, type/gh-update-prin Claude Code to confirm it loaded.
Details
From the project READMEUpdate PR via REST API
gh pr edit is broken due to GitHub deprecating Projects Classic (projectCards GraphQL field error). Use the REST API instead. gh pr view and gh pr create still work fine — only gh pr edit is affected.
Rules
- Never use
gh pr editto update PR title or body. It will fail with a GraphQL error. - Use
gh apiwith the REST endpoint. Always pipe JSON viajq --argto avoid shell injection:jq -n --arg title "..." --arg body "..." '{title: $title, body: $body}' | \ gh api repos/{owner}/{repo}/pulls/{number} -X PATCH --input - --jq '.html_url' - Get the current PR context before updating:
gh pr view --json number,url,baseRefName - Omit unchanged fields. If only updating the title, do not include
bodyin the JSON payload, and vice versa. Including an unchanged field risks overwriting it with stale content.
Verification procedure
- After the PATCH request, confirm it returned the PR's
html_url(not an error). - Run
gh pr view --json title,bodyand verify the updated fields match what was intended.
Common mistakes to watch for
- Including both title and body when only one changed. This can overwrite the other field with stale or empty content. Only include the field being updated.
- Running outside a git repo with a tracking branch.
gh pr viewneeds repo context. If it fails, pass--repo owner/repoexplicitly. - Forgetting to extract owner/repo/number. Always fetch these from
gh pr viewfirst — do not hardcode or assume them.
Comments
Markdown supported