【GitHub】共通プルリクエストテンプレートを作成し開発効率UP!
はじめに
GitHubにはリポジトリにプルリクエストテンプレートを設定することができます。
しかし複数のリポジトリを運用していると、プルリクエストのテンプレートを各リポジトリで個別に管理するのが手間だと感じませんか?
.github
リポジトリという特別なリポジトリを利用することで、
Organization内のリポジトリで共通のプルリクエストテンプレートやIssueテンプレートなどを一元管理できるようになります。
この記事では、.github
リポジトリを作成し、共通のプルリクエストテンプレートを設定する方法を解説します。
.github
リポジトリとは?
.github
リポジトリは、GitHub Organizationまたはユーザアカウントのルートに作成できる特別なリポジトリです。このリポジトリに特定のファイル(プロファイルREADME.md
、Issueテンプレート、プルリクエストテンプレート、コントリビューションガイドラインなど)を配置することで、Organization内の他のリポジトリに対してデフォルトの設定として適用できます。
これにより、各リポジトリで個別に設定ファイルを持つ必要がなくなり、設定の統一化やメンテナンス性の向上が期待できます。
作成手順
.github
リポジトリの作成
1. まずは、共通テンプレートを適用したいOrganizationまたは個人のアカウントのルートに、.github
という名前で新しいリポジトリを作成します。
-
リポジトリ名:
.github
- Public/Private: Publicリポジトリである必要があります。
- Initialize this repository with a README: チェックを入れても良いですが、必須ではありません。
2. プルリクエストテンプレートファイルの作成
次に、作成した.github
リポジトリ内にプルリクエストテンプレートファイルを作成します。
-
ディレクトリ構成:
.github
リポジトリのルート、または.github
ディレクトリ内に作成します。今回は後者で作成します。.github/ └── PULL_REQUEST_TEMPLATE.md
-
ファイル名:
PULL_REQUEST_TEMPLATE.md
またはpull_request_template.md
(大文字・小文字は区別されません)。- 複数のテンプレートを用意したい場合は、
.github/PULL_REQUEST_TEMPLATE/
ディレクトリを作成し、その中に.mdファイルとしてテンプレートを複数配置することも可能です。
- 複数のテンプレートを用意したい場合は、
3. テンプレートファイルの内容例
PULL_REQUEST_TEMPLATE.md に記述する内容の例です。Markdown形式で記述します。
## 概要
## 変更点
- 変更点1
- 変更点2
- 変更点3
## 関連Issue
-
## スクリーンショット(変更内容がUIに影響する場合)
## 確認事項
- [ ] 〇〇は期待通りに動作しますか?
- [ ] △△の考慮漏れはありませんか?
- [ ] テストは追加・修正されていますか?
## 特記事項
4. 動作確認
.github
リポジトリにPULL_REQUEST_TEMPLATE.mdをプッシュした後、同じOrganization内の他のリポジトリで新しいプルリクエストを作成してみてください。テンプレートが自動的に適用されていれば成功です。
注意点:
- .githubリポジトリにテンプレートが存在し、かつプルリクエストを作成するリポジトリ自体にもテンプレートが存在する場合(例:
docs/PULL_REQUEST_TEMPLATE.md
や.github/PULL_REQUEST_TEMPLATE.md
)、個別のリポジトリ内のテンプレートが優先されます。 - 変更が反映されるまでに少し時間がかかる場合があります。
応用編:その他の共通ファイル
プルリクエストテンプレート以外にも、以下のファイルを.github
リポジトリで共通化できるらしいです。
- Issueテンプレート:
.github/ISSUE_TEMPLATE/
ディレクトリ内にMarkdownファイルとして作成します。 - コントリビューションガイドライン:
.github/CONTRIBUTING.md
- 行動規範:
.github/CODE_OF_CONDUCT.md
- セキュリティポリシー:
.github/SECURITY.md
- サポート情報:
.github/SUPPORT.md
まとめ
.github
リポジトリを利用することで、Organization内のリポジトリで共通のプルリクエストテンプレートを簡単に管理できるようになります。
これにより、開発プロセスが標準化され、レビューの質向上やコミュニケーションコストの削減が期待できます。
Discussion