Logo

dev-resources.site

for different kinds of informations.

Azure DevOps のブランチ保護

Published at
6/26/2023
Categories
azure
devops
policy
Author
gtrekter
Categories
3 categories in total
azure
open
devops
open
policy
open
Author
8 person written this
gtrekter
open
Azure DevOps のブランチ保護

ブランチポリシーはGitワークフローの重要な部分であり、開発の重要な支店を保護するためのルールを定義できます。 この記事では、Azure DevOpsでブランチプロテクションを実装する方法について説明します。

ブランチ ポリシーをどのように設定するか

Azure DevOps ポータルにログインし、[Repos] ページに移動します。 ブランチが表示されたら、[ブランチ(Branchs)] を選択し、保護したいブランチ名の右側にある縦3点ボタンをクリックします。 ドロップダウン メニューから [Branch policies] をクリックします。 ポリシーがすでに有効になっている場合、このブランチではプル要求を使用しない限り、直接的な変更は受け付けません。

Image description

選択したブランチの設定ページには、次の 4 つのポリシー タイプがあります:

  • ブランチポリシー
  • ビルドの検証
  • ステータスチェック
  • 自動的に含まれるレビュアー まずは、ブランチポリシーからすべてを見ていきましょう。

ブランチポリシー

ここでは、次の 4 つの異なるポリシーについて説明します(デフォルトでは無効になっています):

  • 最低限のレビュアー数が必要
  • リンク先の作業項目を確認
  • コメント解決の確認
  • マージ タイプを制限する

Image description

最低限のレビュアー数が必要

このポリシーは、特定の数のレビュアーがプル要求を承認するよう強制します。 このオプションを有効にすると、次の設定にもアクセスできます:

  • 要求者が独自の変更を承認できるようにします: 有効になっている場合、プル要求の作成者は承認を投票することができます。 そうでなければ、まだ承認に投票することはできますが、その投票はレビュアー数に考慮されません。
  • 最新のプッシャーが独自の変更を承認することを禁止します: この設定は最初の設定と非常に似ていますが、これにはより広範な貢献者グループが含まれます。 デフォルトでは、ユーザ全員がコミットでき、プルリクエストの承認に投票できます。。 このオプションは、より新しいプッシュがあったときにプッシュ者の投票をカウントしないようにします。
  • 一部のレビュアーが待機または拒否に投票した場合でも、完了を許可します‘: 有効にすると、レビュー担当者が変更を拒否しても、プルリクエストを完了することができます。
  • 新しい変更がある場合は、コードレビュアーの投票をリセットします: 有効になっている場合、ソースブランチに新しい変更がプッシュされると、コードレビューアの投票がリセットされます。

Image description

リンク先の作業項目を確認

このポリシーによって、すべてのプルリクエストにリンクされた作業項目があることを要求できます。 これは、タスク管理に Azure ボードを使用している場合に特に便利です。

Image description

コメント解決の確認

このポリシーはコードレビュープロセスに焦点を当てており、コードレビューセクションでコメントされた場合、プルリクエストを完了する前にそのコメントを解決する必要があります。

Image description

マージ タイプを制限する

