mcpField
P
pr-link-issue

pr-link-issue

github.com/getsentry開発1.1k1.3k 回インストール5 日前に更新
リポジトリ

pr-link-issue について

GitHub の課題と Linear チケットへの参照をプルリクエストの説明に追加するワークフロースキルです。既存の本文を保ち、既存の `#### Issues` セクションは重複させず置き換えます。

主な機能

  1. 01現在のブランチのオープン PR を取得
  2. 02Linear のリンクバックコメントを確認
  3. 03Issues セクションを追加または置換
  4. 04PR 本文の他の内容を保持
  5. 05Linear キーがない場合に通知

活用シーン

  1. 01PR に課題参照を追加
  2. 02PR を Linear チケットに関連付け
  3. 03既存の Issues セクションを更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/getsentry/skills --skill pr-link-issue

インストール後、Claude Code で/pr-link-issueを入力して読み込まれたか確認します。

詳細

PR に GitHub Issue と Linear チケットをリンクする

Issue の linear-linkback コメントから取得した GitHub Issue と Linear チケットの両方を参照する、Sentry 形式の #### Issues ブロックを PR の説明に追加します。

入力

  • <issue-url> — https://github.com/<owner>/<repo>/issues/<n> のような GitHub Issue の URL です。同じリポジトリ内の PR であれば、Issue 番号だけでもかまいません。
  • (任意)<pr-number> — デフォルトでは、現在のブランチに対するオープン中の PR が使われます。

手順

  1. PR 番号を特定する — ユーザーが指定している場合はスキップします。

    gh pr view --json number,body -q '.number'
    

    ブランチに PR が存在しない場合は、処理を中止してユーザーに伝えます。

  2. 入力 URL から Issue 番号とリポジトリを抽出するか、現在のリポジトリの場合は #1234 の形式を受け付けます。

  3. Issue の linear-linkback コメントから Linear チケットを取得します。

    gh issue view <n> --repo <owner>/<repo> --json comments \
      -q '.comments[] | select(.author.login=="linear-code") | .body' \
      | grep -Eioe '[a-z]+-[0-9]+' | head -1
    

    一致するものがない場合は、ユーザーに Linear キーを尋ねるか、省略します。

  4. 既存の PR 本文を読み取り、上書きせずに追記できるようにします。

    gh pr view <pr-number> --json body -q '.body'
    
  5. 新しい本文を作成します。本文が空の場合は、#### Issues ブロックのみを使用します。それ以外の場合は、空行の後に追記します。重複させないでください。すでに #### Issues がある場合は、2 つ目を追加せず、そのセクションを置き換えます。

    形式:

    #### Issues
    
    * Resolves: #<n>
    * Resolves: <linear-key>
    
  6. 改行を保持するため、ヒアドキュメントを使って PR を更新します。

    gh pr edit <pr-number> --body "$(cat <<'EOF'
    <new body>
    EOF
    )"
    
  7. 生成された PR の URL を出力して、完了を確認します。

    gh pr view <pr-number> --json url -q '.url'
    

補足

  • Linear の linkback コメントは、GitHub ユーザー linear-code によって投稿されます。本文には Linear キーをテキストにした Markdown リンクが含まれます。例:PY-2357。
  • プロジェクトキーはリポジトリごとに異なります(sentry-python の場合は PY-…、sentry-javascript の場合は JS-… など)。正規表現 [a-z]+-[0-9]+ で対応できます。
  • 既存の PR の内容を削除しないでください。必ず最初に読み取り、その後に追記または置き換えを行います。
  • Issue にまだ Linear linkback がない場合(新規作成された Issue など)は、GitHub Issue の参照だけを追加し、Linear キーがないことをユーザーに伝えます。

コメント