Claude-skill-registry github-pr-review-operation
GitHub Pull Requestのレビュー操作を行うスキル。PR情報取得、差分確認、コメント取得・投稿、インラインコメント、コメント返信をghコマンドで実行する。PRレビュー、コードレビュー、PR操作が必要な時に使用。
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/github-pr-review-operation" ~/.claude/skills/majiayu000-claude-skill-registry-github-pr-review-operation && rm -rf "$T"
manifest:
skills/data/github-pr-review-operation/SKILL.mdsource content
GitHub PR Review Operation
GitHub CLI (
gh) を使ったPRレビュー操作。
前提条件
インストール済みgh
で認証済みgh auth login
PR URLのパース
PR URL
https://github.com/OWNER/REPO/pull/NUMBER から以下を抽出して使用:
: リポジトリオーナーOWNER
: リポジトリ名REPO
: PR番号NUMBER
操作一覧
1. PR情報取得
gh pr view NUMBER --repo OWNER/REPO --json title,body,author,state,baseRefName,headRefName,url
2. 差分取得(行番号付き)
gh pr diff NUMBER --repo OWNER/REPO | awk ' /^@@/ { match($0, /-([0-9]+)/, old) match($0, /\+([0-9]+)/, new) old_line = old[1] new_line = new[1] print $0 next } /^-/ { printf "L%-4d | %s\n", old_line++, $0; next } /^\+/ { printf " R%-4d| %s\n", new_line++, $0; next } /^ / { printf "L%-4d R%-4d| %s\n", old_line++, new_line++, $0; next } { print } '
出力例:
@@ -46,15 +46,25 @@ jobs: L46 R46 | prompt: | L49 | - (削除行) R49 | + (追加行) L50 R50 | # レビューガイドライン
: LEFT(base)側の行番号 → インラインコメントでL数字
に使用side=LEFT
: RIGHT(head)側の行番号 → インラインコメントでR数字
に使用side=RIGHT
3. コメント取得
Issue Comments(PR全体へのコメント):
gh api repos/OWNER/REPO/issues/NUMBER/comments --jq '.[] | {id, user: .user.login, created_at, body}'
Review Comments(コード行へのコメント):
gh api repos/OWNER/REPO/pulls/NUMBER/comments --jq '.[] | {id, user: .user.login, path, line, created_at, body, in_reply_to_id}'
4. PRにコメント
gh pr comment NUMBER --repo OWNER/REPO --body "コメント内容"
5. インラインコメント(コード行指定)
まずhead commit SHAを取得:
gh api repos/OWNER/REPO/pulls/NUMBER --jq '.head.sha'
単一行コメント:
gh api repos/OWNER/REPO/pulls/NUMBER/comments \ --method POST \ -f body="コメント内容" \ -f commit_id="COMMIT_SHA" \ -f path="src/example.py" \ -F line=15 \ -f side=RIGHT
複数行コメント(10〜15行目):
gh api repos/OWNER/REPO/pulls/NUMBER/comments \ --method POST \ -f body="コメント内容" \ -f commit_id="COMMIT_SHA" \ -f path="src/example.py" \ -F line=15 \ -f side=RIGHT \ -F start_line=10 \ -f start_side=RIGHT
注意点:
(大文字): 数値パラメータ(-F
,line
)に使用。start_line
だと文字列になりエラーになる-f
:side
(追加行)またはRIGHT
(削除行)LEFT
6. コメントへ返信
gh api repos/OWNER/REPO/pulls/NUMBER/comments/COMMENT_ID/replies \ --method POST \ -f body="返信内容"
COMMENT_IDはコメント取得で得たidを使用。