az repos pr:コマンドラインで Azure DevOps のプルリクを扱う
Azure CLI の Azure DevOps 拡張を入れると az repos pr が使えるようになり、Azure Repos のプルリクを作る・一覧する・投票する・完了するといったことがコマンドでできます。使えるのは Azure DevOps Services だけで、Microsoft は「この拡張は Azure DevOps Server に対応しない」と書いています。以下は Microsoft の az repos pr のリファレンス、Get started with Azure DevOps CLI、Sign in with a personal access token からまとめたものです。
準備
- 入れる:Azure CLI を入れてから
az extension add --name azure-devops(更新はaz extension update --name azure-devops)。 - サインイン:
az login(Microsoft Entra。Microsoft は個人用アクセス トークンよりこちらを勧めています)。またはaz devops login --organization https://dev.azure.com/contosoで、聞かれたら個人用アクセス トークンを貼る(対話しないシェルなら標準入力から流し込める)。または環境変数AZURE_DEVOPS_EXT_PATを置く(どちらのサインインもしていない時に使われます)。ゲスト ユーザーはaz devops loginだけです。 - 既定:
az devops configure --defaults organization=https://dev.azure.com/contoso project=ContosoWebApp。既定がなければ--orgと--projectを付けるか、クローンの中で実行して git の設定から拾わせます(--detect)。リポジトリは--repositoryで指定します。
プルリクを作る
az repos pr create --source-branch feature/login --target-branch main --title "Add login" --description "1行目" "2行目"
--target-branchを省くとリポジトリの既定のブランチ。--descriptionに渡した値はそれぞれ1行になり、Markdown が使えます。--reviewers(--optional-reviewers)と--required-reviewersで人やグループを空白区切りで足し、--work-itemsで作業項目を ID でリンクし、--labelsでラベル(タグ)を付けます。--draft trueで下書きとして作り、--auto-complete trueですぐに自動完了を設定します(完了の時の--squash・--delete-source-branch・--merge-commit-message・--transition-work-itemsも一緒に)。--openでブラウザーに開きます。
探す・読む
az repos pr listでプルリクの一覧。--statusはactive・completed・abandoned・all。--creator・--reviewer・--source-branch・--target-branchで絞り、--topと--skipで区切ります。例:az repos pr list --reviewer me@contoso.com --output table。az repos pr show --id 21で詳細、az repos pr checkout --id 21で元ブランチをチェックアウト(手元に変更がない時だけ。--remote-nameの既定はorigin)。az repos pr reviewer list|add|remove --id 21とaz repos pr work-item list|add|remove --id 21で、レビュアーとリンクした作業項目を扱います。az repos pr policy list --id 21でブランチ ポリシーとその状態の一覧、az repos pr policy queue --id 21 --evaluation-id …で1つをやり直します(期限切れのビルドなど)。
投票と完了
az repos pr set-vote --id 21 --vote approve。値はapprove・approve-with-suggestions・wait-for-author・reject・resetです(それぞれの票の意味)。az repos pr update --id 21 --status completedで完了(--squash・--delete-source-branch・--merge-commit-message・--transition-work-itemsも)。--status abandonedで破棄、--status activeで再びアクティブに。az repos pr update --id 21 --auto-complete trueで自動完了。この設定のしかたでは任意のポリシーも待つことがあります(自動完了と任意のポリシー)。--draft falseで下書きを公開し、--titleと--descriptionで文を変えます。--bypass-policy true --bypass-policy-reason "…"で必須のポリシーを越えて完了します(上書きを許された人だけ)。
IntelliJ IDEA でのプルリク
Azure DevOps Pull Requests は、Lesstep が作っている JetBrains IDE(2024.1 以降)と Android Studio のプラグインです。自分の投票を待っているプルリクを、差分・コメント・ブランチ ポリシーと一緒に IDE のツールウィンドウに並べます。Azure DevOps Services でも、Azure CLI が使えない Azure DevOps Server でも動きます。Azure DevOps Services では Azure CLI のサインインを使えます。Use my Azure CLI sign-in (az login) instead of a token(トークンの代わりに Azure CLI のサインインを使う)を選ぶと、Azure CLI から有効期間の短い Entra のトークンをもらい、メモリーにだけ置きます。プルリクを読むのは無料、投票・コメント・完了・プルリクの作成は Pro(30日間の無料試用つき)です。画面は日本語です。
Azure DevOps と Azure は Microsoft Corporation の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:自動完了と任意のポリシー · ビルド検証と期限切れのビルド · グローバルな個人用アクセス トークンの廃止 · TF401179:同じブランチのアクティブなプルリクがすでにある · English