このポリシーにより、プルリクエストで一部のマージ タイプを許可または拒否できます。

  • 基本マージ(早送りなし): プルリクエストブランチ内の個々のコミットはすべて保持され、マスター ブランチとプル要求ブランチを統合するために新しいマージコミットが作成されます。
  • スカッシュマージ: この特定のマージにより、プルリクエストを構成したすべてのコミットを取り込み(それらは破棄されます、それらのリポジトリ内容で新しいコミットを 1 つ作成します。
  • リベースと早送り: リベースは、プルリクエスト内の各コミットを取り込み、目的のブランチにチェリーピックします。
  • マージコミットを使用してリベース: プルリクエスト内のコミットは、目的ブランチの上でリベースされます。 そして、リベースされたプルリクエストは移動先ブランチにマージされます。

Image description

ビルドの検証

有効にすると、このポリシーは新しいプルリクエストが作成されるたびに新しいビルドの結果を評価します。または、選択したブランチを対象とする既存のプルリクエストに変更がプッシュされる場合も同様です。 このビルドが成功しないと、プルリクエストを完了できません。
ビルド検証を追加するには、まずパイプラインセクションに新しいビルドパイプラインを作成する必要があります。

Image description

新しいパイプラインの作成が完了したら、ブランチの設定ページに移動し、検証ビルドの右側にあるプラスアイコンをクリックします。
表示されるウィンドウで、以前に作成したビルドパイプラインを選択します。 また、さまざまな設定をトリガーとして設定したり(ソースブランチが手動で更新されるたびにパイプラインを起動する)、ポリシー要件を設定したり(ビルドが成功する必要があるかどうか、またはプルリクエストを完了するために失敗する可能性があるかどうかを定義する)、 およびビルドの有効期限を設定できます(保護されたブランチへの更新がオープンプルリクエストの変更を壊さないようにする)。 ポリシーを完了するには、[Save] をクリックします。

Image description

ポリシーが完了すると、ビルド検証セクションに表示されます。 新しいものを追加して、もちろん定義済みのものを変更または削除することもできます。 ビルドを自動的に起動するには、Enable スイッチが必要です。

Image description

ステータスチェック

このブランチ ポリシーを使用すると、サードパーティ サービスを追加してワークフローに参加し、ポリシー要件に基づいてプルリクエストをブロックまたは許可できます。

Image description

レビュアーポリシー

このポリシーを使用すると、変更されたコード パスに基づいて、プルリクエストごとに何人かのレビュアーを自動的に含めることができます。 ポリシー要件設定には、次の 2 つのオプションがあります:

  • 必須: パスのすべてのレビュアーが変更を承認するか、パスに追加された各グループの少なくとも 1 人が変更を承認するまで、プルリクエストを完了できません。
  • オプション: レビュアーを自動的に追加しますが、プルリクエストを完了するための承認は必要ありません。 プルリクエストは、必要なすべてのレビュアーがコードを承認すると完了します。

Image description

これまで、ブランチ ポリシーを特定のブランチに設定する方法について説明してきましたが、より一般的な方法で実行する方法もあります。
複数のブランチのブランチ ポリシーを設定するには、[Settings] に移動し、[Repositories policies] をクリックして [Branch policies] セクションまでスクロールします。 このセクションでは、プロジェクト全体のブランチ ポリシーを作成できます。 これを行うには、プラス アイコンをクリックし、これらのポリシーをデフォルト ブランチまたは指定したパターンと一致するブランチに適用するかどうかを選択します。

Image description

[Create] をクリックすると、[Cross-repository policies settings] ページにリダイレクトされます。このページでは、以前とまったく同じポリシーを作成できます。

Image description

ブランチにポリシーが適用されると、ブランチ名の右側にアイコンが表示されます。

Image description

参考資料

policy Article's
30 articles in total
Favicon
Microsoft Certified Azure Administrator Associate Exam (AZ-104) Lab Preparation #2: Azure Policy
Favicon
Developer Self-Service with Resourcely
Favicon
Unlocking Fine-Grained Authorization with Amazon Verified Permissions: An Underrated AWS Service
Favicon
Optimizing AWS Infrastructure Deployment: Terraform, Sentinel, and CI/CD Best Practices
Favicon
Apple lanza su IA centrada en la privacidad: un nuevo paradigma para la inteligencia artificial
Favicon
Apple Launches Its Privacy-Focused AI: A New Paradigm for Artificial Intelligence
Favicon
Developing a Conflict of Interest Policy for Government Contracting
Favicon
Developing an Effective Compliance Program for Government Contracts
Favicon
How to Change a Southwest Airlines Flight?
Favicon
10 free access control and permission management for modern web-app
Favicon
Editing an IAM Service Role, and Attaching Service Roles to AWS Resources
Favicon
Restrict GitHub branches to specific prefixes
Favicon
Creating an AI policy
Favicon
Creating, testing and Deleting Policies
Favicon
A Comprehensive Guide to Testing in Terraform: Keep your tests, validations, checks, and policies in order
Favicon
Azure DevOps のブランチ保護
Favicon
Ensure proper Governance with Azure Policy
Favicon
Cross-Account Access to Amazon S3 using STS:AssumeRole
Favicon
Azure Policy - Find unused policies
Favicon
How to implement Policy Object pattern in Ruby on Rails?
Favicon
Washington, DC, and open—for maintainers
Favicon
Admission controllers for policy enforcement - motivation and theory
Favicon
MQTT policy enforcement with Pipy
Favicon
Linux Security Modules
Favicon
Azure Storage - Control usage of your SAS Keys
Favicon
Azure Storage - Simplify your keys rotation
Favicon
Proposal for a Sunset Policy for a GitHub Action
Favicon
Azure Policy - Trigger policy scan
Favicon
IAM Core Concepts
Favicon
Azure Policy - Add custom error messages

Featured ones: