gh-update-pr について
非推奨の GraphQL フィールドが原因で `gh pr edit` が失敗する場合に、REST API 経由で GitHub PR のタイトルや本文を更新するスキルです。安全なリクエストの作成方法と更新の検証手順を示します。
主な機能
- 01`gh api` の REST エンドポイントで更新
- 02`jq --arg` による安全な JSON 作成
- 03先に現在の PR 情報を取得
- 04変更しないフィールドを省略
- 05応答 URL と更新内容を検証
活用シーン
- 01`gh pr edit` を使わずに PR タイトルを変更
- 02REST API 経由で PR 本文を更新
- 03古いフィールドによる PR 内容の上書きを防止
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ lwlee2608/ agent-skills --skill gh-update-prインストール後、Claude Code で/gh-update-prを入力して読み込まれたか確認します。
詳細
REST API を使用した PR の更新
GitHub が Projects Classic を非推奨にしたため、gh pr edit は動作しません(projectCards GraphQL フィールドのエラー)。代わりに REST API を使用してください。gh pr view と gh pr create は引き続き正常に動作します。影響を受けるのは gh pr edit のみです。
ルール
- PR のタイトルまたは本文を更新するために、
gh pr editは絶対に使用しないでください。GraphQL エラーが発生します。 - REST エンドポイントでは
gh apiを使用してください。シェルインジェクションを防ぐため、必ずjq --argを使って JSON をパイプで渡してください。jq -n --arg title "..." --arg body "..." '{title: $title, body: $body}' | \ gh api repos/{owner}/{repo}/pulls/{number} -X PATCH --input - --jq '.html_url' - 更新前に、現在の PR のコンテキストを取得してください。
gh pr view --json number,url,baseRefName - 変更のないフィールドは省略してください。タイトルのみを更新する場合は、JSON ペイロードに
bodyを含めないでください。その逆も同様です。変更のないフィールドを含めると、古い内容で上書きされるおそれがあります。
検証手順
- PATCH リクエストの後、エラーではなく PR の
html_urlが返されたことを確認してください。 gh pr view --json title,bodyを実行し、更新後のフィールドが意図した内容と一致することを確認してください。
よくある間違い
- 片方だけを変更したのに、タイトルと本文の両方を含める。 もう一方のフィールドが古い内容や空の内容で上書きされる可能性があります。更新するフィールドだけを含めてください。
- 追跡ブランチのある Git リポジトリの外で実行する。
gh pr viewにはリポジトリのコンテキストが必要です。失敗する場合は、--repo owner/repoを明示的に指定してください。 - owner/repo/number の取得を忘れる。 必ず先に
gh pr viewからこれらを取得してください。ハードコードしたり、推測したりしないでください。
コメント
Markdown 対応