mcpField
G
gh-update-pr

gh-update-pr

github.com/lwlee2608開発1194 回インストール1 日前に更新
リポジトリ

gh-update-pr について

非推奨の GraphQL フィールドが原因で `gh pr edit` が失敗する場合に、REST API 経由で GitHub PR のタイトルや本文を更新するスキルです。安全なリクエストの作成方法と更新の検証手順を示します。

主な機能

  1. 01`gh api` の REST エンドポイントで更新
  2. 02`jq --arg` による安全な JSON 作成
  3. 03先に現在の PR 情報を取得
  4. 04変更しないフィールドを省略
  5. 05応答 URL と更新内容を検証

活用シーン

  1. 01`gh pr edit` を使わずに PR タイトルを変更
  2. 02REST API 経由で PR 本文を更新
  3. 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 のみです。

ルール

  1. PR のタイトルまたは本文を更新するために、gh pr edit は絶対に使用しないでください。GraphQL エラーが発生します。
  2. 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'
    
  3. 更新前に、現在の PR のコンテキストを取得してください。
    gh pr view --json number,url,baseRefName
    
  4. 変更のないフィールドは省略してください。タイトルのみを更新する場合は、JSON ペイロードに body を含めないでください。その逆も同様です。変更のないフィールドを含めると、古い内容で上書きされるおそれがあります。

検証手順

  1. PATCH リクエストの後、エラーではなく PR の html_url が返されたことを確認してください。
  2. gh pr view --json title,body を実行し、更新後のフィールドが意図した内容と一致することを確認してください。

よくある間違い

  • 片方だけを変更したのに、タイトルと本文の両方を含める。 もう一方のフィールドが古い内容や空の内容で上書きされる可能性があります。更新するフィールドだけを含めてください。
  • 追跡ブランチのある Git リポジトリの外で実行する。 gh pr view にはリポジトリのコンテキストが必要です。失敗する場合は、--repo owner/repo を明示的に指定してください。
  • owner/repo/number の取得を忘れる。 必ず先に gh pr view からこれらを取得してください。ハードコードしたり、推測したりしないでください。

コメント