GitHub CLI でプルリクエスト自動化を5分で実装する方法¶
この記事の対象者
- 中級者: GitHub を日常的に使用し、CLI 操作に慣れているエンジニア
この記事のポイント¶
- gh コマンドで PR を自動作成・マージする
- CI/CD パイプラインと連携した PR レビュー自動化
- チーム固有のワークフローテンプレート作成
なぜこの問題が今重要か¶
手動 PR 作成は開発フローのボトルネック。平均的な開発者は 1 日 20 分を PR 関連作業に費やしており、gh CLI 活用で作業時間を 80% 削減可能。特に複数リポジトリ管理や定期リリース作業で効果大。
解決ステップ概要¶
| ステップ | 内容 | 到達指標 |
|---|---|---|
| 1 | gh 初期設定と認証 | gh auth status で認証確認 |
| 2 | PR 自動作成スクリプト実装 | 1 コマンドで PR 作成完了 |
| 3 | CI/CD 連携とレビュー自動化 | PR チェック自動実行 |
ステップ1: gh 初期設定と認証¶
GitHub CLI の初期セットアップと認証トークン設定。Personal Access Token より OAuth 認証を推奨。スコープは repo, workflow, read:org が必須。
# 認証セットアップ(対話形式)
gh auth login
# 非対話形式(CI/CD 向け)
echo $GITHUB_TOKEN | gh auth login --with-token
ステップ2: PR 自動作成スクリプト実装¶
定型的な PR 作成をワンライナーで実装。タイトル・本文・レビュアー・ラベルを事前定義し、開発フローを標準化。
#!/bin/bash
# pr-create.sh
gh pr create \
--title "feat: $1" \
--body-file .github/pr_template.md \
--reviewer @team/backend \
--label "enhancement,review-needed" \
--milestone "v2.0"
ステップ3: CI/CD 連携とレビュー自動化¶
GitHub Actions と gh を組み合わせ、PR チェック結果に基づく自動マージを実装。テスト成功 + 承認数条件でマージ実行。
# .github/workflows/auto-merge.yml
- name: Auto-merge Dependabot PRs
if: github.actor == 'dependabot[bot]'
run: |
gh pr review --approve "$PR_URL"
gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
よくある落とし穴と対処¶
| 症状 | 原因 | 即時対処 |
|---|---|---|
gh: command not found | CLI 未インストール | brew install gh または apt/yum で導入 |
authentication required | トークン期限切れ | gh auth refresh で再認証 |
| PR 作成失敗 | ブランチ保護設定 | --draft オプションで下書き作成 |
詳細設定(高度最適化)
### カスタム PR テンプレート活用 `.github/pull_request_template.md` に定型フォーマットを配置し、`--body-file` で参照。チェックリスト・影響範囲・テスト項目を標準化。 ### 複数リポジトリ一括操作# repos.txt にリポジトリリスト記載
cat repos.txt | xargs -I {} gh pr list --repo {}
gh pr review --comment --body "LGTM! CI passed."