デフォルトブランチに直接プッシュするのを禁止して、別のブランチからプルリクエストを経てデフォルトブランチにマージする、という開発チームのルールがあったとします。これを master とか main とかに設定しているデフォルトブランチ共通のブランチポリシーを Azure Repos のプロジェクトに対して Azure CLI で設定してみます。
現状のブランチポリシーの確認
ポリシーは設定されておらず、JSON の中身は空です。
bash
$ az repos policy list \
--org https://dev.azure.com/mnrsdev/ \
--project mnrror
[]
ブランチポリシー JSON を作成
type.id は "Minimum number of reviewers" の ID です。
branch-policy.json
{
"isEnabled": true,
"isBlocking": true,
"type": {
"id": "fa4e907d-c16b-4a4c-9dfa-4906e5d171dd"
},
"settings": {
"minimumApproverCount": 1,
"creatorVoteCounts": true,
"scope": [
{
"repositoryId": null,
"refName": null,
"matchKind": "DefaultBranch"
}
]
}
}
ブランチポリシーを登録
bash
$ az repos policy create \
--org https://dev.azure.com/mnrsdev/ \
--project mnrror \
--config branch-policy.json
ブランチポリシーの設定を確認
デフォルトブランチのブランチポリシーが作成されました。
最低一人以上のレビューを経ないとデフォルトブランチにマージできなくなりました。
またプルリクエストした人とレビューする人が同じでも良いように "Allow requestors to approve their own changes" をオンにしています。
参考