Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
분기 정책은 팀이 중요한 개발 분기 를 보호하는 데 도움이 됩니다. 정책은 팀의 코드 품질을 적용하고 관리 표준을 변경합니다. 이 문서에서는 분기 정책을 설정하고 관리하는 방법을 설명합니다. 모든 리포지토리 및 분기 정책 및 설정에 대한 개요는 Git 리포지토리 설정 및 정책을 참조하세요.
필요한 정책이 구성된 분기는 삭제할 수 없으며 모든 변경 내용에 대해 끌어오기 요청(PR)이 필요합니다.
필수 조건
분기 정책을 설정하려면 프로젝트 관리자 보안 그룹의 구성원이거나 리포지토리 수준 편집 정책 권한이 있어야 합니다. 자세한 내용은 Git 리포지토리 권한 설정을 참조 하세요.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--repository-id]
[--subscription]
매개 변수
매개 변수
설명
branch
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org, organization
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
query-examples
권장되는 JMESPath 문자열입니다. 쿼리 중 하나를 복사하여 매개 변수 뒤 --query 를 큰따옴표로 붙여넣어 결과를 볼 수 있습니다. 이러한 키워드를 기반으로 제안할 수 있도록 하나 이상의 위치 키워드를 추가할 수 있습니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
예제
다음 명령은 Fabrikam 리포지토리 IDd28cd374-e7f0-4b1f-ad60-f349f155d47c의 분기에 적용되는 main 모든 분기 정책을 반환합니다. 를 실행 az repos list하여 리포지토리 ID를 가져올 수 있습니다.
이 예제에서는 다음과 같은 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
az repos policy list --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --branch main --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
5 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
6 Comment requirements False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
12 Required reviewers True False d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
13 Required reviewers False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--subscription]
매개 변수
매개 변수
설명
id, policy-id
정책의 ID입니다. 필수입니다.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org, organization
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
query-examples
권장되는 JMESPath 문자열입니다. 쿼리 중 하나를 복사하여 매개 변수 뒤 --query 를 큰따옴표로 붙여넣어 결과를 볼 수 있습니다. 이러한 키워드를 기반으로 제안할 수 있도록 하나 이상의 위치 키워드를 추가할 수 있습니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
정책을 설정하려면 분기 정책에서 최소 검토자 수를 켜기로 설정합니다. 필요한 검토자 수를 입력하고 다음 옵션 중 원하는 옵션을 선택합니다.
PR 작성자가 승인에 투표할 수 있도록 요청자가 자신의 변경 내용을 승인하도록 허용을 선택합니다. 그렇지 않은 경우 작성자는 PR에 대한 승인을 계속 투표할 수 있지만 투표는 최소 검토자 수에 포함되지 않습니다.
가장 최근의 푸셔가 자신의 변경 내용을 승인하여 의무 분리를 적용하는 것을 금지합니다. 기본적으로 원본 분기에 대한 푸시 권한이 있는 사용자는 커밋을 추가하고 PR 승인에 투표할 수 있습니다. 이 옵션을 선택하면 일반적으로 자신의 변경 내용을 승인할 수 있더라도 가장 최근의 푸셔의 투표는 계산되지 않습니다.
일부 검토자가 승인에 대해 투표하는 경우에도 일부 검토자가 PR 완료를 허용하도록 기다리거나 거부하는 경우에도 완료 허용을 선택합니다. 검토자의 최소 수는 여전히 승인해야 합니다.
새 변경 내용이 푸시되는 경우:
마지막 반복에 대해 하나 이상의 승인 필요를 선택하여 마지막 원본 분기 변경에 대해 하나 이상의 승인 투표를 요구합니다.
모든 승인 투표를 제거하려면 모든 승인 투표 재설정(거부 또는 대기에 대한 투표를 다시 설정하지 않음)을 선택하지만 원본 분기가 변경 될 때마다 투표를 거부하거나 기다리도록 유지합니다.
승인, 거부 또는 대기할 투표를 포함하여 원본 분기가 변경 될 때마다 모든 검토자 투표를 제거하려면 모든 코드 검토자 투표 다시 설정을 선택합니다.
새 변경 내용이 푸시되는 경우:
마지막 원본 분기 변경에 대해 하나 이상의 승인 투표를 요구하려면 모든 반복에 대해 하나 이상의 승인 필요를 선택합니다. 사용자의 승인은 해당 사용자가 푸시한 이전의 승인되지 않은 반복에 대해 계산되지 않습니다. 따라서 다른 사용자가 마지막 반복에 대한 또 다른 승인을 수행해야 합니다. Azure DevOps Server 2022.1 이상에서는 모든 반복 에 대해 하나 이상의 승인이 필요합니다.
마지막 반복에 대해 하나 이상의 승인 필요를 선택하여 마지막 원본 분기 변경에 대해 하나 이상의 승인 투표를 요구합니다.
모든 승인 투표를 제거하려면 모든 승인 투표 재설정(거부 또는 대기에 대한 투표를 다시 설정하지 않음)을 선택하지만 원본 분기가 변경 될 때마다 투표를 거부하거나 기다리도록 유지합니다.
승인, 거부 또는 대기할 투표를 포함하여 원본 분기가 변경 될 때마다 모든 검토자 투표를 제거하려면 모든 코드 검토자 투표 다시 설정을 선택합니다.
요청자가 자신의 변경 내용을 승인할 수 있는 경우 끌어오기 요청 작성자는 끌어오기 요청에 대해 승인을 투표할 수 있지만 투표는 최소 검토자 수에 포함되지 않습니다.
검토자가 변경 내용을 거부하는 경우 일부 검토자가 기다리거나 거부하는 경우에도 완료 허용을 선택하지 않는 한 끌어오기 요청을 완료할 수 없습니다.
새 변경 내용이 원본 분기에 푸시될 때 코드 검토자 투표를 다시 설정할 수 있습니다. 새 변경 내용이 있는 경우 코드 검토자 투표 다시 설정을 선택합니다.
다른 모든 정책이 통과되면 필요한 수의 검토자가 승인하면 작성자가 PR을 완료할 수 있습니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main필수입니다.
creator-vote-counts
작성자의 투표 수를 계산합니다. 허용되는 값: false, . true필수입니다.
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true필수입니다.
minimum-approver-count
필요한 최소 승인자 수입니다. 예: 2필수입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다. 필수입니다.
reset-on-source-push
변경 내용이 원본으로 푸시될 때 투표를 다시 설정합니다. 허용되는 값: false, . true필수입니다.
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
예제
다음 예제에서는 Fabrikam 리포지토리의 분기에서 main 끌어오기 요청에 필요한 최소 승인 2 수를 설정합니다. 이 정책은 다운투표를 허용합니다. 즉, 일부 검토자가 승인하지 않기로 결정하더라도 승인할 최소 수만큼 끌어오기 요청이 완료됩니다. 원본 분기로 푸시해도 투표는 다시 설정되지 않습니다. 또한 이 정책을 사용하면 끌어오기 요청 작성자가 자체 끌어오기 요청을 승인할 수 있습니다.
이 예제에서는 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
az repos policy approver-count create --allow-downvotes true --blocking true --branch main --creator-vote-counts true --enabled true --minimum-approver-count 2 --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --reset-on-source-push false --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
27 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
승인자 수 정책 업데이트
승인자 개수 정책을 업데이트하려면 az repos policy approver-count 업데이트를 사용합니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
creator-vote-counts
작성자의 투표 수를 계산합니다. 허용되는 값: false, . true
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true
minimum-approver-count
필요한 최소 승인자 수입니다. 예: 2
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
reset-on-source-push
변경 내용이 원본으로 푸시될 때 투표를 다시 설정합니다. 허용되는 값: false, . true
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
정책을 설정하려면 분기 정책에서 연결된 작업 항목 확인을 켜기로 설정합니다. 이 설정을 사용하려면 PR을 병합하기 위해 작업 항목을 PR에 연결해야 합니다. 연결된 작업 항목이 없는 경우 경고를 표시하지만 끌어오기 요청의 완료를 허용하려면 설정을 선택 사항 으로 지정합니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main필수입니다.
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true필수입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
작업 항목 연결 정책 업데이트
az repos policy work-item-linking update를 사용하여 리포지토리 또는 하나 이상의 분기에 대한 작업 항목 연결 정책을 업데이트합니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true
minimum-approver-count
필요한 최소 승인자 수입니다. 예: 2
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
예제
다음 예제에서는 Fabrikam 리포지토리의 분기에 대한 main 정책 ID 3 를 사용하도록 업데이트하지만 선택 사항입니다. 이 예제에서는 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
>az repos policy work-item-linking update --id 3 --blocking false --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ----------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main필수입니다.
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true필수입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다. 필수입니다.
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
주석 확인 정책 업데이트
주석 확인 정책을 업데이트하려면 az repos policy comment-required 업데이트를 사용합니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
예제
다음 예제에서는 Fabrikam 리포지토리의 분기에서 main 차단할 주석 확인 정책 ID 6 를 업데이트합니다. 끌어오기 요청이 병합되기 전에 주석을 확인해야 합니다. 이 예제에서는 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
az repos policy comment-required update --id 6 --blocking true --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- -------------------- ------------- ------------ ------------------------------------ ---------------
6 Comment requirements True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main필수입니다.
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true필수입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다. 필수입니다.
allow-no-fast-forward
빠른 전달 없이 기본 병합 개발 중에 발생한 것과 정확하게 비선형 기록을 유지합니다. 허용되는 값: false, . true
allow-rebase
다시 기반하고 빠르게 전달합니다. 병합 커밋 없이 원본 분기 커밋을 대상에 재생하여 선형 기록을 만듭니다. 허용되는 값: false, . true
allow-rebase-merge
병합 커밋을 사용하여 다시베이스합니다. 원본 분기 커밋을 대상에 재생한 다음 병합 커밋을 만들어 반선형 기록을 만듭니다. 허용되는 값: false, . true
allow-squash
Squash 병합. 원본 분기 커밋을 대상 분기의 단일 새 커밋으로 압축하여 선형 기록을 만듭니다. 허용되는 값: false, . true
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
use-squash-merge
항상 스쿼시 병합. 다른 병합 형식에는 이 옵션을 사용할 수 없습니다. 허용되는 값: false, . true
참고: use-squash-merge 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대신 --allow-squash을 사용합니다.
예제
다음 예제에서는 Fabrikam 리포지토리의 분기에서 main 끌어오기 요청에 필요한 병합 전략을 설정하여 squash 병합을 허용합니다. 이 예제에서는 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
az repos policy merge-strategy create --allow-squash true --blocking true --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------------ ------------- ------------ ------------------------------------ ---------------
29 Require a merge strategy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
병합 전략 정책 업데이트
az repos policy merge-strategy update를 사용하여 병합 전략 정책을 업데이트합니다.
빠른 전달 없이 기본 병합 개발 중에 발생한 것과 정확하게 비선형 기록을 유지합니다. 허용되는 값: false, . true
allow-rebase
다시 기반하고 빠르게 전달합니다. 병합 커밋 없이 원본 분기 커밋을 대상에 재생하여 선형 기록을 만듭니다. 허용되는 값: false, . true
allow-rebase-merge
병합 커밋을 사용하여 다시베이스합니다. 원본 분기 커밋을 대상에 재생한 다음 병합 커밋을 만들어 반선형 기록을 만듭니다. 허용되는 값: false, . true
allow-squash
Squash 병합. 원본 분기 커밋을 대상 분기의 단일 새 커밋으로 압축하여 선형 기록을 만듭니다. 허용되는 값: false, . true
blocking
정책이 충족되지 않으면 차단합니다. 허용되는 값: false, . true
branch
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
use-squash-merge
항상 병합을 스쿼시할지 여부입니다. 이 옵션은 다른 병합 형식에서는 작동하지 않습니다. 허용되는 값: false, . true
정책 요구 사항에 따라 필수 또는 선택 사항을 선택합니다. 필수를 선택하는 경우 빌드가 완료되어야만 PR을 완료할 수 있습니다. 선택 사항을 선택하여 빌드 실패에 대한 알림을 제공하지만 여전히 PR이 완료되도록 허용합니다.
보호된 분기 업데이트가 열려 있는 PR에 대한 변경 내용을 중단하지 않도록 빌드 만료를 설정합니다.
<분기 이름이> 업데이트되는 즉시: 이 옵션은 분기가 업데이트될 때마다 PR 빌드 정책 상태가 실패하도록 설정하고 빌드를 다시 큐에 추가합니다. 이 설정을 사용하면 보호된 분기 변경되더라도 PR 변경 내용이 성공적으로 빌드됩니다.
이 옵션은 중요한 분기가 거의 변경되지 않은 팀에 가장 적합합니다. 사용량이 많은 개발 분기에서 작업하는 팀은 분기가 업데이트될 때마다 빌드를 기다리는 데 방해가 될 수 있습니다.
<분기 이름이> 업데이트된 경우 <n>시간 후: 전달 빌드가 입력한 임계값보다 오래된 경우 보호된 분기 업데이트되면 이 옵션은 현재 정책 상태가 만료됩니다. 이 옵션은 보호된 분기 업데이트할 때 항상 또는 전혀 빌드가 필요하지 않은 경우의 절충안입니다. 이 옵션을 선택하면 보호된 분기 자주 업데이트하는 경우 빌드 수가 줄어듭니다.
Never: 보호된 분기 업데이트해도 정책 상태가 변경되지 않습니다. 이 값은 빌드 수를 줄이지만 최근에 업데이트되지 않은 PR을 완료할 때 문제가 발생할 수 있습니다.
이 빌드 정책의 선택적 표시 이름을 입력합니다. 이 이름은 분기 정책 페이지의 정책을 식별합니다. 표시 이름을 지정하지 않으면 정책은 빌드 파이프라인 이름을 사용합니다.
저장을 선택합니다.
PR 소유자가 빌드에 성공한 변경 내용을 푸시하면 정책 상태가 업데이트됩니다.
분기 이름이 업데이트되는 즉시 <또는 분기 이름이>> 업데이트된 빌드 정책이 있는 경우 <n>시간 후에 <이전 빌드가 더 이상 유효하지 않은 경우 보호된 분기 업데이트되면 정책 상태가 업데이트됩니다.
참고 항목
이 기능은 Azure DevOps Server 2020 이상 버전에서 사용할 수 있습니다.
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다. 필수입니다.
valid-duration
정책 유효 기간(분)입니다. 참고:valid-duration 0에서 1년 사이여야 하며, 0이어야 --queue-on-source-update-onlyfalse합니다. 필수입니다.
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
path-filter
정책을 적용할 경로가 적용됩니다. 절대 경로, 와일드카드 및 로 구분된 ;여러 경로를 지원합니다. 예: /WebApp/Models/Data.cs, /WebApp/*또는 *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
예제
다음 예제에서는 Fabrikam 리포지토리의 분기에서 main 끌어오기 요청에 필요한 빌드 정책을 설정합니다. 정책에는 빌드 정의 ID 1의 성공적인 빌드가 필요하며 수동 빌드 큐만 허용합니다. 이 예제에서는 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
az repos policy build create --blocking true --branch main --build-definition-id 1 --display-name build-policy --enabled true --manual-queue-only true --queue-on-source-update-only false --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --valid-duration 0 --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------ ------------- ------------ ------------------------------------ ---------------
31 build-policy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
빌드 유효성 검사 정책 업데이트
az repos policy build update를 사용하여 빌드 유효성 검사 정책을 업데이트합니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
build-definition-id
빌드 정의 ID입니다.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
display-name
이 빌드 정책의 이름을 표시하여 정책을 식별합니다. 예: Manual queue policy
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true
manual-queue-only
빌드의 수동 큐만 허용할지 여부입니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
path-filter
정책을 적용할 경로가 적용됩니다. 절대 경로, 와일드카드 및 로 구분된 ;여러 경로를 지원합니다. 예: /WebApp/Models/Data.cs, /WebApp/*또는 *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
끌어오기 요청을 완료하기 전에 보호된 분기 사용하여 끌어오기 요청의 변경 내용을 성공적으로 빌드하도록 요구하는 정책을 설정합니다.
빌드 정책은 중단을 줄이고 테스트 결과를 계속 전달합니다. 빌드 정책은 개발 분기에서 CI(연속 통합)를 사용하여 문제를 조기에 catch하는 경우에도 도움이 됩니다.
빌드 유효성 검사 정책을 사용하는 경우 새 끌어오기 요청이 생성되거나 분기를 대상으로 하는 기존 끌어오기 요청으로 변경 내용이 푸시될 때 새 빌드가 큐에 대기됩니다. 그런 다음 빌드 정책은 빌드 결과를 평가하여 끌어오기 요청을 완료할 수 있는지 여부를 결정합니다.
Important
빌드 유효성 검사 정책을 지정하기 전에 빌드 정의가 있어야 합니다. 빌드 정의가 없는 경우 빌드 정의 만들기를 참조하고 프로젝트 형식과 일치하는 빌드 유형을 선택합니다.
빌드 정책 추가를 선택하고 빌드 정책 추가에서 옵션을 구성합니다.
빌드 정의를 선택합니다.
트리거 유형을 선택합니다. 자동(원본 분기가 업데이트 될 때마다) 또는 수동을 선택합니다.
정책 요구 사항을 선택합니다. 필수를 선택하는 경우 끌어오기 요청을 완료하려면 빌드가 성공적으로 완료되어야 합니다. 선택 사항을 선택하여 빌드 실패에 대한 알림을 제공하지만 끌어오기 요청이 완료되도록 허용합니다.
보호된 분기 대한 업데이트가 열려 있는 끌어오기 요청에 대한 변경 내용을 중단하지 않도록 빌드 만료를 설정합니다.
branch name 업데이트되는 즉시: 이 옵션은 보호된 분기 업데이트될 때 끌어오기 요청의 빌드 정책 상태가 실패하도록 설정합니다. 빌드 상태를 새로 고치려면 빌드를 다시 큐에 추가합니다. 이 설정을 사용하면 보호된 분기 변경되더라도 끌어오기 요청의 변경 내용이 성공적으로 빌드됩니다. 이 옵션은 변경 볼륨이 낮은 중요한 분기가 있는 팀에 가장 적합합니다. 사용량이 많은 개발 분기에서 작업하는 팀은 보호된 분기 업데이트될 때마다 빌드가 완료될 때까지 기다리는 데 방해가 될 수 있습니다.
n 업데이트된 시간 branch name 후: 이 옵션은 전달 빌드가 입력한 임계값보다 오래된 경우 보호된 분기 업데이트될 때 현재 정책 상태가 만료됩니다. 이 옵션은 보호된 분기 업데이트할 때 항상 빌드를 요구하는 것과 필요하지 않은 빌드 간의 절충안입니다. 이 선택은 보호된 분기 자주 업데이트하는 경우 빌드 수를 줄이는 데 적합합니다.
Never: 보호된 분기 업데이트해도 정책 상태가 변경되지 않습니다. 이 값은 분기에 대한 빌드 수를 줄입니다. 최근에 업데이트되지 않은 끌어오기 요청을 닫을 때 문제가 발생할 수 있습니다.
이 빌드 정책의 선택적 표시 이름을 입력합니다. 이 이름은 분기 정책 페이지의 정책을 식별합니다. 표시 이름을 지정하지 않으면 정책은 빌드 정의 이름을 사용합니다.
저장을 선택합니다.
소유자가 빌드에 성공한 변경 내용을 푸시하면 정책 상태가 업데이트됩니다. 업데이트되는 즉시 또는 업데이트된 빌드 정책이 선택된 경우 branch name 몇 시간 후 n 인 경우 가장 최근 빌드가 더 이상 유효하지 않은 경우 보호된 분기 업데이트되면 정책 상태가 업데이트됩니다.branch name
상태 검사
외부 서비스는 PR 상태 API 를 사용하여 PR에 자세한 상태를 게시할 수 있습니다. 추가 서비스에 대한 분기 정책을 사용하면 해당 외부 서비스가 PR 워크플로에 참여하고 정책 요구 사항을 설정할 수 있습니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main필수입니다.
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true필수입니다.
message
끌어오기 요청에 표시되는 활동 피드 메시지입니다. 필수입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다. 필수입니다.
required-reviewer-ids
검토자 전자 메일 주소는 .로 구분됩니다 ;. 예: john@contoso.com;alice@contoso.com
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
path-filter
정책을 적용할 경로가 적용됩니다. 절대 경로, 와일드카드 및 로 구분된 ;여러 경로를 지원합니다. 예: /WebApp/Models/Data.cs, /WebApp/*또는 *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
예제
다음 예제에서는 Fabrikam 리포지토리의 분기에서 main 끌어오기 요청에 필요한 검토자로 Jamal Hartnett를 설정합니다. 이 예제에서는 기본 구성 az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"을 사용합니다.
az repos policy required-reviewer create --blocking true --branch main --enabled true --message "Please review." --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --required-reviewer-ids fabrikamfiber4@hotmail.com --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------ ------------- ------------ ------------------------------------ ---------------
35 Required reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
필요한 검토자 정책 업데이트
az repos policy required-reviewer update를 사용하여 필요한 검토자 정책을 업데이트합니다.
정확히 일치하여 결과를 필터링하는 분기 이름입니다. --repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
branch-match-type
인수를 branch 사용하여 정책을 적용합니다. 값이 exact면 정책이 인수와 정확히 일치하는 --branch 분기에 적용됩니다. 값이 prefix면 정책이 인수의 접두사와 일치하는 모든 분기 폴더에 --branch 적용됩니다. 허용되는 값: exact, . prefix 기본값: exact.
detect
조직을 자동으로 검색합니다. 허용되는 값: false, . true
enabled
정책을 사용하도록 설정합니다. 허용되는 값: false, . true
message
끌어오기 요청에 표시되는 활동 피드 메시지입니다.
org
Azure DevOps 조직 URL입니다. 를 사용하여 az devops configure -d organization=<ORG_URL>기본 조직을 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다. 예: https://dev.azure.com/MyOrganizationName/.
path-filter
정책을 적용할 경로가 적용됩니다. 절대 경로, 와일드카드 및 로 구분된 ;여러 경로를 지원합니다. 예: /WebApp/Models/Data.cs, /WebApp/*또는 *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
프로젝트의 이름 또는 ID입니다. 를 사용하여 az devops configure -d project=<NAME_OR_ID>기본 프로젝트를 구성할 수 있습니다. 기본값으로 구성되지 않았거나 git 구성을 통해 선택되는 경우 필수 입니다.
repository-id
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345입니다.
required-reviewer-ids
검토자 전자 메일 주소는 .로 구분됩니다 ;. 예: john@contoso.com;alice@contoso.com
subscription
구독의 이름 또는 ID입니다. az account set -s <NAME_OR_ID>를 사용하여 기본 위치를 구성할 수 있습니다.
이러한 검토자는 해당 경로를 따라 파일을 변경하는 끌어오기 요청에 자동으로 추가됩니다. 활동 피드 메시지를 지정할 수도 있습니다.
필수를 선택하면 다음까지 끌어오기 요청을 완료할 수 없습니다.
경로에 대한 검토자로 추가된 모든 사용자는 변경 내용을 승인합니다.
경로에 추가된 모든 그룹에서 하나 이상의 사용자가 변경 내용을 승인합니다.
경로에 추가된 모든 그룹에 대해 지정된 검토자 수가 변경 내용을 승인합니다.
검토자를 자동으로 추가하지만 끌어오기 요청을 완료하기 위해 승인이 필요하지 않은 경우 선택 사항을 선택합니다.
요청자가 자신의 변경 내용을 승인할 수 있도록 선택할 수 있습니다.
모든 필수 검토자가 코드를 승인하면 끌어오기 요청을 완료할 수 있습니다.
분기 정책 무시
경우에 따라 정책 요구 사항을 무시해야 할 수 있습니다. 권한 무시를 사용하면 변경 내용을 분기에 직접 푸시하거나 분기 정책을 충족하지 않는 끌어오기 요청을 완료할 수 있습니다. 사용자 또는 그룹에 바이패스 권한을 부여할 수 있습니다. 바이패스 권한의 범위를 전체 프로젝트, 리포지토리 또는 단일 분기로 지정할 수 있습니다.
두 가지 사용 권한을 통해 사용자는 다른 방법으로 분기 정책을 바이패스할 수 있습니다.
끌어오기 요청을 완료할 때 정책을 우회하는 것은 끌어오기 요청 완료에만 적용됩니다. 끌어오기 요청이 정책을 충족하지 않는 경우에도 이 권한이 있는 사용자는 끌어오기 요청을 완료할 수 있습니다.
푸시할 때 정책을 바이패스하면 로컬 리포지토리의 푸시 및 웹에서 수행한 편집 내용에 적용됩니다. 이 권한이 있는 사용자는 정책 요구 사항을 충족하지 않고도 변경 내용을 보호된 분기 직접 푸시할 수 있습니다.
분기 정책을 바이패스할 수 있는 권한이 없으면 필요한 분기 정책을 사용하여 변경 내용을 분기로 직접 푸시할 수 없습니다. 이러한 분기의 변경 내용은 끌어오기 요청을 통해 서만 수행할 수 있습니다. 필요한 분기 정책이 없는 경우 선택적 분기 정책이 있는 분기에 직접 변경 내용을 푸시할 수 있습니다.
자동 완성이란?
분기 정책이 구성된 분기로 요청을 끌어오면 자동 완성 설정 단추가 있습니다. 모든 정책을 처리한 후 끌어오기 요청을 자동으로 완료하려면 이 옵션을 선택합니다. 자동 완성은 변경 내용에 문제가 없을 때 유용합니다.
분기 정책 조건은 언제 확인되나요?
끌어오기 요청 소유자가 변경 내용을 푸시하고 검토자가 투표할 때 분기 정책은 서버에서 다시 평가됩니다. 정책이 빌드를 트리거하는 경우 빌드 상태가 빌드가 완료될 때까지 대기 상태로 설정됩니다.
분기 정책에서 XAML 빌드 정의를 사용할 수 있나요?
아니요, 분기 정책에서는 XAML 빌드 정의를 사용할 수 없습니다.
필요한 코드 검토자에 사용할 수 있는 와일드카드 문자는 무엇인가요?
단일 별표는 * 슬래시 및 백슬래시 / 모두를 포함하여 임의의 수의 문자와 일치합니다 \. 물음표는 ? 모든 단일 문자와 일치합니다.
예:
*.sql는 모든 파일과 .sql 확장자를 갖습니다.
/ConsoleApplication/* 는 ConsoleApplication이라는 폴더 아래의 모든 파일과 일치합니다.
/.gitattributes 는 리포지토리의 루트에 있는 .gitattributes* 파일과 일치합니다.