はじめに
個人開発や自己学習でGitHubを使っていると、IssueやPull Requestを書くの面倒に感じませんか?
- 毎回、どの項目を書けばよかったか迷う
- 前のIssueと構成が違っていてモヤモヤする
- Issueの内容を考えるのにも多少時間がかかる
私自身、作業を始める前にIssueを書くようにしているのですが、正直「書くのが面倒で作業を始めない」という本末転倒なこともありました。
そこで、「あらかじめ最低限のテンプレートを用意しておけば、毎回同じ形式で気軽に記録できて、ストレスも減るのでは?」と思い、Issue・PRのテンプレートを整えてみることにしました。
本記事では、そんな経緯で作成したGitHubのIssueテンプレートとPRテンプレートについて、Web UIで設定手順や、実際に作成したテンプレート例を紹介します。
概要
今回は、個人開発や自己学習向けに、最低限の構成で使えるテンプレートを用意しました。
テンプレートは書くことのハードルを下げるのが目的で、書くのが面倒で続かなくなるのを防ぐためのものです。
Issueテンプレートでは、GitHubのラベルのうち使用頻度の高い bug と enhancement の2つだけを対象に作成しています。
Issueテンプレートの作成
GitHubでは、Issueテンプレートを設定する方法が2通りあります。
- GitHubのWeb UI(ブラウザ上)から作成・管理する方法(今回はこちらを紹介します)
- リポジトリ内に
.github/ISSUE_TEMPLATE/
フォルダを作り、Markdownファイルを直接置く方法(PRテンプレートと同様)
今回は、GUIから直感的に操作できる「Web UI」経由の方法を紹介します。特にGitHub初心者の方にも扱いやすい手順です。
1. GitHubにログインして、リポジトリを開く
テンプレートを設定したい対象のリポジトリにアクセスします。
2.「Settings」タブを開く
上部のタブから「Settings」をクリックします。
3.「Issues」セクションで「Set up templates」をクリック
ページ中ほどにある「Features」セクションの中に「Issues」の設定項目があります。
そこに「Set up templates」というボタンがあるのでクリックします。
4. テンプレートの種類を選択する
表示される選択肢の中から「Custom template(カスタムテンプレート)」を選びます。
5.「Preview and edit」をクリック
テンプレートの内容を編集する画面へ進みます。
6. 編集アイコンをクリックし、テンプレートを編集
エディタが表示されるので、右上の鉛筆マークをクリックして内容を入力していきます。
7. テンプレートの内容を記入する
今回は「enhancement(機能追加)」用のテンプレートを作成します。必要項目だけを記述して、シンプルな構成にします。
8.「Propose changes」で変更を確定
編集が終わったら「Propose changes」ボタンをクリックしてコミットします。
そのままmain
ブランチに反映させるか、新しいブランチを作成してPull Requestとして送ることもできます。
Pull Requestテンプレートの作成
PR(Pull Request)テンプレートは、Issueテンプレートと違ってGitHubのWeb UIからは作成できません。そのため、手動でリポジトリにファイルを追加する必要があります。
1. github
フォルダを用意する
リポジトリのルートに、.github
という名前のフォルダがない場合は新しく作成してください。
2. pull_request_template.md
というファイルを作る
そのフォルダの中に、pull_request_template.md
という名前で新規ファイルを作成します。
このファイルがテンプレートとして使用されます。
3. テンプレートの中身を記述する
以下は、機能追加(enhancement)とバグ修正(bug)を想定したテンプレートの記述例です。
1つのテンプレートファイルに複数のケースを記述しておき、不要な部分はPR作成時に削除する運用を想定しています。
# enhancement
## 概要
## 実装内容
## 動作確認
## 関連Issue
## 補足
特に無し
---
# bug
## 概要
## 修正内容
## 確認手順
## 関連Issue
## 補足
特に無し
PRテンプレートは1つしか設定できません。
そのため、1つのテンプレートに複数のケース(バグ修正・機能追加など)をまとめておき、必要に応じて使わない部分を削除する運用が現実的です。
4. コミットして変更を反映する
ファイルを作成・編集したら、コミットしてリポジトリに反映します。
これで、PRを作成する際に自動的にこのテンプレートが読み込まれるようになります。
作成したIssueテンプレートの例
以下は、実際に作成した2種類のIssueテンプレートの内容です。
enhancement-template.md
(機能追加)
---
name: enhancement_template
about: 新機能追加用のテンプレートです
title: ''
labels: enhancement
assignees: ''
---
## 概要
## 機能要件
bug-template.md
(バグ報告・修正)
---
name: bug_template
about: 不具合修正用のテンプレートです
title: ''
labels: bug
assignees: ''
---
## 概要
## 再現手順
## 期待される動作
## 実際の挙動
## 補足情報
例: 特に無し
Views: 0