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ページでスラッシュコマンドを使用する際に補完が効きません。もちろん、日本語であるほうが意味が取りやすいので、どちらがベターなのかは状況次第です。