本記事は Azure DevOps Advent Calendar 2019 20日目の記事です。
みなさんはAzure DevOpsを使っていてPullRequestの標準化のためにテンプレートを適用したいと思ったことはありませんか?私はあります。GitHubでのやり方は比較的よく目にしますが、Azure DevOpsでできるのか調べたところ、英語のDocsしかなかった&アドベントカレンダーが空いていたので記事にしたいと思います。
※正確にはAzure DevOps内でPullRequestを担うのはAzure Reposという1つのモジュールですが、この記事では一般的な呼称としてAzure DevOpsと記載します。
3種類のテンプレート
Azure DevOpsのPRテンプレートには3つの種類があります。上記のDocsでの原文です。カッコ内は意訳です。
-
Default pull request templates(デフォルトテンプレート)
デフォルトで適用されるテンプレート。 -
Branch specific pull request templates(ブランチテンプレート)
特定ブランチに対してのPRのみに適用できるテンプレート。 -
Additional pull request templates(追加テンプレート)
PR作成者が任意で追加できるテンプレート。
Default pull request templates(デフォルトテンプレート)
このテンプレートが設定されたRepositoryに対してPRを作成すると、このテンプレートが適用されます。以下のディレクトリのどれかに pull_request_template.md または pull_request_template.txtというファイルを作成することで定義することができます。
- /.azuredevops/
- /.vsts/
- /docs/
- repositoryのルート直下
Branch specific pull request templates(ブランチテンプレート)
これが設定されたRepositoryのBranchに対してPRを作成すると、このテンプレートが使われます。以下のディレクトリのどれかに {対象のブランチ名}.md または {対象のブランチ名}.txt というファイルを作成することで定義することができます。(PR先がdevブランチのときにテンプレートを使いたかったらdev.md/txt)
テンプレートが適用されるときはブランチテンプレート→デフォルトテンプレートの順で探索されるので、対象ブランチであればブランチテンプレートが優先的に適用されます。
- /.azuredevops/pull_request_template/branches/
- /.vsts/pull_request_template/branches/
- /docs/pull_request_template/branches/
- /pull_request_template/branches/
以下のデモではrepositoryのデフォルトテンプレートの他にmasterブランチにブランチテンプレートを設定しています。
destinationにdevelopを選択したときはデフォルトテンプレート、masterを選択したときはmasterブランチテンプレートが設定されているのがわかります。
Additional pull request templates(追加テンプレート)
PR作成画面でPR作成者が任意にテンプレートを使用することができます。以下のディレクトリのどれかに .md または .txt 拡張子のファイルを作成することで定義することができます。
- /.azuredevops/pull_request_template/
- /.vsts/pull_request_template/
- /docs/pull_request_template/
- /pull_request_template/
追加テンプレートではを追加するにはPR作成画面で「Add a template」ドロップダウンを展開して追加します。
追加テンプレートではデフォルトテンプレートやブランチテンプレートも選択することができます。
以上、よいAzure DevOpsライフを!