TECHSTEP

ITインフラ関連の記事を公開してます。

GitLab Description templateでIssue/Merge requestのテンプレートを用意する

今回はGitLabのDescription templateの紹介です。

docs.gitlab.com

背景

GitLabには、あらかじめ用意したテンプレートを使い、GitLab上での作業をらくにする機能がいくつか提供されています。今回は Description template という、Issue template / Merge request template を提供する機能を紹介します。

Issue template / Merge request templateは、名前の通りIssue / Merge requestそれぞれのテンプレートを作成・利用する機能です。IssueやMerge requestに何を書くべきかをProjectやGroupレベルで定義することで、それぞれのコメントの粒度を揃え、品質の向上をもたらすことをサポートします。

なお、Description templateはFreeプランから利用できますが、一部機能はPremiumプラン以上でのみ利用可能です。

検証

Issue templateの作成と利用

Issue templateを用意するには、 .gitlab/issue_template 配下にMarkdown形式のテキストファイルを配置すれば利用できます。

ここでは .gitlab/issue_template/test.md というファイルを配置してみます。

ファイルを作成後にIssueの作成画面から新しいIssueを作成します。

ここで テンプレートを選択してください という項目を選択すると、Issue templateで用意したテンプレートの一覧が表示され、使いたいテンプレートを選ぶことができます。また、表示されるテンプレートの名称は、作成したMarkdownのファイル名と一致します。

先ほど作成した test というテンプレートを選択すると、 test.md に記載したものが出力されます。

後からIssue templateを追加すると、Issue作成時に表示されるテンプレートも追加されます。実際に利用する場合は、用途に応じてファイル名を変更し、適切なものを選択できるようにするのが良いでしょう。

Merge request templateの作成と利用

Merge request templateを用意するには、 .gitlab/merge_request_template 配下にMarkdown形式のテキストファイルを配置すれば利用できます。

先ほどのIssue templateと同様、 .gitlab/merge_request_template/test.md というファイルを作成します。

Merge request画面から新しいMerge requestを作成すると、 test というテンプレートを選択できます。

また、Issue / Merge request templateはデフォルトのテンプレートを用意することもできます。 .gitlab/merge_request_template/Default.md というファイルを作成すると、Merge request作成画面で Default.md に定義した内容が表示されます (別のテンプレートを選んで上書きすることもできます) 。

Default.md にはいくつか組み込みの変数を利用できます。変数を利用すると、Merge requestメッセージにコミットメッセージやソースブランチなどを埋め込むことができます。

docs.gitlab.com

ここでは以下のような Default.md を用意します。

作成後にMerge requestを作成すると、 Default.md で定義した内容が表示されます。また表示されたMerge requestには、コミットメッセージ、ソースブランチ、ターゲットブランチが表示されているのを確認できます。

その他

Description templateはPremium/Ultimateプランで以下の機能を利用できます。

  • Instance/Group-level description template: GitLabインスタンス、またはGroup共通のDescription templateを利用できます。
  • Default template: Default.md の設定とは別に、GitLabの設定からDefault templateを設定できます。