GitHub PR・ISSUEテンプレートの作り方:チームのレビュー効率を上げる設定まとめ

スポンサーリンク

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/ ディレクトリに置くだけで有効になります。チームのワークフローに合わせてチェックリストや必須項目を調整してください。