GitLab、issueとマージリクエストのテンプレート

タグ: GitLab  

GitHubのissueなどのテンプレートについての日本語記事は、既に豊富に存在していますが、GitLabを使用する場合のテンプレート設定についてはまだ少ないようです。

(追記:牡蠣で紹介しているテンプレートは、現在WebのUIから設定できるようになっています。プロジェクトのSettingに用意されている項目をご覧ください。)

情報をまとめておきます。

テンプレートの仕組み

GitHubでは、issueとプルリクのテンプレートを用意できます。同様にGitLabでもissueと、プルリクに当たるマージリクエストのテンプレートを用意できます。

テンプレートはMarkdown形式で、プロジェクトルート下の.gitlabディレクトに用意します。

/
+.gitlab
    +issue_templates/
        +bug.md
        +テスト不足.md
        ...
    +merge_request_templates/
        +fix.md
        +新機能追加.md
        ...

GitLabではGitHubと異なり、ディレクトリを一段掘り下げます。issueとマージリクエストに複数のテンプレートを用意できます。テンプレートの内容は通常のMarkdownです。

なお、テンプレートはSetting、General、Default Branchで指定されているブランチのものが利用されます。この項目のデフォルト値は"master"ですので、変更していない場合、masterブランチの内容がテンプレートとして利用されます。

新しいissueやマージリクエスト発行時、一番左上に"Choose a Template"のようなプルダウンメニューが表示されます。そこにテンプレートのファイル名の基本名(".md"を除いた部分)がリスト表示されますので、そこから選択します。ファイル名に日本語を使用すれば、もちろん日本語で表示されます。

GitHubではissueとプルリク、それぞれに一つのみファイルが指定できます。issue発行時、プルリク時に自動的にフォームに埋められます。しかし、GitLabでは複数テンプレートから選択する仕様になっています。仮にテンプレートを一つしか用意しない場合であっても、選択させる仕様になっており、デフォルトの表示状態は空フォームが表示されます。

スラッシュコマンド

Slackをご利用の方はご存じの方も多いでしょうが、会話を入力箇所にスラッシュ(/)を入力することで、様々な機能のコマンドを実行できます。タイプの得意な方はボタン操作を行わなくても、操作を可能にできます。

Slackのように拡張はできませんが、GitLabにはスラッシュコマンドが用意されています。(エンタープライズ版では拡張可能のようです。)最新であるかは保証できませんが、日本語に翻訳されている一覧もあります。

通常は、issueやマージリクエストのコメント欄で使用します。補完が動作しますので、簡単に利用できます。

この便利なスラッシュコマンドをテンプレートに記述しておくと、新規issue発行、新規マージリクエスト時にラベルを付けたり、ユーザーをアサインしたりが可能です。

スラッシュコマンドの行は、文章として保存されません。実行後に自動的にコメント内容から削除されます。

たとえば"bug"ラベルを自動的に追加したい場合は、テンプレートのどこかに以下の一行を入れておきます。

/label ~bug

大文字小文字は区別されます。また、日本語ラベルを使用する場合や、空白を含むラベルの場合は、"〜"のようにダブルコーテーションで囲んでください。

/label ~"新機能提言"

マイルストーンの設定などもできるようです。詳しくは、スラッシュコマンドについてのリンク先をお読みください。

ヒント: 差し支えなければ、ラベルなどは日本語より英語を使用したほうが良いでしょう。日本語を使用すると、Webページでスラッシュコマンドを使用する際に補完が効きません。もちろん、日本語であるほうが意味が取りやすいので、どちらがベターなのかは状況次第です。