GitHub PR管理
GitHubのプルリクエストを管理するためのスキル。
重要な制約
このスキルは sh1ma/blog リポジトリのみで使用すること。
他のリポジトリの操作は禁止。--repo フラグで他リポジトリを指定してはならない。
利用可能なラベル
PRには必ず以下のいずれかのラベルを付けること:
| ラベル | 用途 |
|---|---|
feature | 機能開発関連 |
bug | バグ関連 |
refactoring | リファクタ関連 |
documentation | ドキュメンテーション関連 |
chore | 設定ファイルなどの雑多な変更 |
AI | AI関連 |
test | テスト関連 |
PR作成手順(推奨フロー)
1. 変更内容の確認
bash
# mainからの差分コミットを確認 git log main..HEAD --oneline # 変更ファイルを確認 git diff main..HEAD --stat
2. 適切なラベルを選択
変更内容に基づいて、上記のラベルから1つ以上選択する。
3. PRを作成
重要: .github/pull_request_template.md のテンプレートを必ず遵守すること。
bash
gh pr create \ --title "タイトル" \ --label "ラベル" \ --assignee sh1ma \ --body "$(cat <<'EOF' ## 概要 <!-- このPRで何を変更したか簡潔に説明 --> ## 変更内容 - 変更点1 - 変更点2 ## 関連Issue <!-- closes #123 --> ## テスト項目 - [ ] テスト項目1 - [ ] テスト項目2 ## VRT設定 <!-- UIに意図的な変更がある場合のみチェックしてください --> - [ ] スナップショットを更新する(UI変更を意図的に行った場合にチェック) ## スクリーンショット(任意) <!-- UIの変更がある場合はスクリーンショットを貼ってください --> ## 備考 <!-- レビュアーに伝えたいことがあれば記載してください --> EOF )"
複数ラベルを付ける場合
bash
gh pr create --title "タイトル" --label "feature" --label "AI" --assignee sh1ma --body "..."
コマンド概要
bash
gh pr <command> [flags]
主要コマンド
PR一覧表示
bash
gh pr list # 現在のリポジトリのPR一覧 gh pr list --state all # すべてのPR(open/closed/merged) gh pr list --author @me # 自分が作成したPR gh pr list --assignee @me # 自分がアサインされたPR gh pr list --label "bug" # ラベルでフィルタ
PR表示・チェックアウト
bash
gh pr view # 現在のブランチのPRを表示 gh pr view 123 # PR #123を表示 gh pr view --web # ブラウザで開く gh pr view --comments # PRのコメントを表示(会話コメントのみ) gh pr checkout 123 # PR #123をチェックアウト gh pr diff 123 # PR #123の差分を表示
PRコメント表示
PRのコメントを確認する方法は複数あります。
基本的なコメント表示
bash
# 会話コメントを表示(gh pr viewのデフォルト出力に含まれる) gh pr view 123 --comments # JSONフォーマットで詳細情報を取得 gh pr view 123 --json comments # すべてのコメント(インラインレビューコメント含む)をAPI経由で取得 gh api repos/sh1ma/blog/pulls/123/comments
コメントの種類
- •会話コメント(Issue comments): PR全体に対するコメント。
gh pr view --commentsで表示可能 - •レビューコメント(Review comments): コードの特定行に対するインラインコメント。API経由で取得
- •レビュー(Reviews): 承認/変更要求/コメント。
gh pr view --json reviewsで取得可能
実用例
bash
# 現在のブランチのPRのコメントを確認 gh pr view --comments # PR #123のすべてのインラインコメントを確認 gh api repos/sh1ma/blog/pulls/123/comments | jq -r '.[] | "\(.path):\(.line) - \(.user.login): \(.body)"' # PR #123のレビュー状況を確認 gh pr view 123 --json reviews | jq -r '.reviews[] | "\(.author.login): \(.state) - \(.body)"'
PRマージ・クローズ
bash
gh pr merge # 現在のブランチのPRをマージ gh pr merge 123 # PR #123をマージ gh pr merge --squash # スカッシュマージ gh pr merge --rebase # リベースマージ gh pr merge --delete-branch # マージ後にブランチ削除 gh pr close 123 # PR #123をクローズ gh pr reopen 123 # PR #123を再オープン
PRレビュー
bash
gh pr review # 対話形式でレビュー gh pr review 123 --approve # 承認 gh pr review 123 --request-changes -b "修正必要" gh pr review 123 --comment -b "コメント" gh pr checks 123 # CIステータス確認
PR編集
bash
gh pr edit 123 --title "新タイトル" gh pr edit 123 --body "新本文" gh pr edit 123 --add-label "bug" gh pr edit 123 --add-reviewer user1 gh pr ready 123 # ドラフト解除
Visual Regression Test (VRT) について
PRを作成すると、自動でVRTが実行されます。
VRTの動作
- •R2からベースライン(mainブランチの最新スナップショット)を取得
- •PRのコードでスクリーンショットを撮影
- •ベースラインと比較して差分を検出
- •PRにコメントで結果を通知(レポートURLと差分画像)
UIに意図的な変更を加えた場合
- •PRテンプレートの「VRT設定」セクションで「スナップショットを更新する」にチェック
- •VRTワークフローが再実行され、新しいスナップショットがR2にアップロード
- •マージ後、自動でベースラインが更新される
VRTが失敗した場合
- •意図しない変更: コードを修正してVRTを再実行
- •意図した変更: 「スナップショットを更新する」にチェックして再実行
ラベル
VRTに関連するPRには test ラベルも追加することを推奨します。
実行手順
- •ユーザーの要求を理解する
- •PR作成の場合、変更内容を確認してラベルを決定する
- •
.github/pull_request_template.mdのテンプレートを遵守してPRを作成する - •ラベルを必ず付けてPRを作成する
- •assigneeを
sh1maに設定してPRを作成する - •PRコメント確認の場合、適切なコマンド(
gh pr view --comments、gh apiなど)を使用する - •結果を日本語で報告
注意事項
- •PRは番号、URL、またはブランチ名で指定可能
- •認証が必要な場合は
gh auth loginを案内 - •他リポジトリへの操作は絶対に行わない
- •PR作成時はラベルを必ず付けること(CIでチェックされる)
- •PR作成時はassigneeを
sh1maに必ず設定すること