GitHub PR・ISSUEテンプレートの作り方:チームのレビュー効率を上げる設定まとめ
はじめに
GitHubのPRテンプレートとISSUEテンプレートを設定すると、説明欄にあらかじめ記入フォームが表示されます。チーム全員が同じフォーマットで情報を書くようになり、「何を変えたか分からない」「再現手順が書いていない」といった問題を減らせます。
PRテンプレート
ファイルの配置
リポジトリのルートまたは .github/ に pull_request_template.md を置きます。
.github/ pull_request_template.md
テンプレートの例
## 概要 <!-- 何をなぜ変更したか、1〜3文で説明してください --> ## 変更内容 - - ## 動作確認 - [ ] ローカルで動作確認済み - [ ] 既存の機能に影響がないことを確認した - [ ] テストを追加・更新した ## スクリーンショット(UIの変更がある場合) <!-- 変更前・変更後のスクリーンショットを貼ってください --> ## 関連Issue Closes #
複数のPRテンプレートを用意する
用途別にテンプレートを分けたい場合は .github/PULL_REQUEST_TEMPLATE/ ディレクトリに複数ファイルを置きます。
.github/
PULL_REQUEST_TEMPLATE/
feature.md
bugfix.md
hotfix.md
PR作成時にURLのクエリパラメータでテンプレートを指定します。
https://github.com/owner/repo/compare/main...branch?template=bugfix.md
ただし自動で選択ダイアログは出ないため、複数テンプレートはISSUEテンプレートの方が運用しやすいです。
ISSUEテンプレート
ファイルの配置
.github/ISSUE_TEMPLATE/ ディレクトリにMarkdownファイルを置きます。複数ファイルを置くと、Issue作成時にテンプレート選択画面が表示されます。
.github/
ISSUE_TEMPLATE/
bug_report.md
feature_request.md
バグレポートテンプレートの例
--- name: バグ報告 about: 不具合を報告する labels: bug assignees: '' --- ## 発生している問題 <!-- 何が起きているか説明してください --> ## 再現手順 1. 2. 3. ## 期待する動作 <!-- 本来どうなるべきか --> ## 実際の動作 <!-- 実際に何が起きているか --> ## 環境 - OS: - ブラウザ / バージョン: - アプリのバージョン: ## スクリーンショット・ログ <!-- エラーメッセージやスクリーンショットがあれば貼ってください -->
機能リクエストテンプレートの例
--- name: 機能リクエスト about: 新機能や改善を提案する labels: enhancement assignees: '' --- ## 解決したい課題 <!-- 現在困っていること、できないことを説明してください --> ## 提案する解決策 <!-- どんな機能・変更があれば解決できるか --> ## 代替案 <!-- 他に考えた方法があれば --> ## 補足 <!-- その他、参考リンクや背景情報があれば -->
front matter のフィールド
| フィールド | 説明 |
|---|---|
name |
テンプレート選択画面に表示される名前 |
about |
テンプレートの説明文 |
labels |
自動で付与するラベル(カンマ区切りで複数指定可) |
assignees |
自動でアサインするユーザー名 |
title |
Issueタイトルのデフォルト値 |
ISSUEテンプレートの選択画面
.github/ISSUE_TEMPLATE/ に複数ファイルを置くと、Issue作成時にこのような選択画面が表示されます。
どんな種類のIssueを作成しますか? [バグ報告] 不具合を報告する [機能リクエスト] 新機能や改善を提案する
選択画面にリンクを追加する(config.yml)
config.yml を置くと、外部リンクを選択肢に追加できます。
# .github/ISSUE_TEMPLATE/config.yml blank_issues_enabled: false # テンプレートなしのIssue作成を禁止 contact_links: - name: 質問・相談 url: https://github.com/owner/repo/discussions about: バグ・機能リクエスト以外の相談はDiscussionsへ
blank_issues_enabled: false にするとテンプレートを選ばないとIssueを作れなくなります。
まとめ
| 設定 | ファイルの場所 |
|---|---|
| PRテンプレート(1つ) | .github/pull_request_template.md |
| PRテンプレート(複数) | .github/PULL_REQUEST_TEMPLATE/*.md |
| ISSUEテンプレート | .github/ISSUE_TEMPLATE/*.md |
| ISSUE選択画面の設定 | .github/ISSUE_TEMPLATE/config.yml |
テンプレートはリポジトリの .github/ ディレクトリに置くだけで有効になります。チームのワークフローに合わせてチェックリストや必須項目を調整してください。