Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
분기 정책은 팀이 중요한 개발 분기 를 보호하는 데 도움이 됩니다. 정책은 팀의 코드 품질을 적용하고 관리 표준을 변경합니다. 이 문서에서는 분기 정책을 설정하고 관리하는 방법을 설명합니다. 모든 리포지토리 및 분기 정책 및 설정에 대한 개요는 Git 리포지토리 설정 및 정책을 참조하세요.
필요한 정책이 구성된 분기는 삭제할 수 없으며 모든 변경 내용에 대해 끌어오기 요청(PR)이 필요합니다.
필수 조건
- 분기 정책을 설정하려면 프로젝트 관리자 보안 그룹의 구성원이거나 리포지토리 수준 정책 편집 권한이 있어야 합니다. 자세한 내용은 Git 리포지토리 권한 설정을 참조 하세요.
브랜치 정책을 관리하려면 웹 포털에서 리포지토리>브랜치를 선택하여 브랜치 페이지를 엽니다.
프로젝트 설정에서 레포지토리정책 및 브랜치 정책브랜치 이름에 대한 정책을 설정할 수 있습니다.
정책이 있는 분기는 정책 아이콘을 표시합니다. 아이콘을 선택하여 분기의 정책 설정으로 직접 갈 수 있습니다.
분기 정책을 설정하려면 관리하려는 분기를 찾습니다. 목록을 찾아보거나 오른쪽 위에 있는 분기 이름 검색 상자에서 분기를 검색할 수 있습니다.
분기 옆에 있는 기타 옵션 아이콘을 선택한 다음 상황에 맞는 메뉴에서 분기 정책을 선택합니다.
지점의 설정 페이지에서 정책을 구성합니다. 각 정책 유형에 대한 설명 및 지침은 다음 섹션을 참조하세요.
Azure DevOps CLI를 사용하여 분기 또는 리포지토리에 대한 정책을 나열하거나 표시할 수 있습니다.
정책 나열
프로젝트의 모든 정책을 나열하려면 az repos 정책 목록을 사용합니다.
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 리포지토리 IDmain
의 분기에 적용되는 d28cd374-e7f0-4b1f-ad60-f349f155d47c
모든 분기 정책을 반환합니다. 를 실행 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 정책 쇼를 사용합니다.
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> 를 사용하여 기본 구독을 구성할 수 있습니다. |
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
최소 검토자 수 요구
코드 검토는 소프트웨어 개발 프로젝트에 중요합니다. 팀이 PR을 검토하고 승인하도록 하려면 최소 수의 검토자의 승인을 요구할 수 있습니다. 기본 정책을 사용하려면 지정된 수의 검토자가 거부 없이 코드를 승인해야 합니다.
정책을 설정하려면 분기 정책 아래에서 최소 검토자 수 요구를 켬으로 설정합니다. 필요한 검토자 수를 입력하고 다음 옵션 중 원하는 옵션을 선택합니다.
요청자가 자신의 변경 사항을 승인하도록 허용을 선택하여 PR 작성자가 승인에 투표할 수 있도록 합니다. 그렇지 않은 경우 작성자는 PR에 대한 승인을 계속 투표할 수 있지만 투표는 최소 검토자 수에 포함되지 않습니다.
가장 최근의 푸셔가 자신의 변경 내용을 승인하지 못하도록 금지하여 직무 분리를 시행합니다. 기본적으로 원본 분기에 대한 푸시 권한이 있는 사용자는 커밋을 추가하고 PR 승인에 투표할 수 있습니다. 이 옵션을 선택하면 일반적으로 자신의 변경 내용을 승인할 수 있더라도 가장 최근 변경을 푸시한 사람의 투표는 무효 처리됩니다.
"일부 검토자가 승인을 반대하는 경우에도 PR 완료를 허용하려면 기다리거나 거부에 투표하더라도 완료 허용을 선택합니다." 검토자의 최소 수는 여전히 승인해야 합니다.
-
새 변경 내용이 푸시되는 경우:
-
마지막 반복에서 하나 이상의 승인을 요구하도록 선택하여 마지막 원본 분기의 변경에 대해 하나 이상의 승인 투표를 요구합니다.
- 모든 승인 투표를 제거하려면 모든 승인 투표 재설정(거부 또는 대기에 대한 투표를 다시 설정하지 않음)을 선택하지만 원본 분기가 변경 될 때마다 투표를 거부하거나 기다리도록 유지합니다.
- 소스 분기가 변경될 때마다 승인, 거부 또는 대기를 포함하여 모든 검토자 투표를 제거하려면 모든 코드 검토자 투표 다시 설정을 선택하십시오.
-
새 변경 내용이 푸시되는 경우:
- 마지막 원본 분기 변경에 대해 최소 한 번의 승인이 필요하도록 하려면, 각 반복에서 최소 한 번의 승인 필요를 선택합니다. 사용자의 승인은 해당 사용자가 푸시한 이전의 승인되지 않은 반복에 대해 계산되지 않습니다. 따라서 다른 사용자가 마지막 반복에 대한 또 다른 승인을 수행해야 합니다.
Azure DevOps Server 2022.1 이상에서는 매 반복마다 최소한 하나의 승인이 필요합니다.
-
마지막 반복에서 하나 이상의 승인을 요구하도록 선택하여 마지막 원본 분기의 변경에 대해 하나 이상의 승인 투표를 요구합니다.
- 모든 승인 투표를 제거하려면 모든 승인 투표 재설정(거부 또는 대기에 대한 투표를 다시 설정하지 않음)을 선택하지만 원본 분기가 변경 될 때마다 투표를 거부하거나 기다리도록 유지합니다.
- 소스 분기가 변경될 때마다 승인, 거부 또는 대기를 포함하여 모든 검토자 투표를 제거하려면 모든 코드 검토자 투표 다시 설정을 선택하십시오.
다른 모든 정책이 통과되면 필요한 수의 검토자가 승인하면 작성자가 PR을 완료할 수 있습니다.
az repos policy approver-count를 사용하여 끌어오기 요청 필수 승인자 수를 관리할 수 있습니다.
승인자 수 정책 만들기
승인자 개수 정책을 만들려면 az repos policy approver-count create를 사용합니다.
az repos policy approver-count create --allow-downvotes {false, true}
--blocking {false, true}
--branch
--creator-vote-counts {false, true}
--enabled {false, true}
--minimum-approver-count
--repository-id
--reset-on-source-push {false, true}
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
매개 변수
매개 변수 |
설명 |
allow-downvotes |
비추천을 허용합니다. 허용되는 값: false , . true
필수입니다. |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true
필수입니다. |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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 리포지토리의 2
브랜치에서 끌어오기 요청에 필요한 승인 최소 개수를 main
로 설정하는 예제입니다. 이 정책은 다운투표를 허용합니다. 즉, 일부 검토자가 승인에 반대표를 던지더라도 최소 승인 요건을 충족하면 끌어오기 요청이 완료됩니다. 원본 분기로 푸시해도 투표는 다시 설정되지 않습니다. 또한 이 정책을 사용하면 끌어오기 요청 작성자가 자체 끌어오기 요청을 승인할 수 있습니다.
이 예제에서는 기본 구성 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 업데이트를 사용합니다.
az repos policy approver-count update --id
[--allow-downvotes {false, true}]
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--creator-vote-counts {false, true}]
[--detect {false, true}]
[--enabled {false, true}]
[--minimum-approver-count]
[--org]
[--project]
[--repository-id]
[--reset-on-source-push {false, true}]
[--subscription]
매개 변수
매개 변수 |
설명 |
id , policy-id |
정책의 ID입니다.
필수입니다. |
allow-downvotes |
비추천을 허용합니다. 허용되는 값: false , . true |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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> 를 사용하여 기본 구독을 구성할 수 있습니다. |
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
연결된 작업 항목 확인
작업 항목 관리 추적의 경우, PR과 작업 항목 간의 연결을 요구할 수 있습니다. 작업 항목을 연결하면 변경 내용에 대한 컨텍스트가 더 많이 제공되고 업데이트가 작업 항목 추적 프로세스를 거치도록 합니다.
정책을 설정하려면 분기 정책에서 연결된 작업 항목 확인을 켜기로 설정합니다. PR을 병합하려면 이 설정으로 작업 항목을 PR에 연결해야 합니다. 연결된 작업 항목이 없는 경우 경고를 표시하지만 끌어오기 요청의 완료를 허용하려면 설정을 선택 사항 으로 지정합니다.
Azure CLI az repos policy work-item-linking 을 사용하여 분기 또는 리포지토리에 대한 작업 항목 연결 정책을 만들고 업데이트할 수 있습니다.
작업 항목 연결 정책 만들기
az repos policy work-item-linking create를 사용하여 리포지토리 또는 분기에 대한 작업 항목 연결 정책을 만듭니 다.
az repos policy work-item-linking create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
매개 변수
매개 변수 |
설명 |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true
필수입니다. |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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를 사용하여 리포지토리 또는 하나 이상의 분기에 대한 작업 항목 연결 정책을 업데이트합니다.
az repos policy work-item-linking update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
매개 변수
매개 변수 |
설명 |
id , policy-id |
정책의 ID입니다.
필수입니다. |
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 |
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 리포지토리의 특정 브랜치에 대한 3
정책 ID main
를 활성화 상태로 업데이트하지만, 선택적으로 사용 가능합니다. 이 예제에서는 기본 구성 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
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
메모 확인 확인 정책은 모든 PR 주석이 확인되는지 여부를 확인합니다.
브랜치에 대한 주석 해결 정책을 구성하려면 주석 해결 확인을 켜기로 설정하십시오. 그런 다음, 정책을 필수 또는 선택 사항으로 만들 것인지 선택합니다.
끌어오기 요청 주석 작업에 대한 자세한 내용은 끌어오기 요청 검토를 참조 하세요.
Azure DevOps CLI az repos policy comment-required 를 사용하여 주석 확인 정책을 설정하고 업데이트할 수 있습니다.
주석 확인 정책을 만들려면 az repos policy comment-required create를 사용합니다.
az repos policy comment-required create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
매개 변수
매개 변수 |
설명 |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true
필수입니다. |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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 update를 사용합니다.
az repos policy comment-required update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
매개 변수
매개 변수 |
설명 |
id , policy-id |
정책의 ID입니다.
필수입니다. |
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> 를 사용하여 기본 구독을 구성할 수 있습니다. |
예제
다음 예는 Fabrikam 리포지토리의 6
분기에서 주석 해결 정책 ID main
를 차단으로 업데이트합니다. 끌어오기 요청이 병합되기 전에 주석을 확인해야 합니다. 이 예제에서는 기본 구성 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
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
병합 형식 제한
Azure Repos에는 여러 병합 전략이 있으며 기본적으로 모든 병합 전략이 허용됩니다. PR 완료 시 병합 전략을 적용하여 일관된 브랜치 역사를 유지할 수 있습니다.
리포지토리에서 허용할 병합 형식을 제한하려면 병합 형식 제한을 On으로 설정합니다.
-
기본 병합(빠른 전달 없음)은 타겟과 원본 분기를 부모로 가지는 병합 커밋을 대상으로 생성합니다.
-
Squash 병합은 소스 분기의 변경 내용을 대상 분기의 단일 커밋으로 합쳐 선형 기록을 만듭니다.
스쿼시 병합 및 브랜치 기록에 미치는 영향에 대해 자세히 알아봅니다.
-
다시 기반 및 빠른 전달 은 병합 커밋 없이 원본 커밋을 대상 분기에 재생하여 선형 기록을 만듭니다.
-
병합 커밋 을 사용하여 다시베이스하면 원본 커밋이 대상에 재생되고 병합 커밋도 생성됩니다.
Azure DevOps CLI az repos 정책 병합 전략을 사용하여 병합 전략 정책을 설정하고 업데이트할 수 있습니다.
병합 전략 정책 만들기
az repos policy merge-strategy create를 사용하여 병합 전략 정책을 만듭니 다.
az repos policy merge-strategy create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--allow-no-fast-forward {false, true}]
[--allow-rebase {false, true}]
[--allow-rebase-merge {false, true}]
[--allow-squash {false, true}]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
[--use-squash-merge {false, true}]
매개 변수
매개 변수 |
설명 |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true
필수입니다. |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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 |
스쿼시 병합. 원본 분기 커밋을 대상 분기의 단일 새 커밋으로 압축하여 선형 기록을 만듭니다. 허용되는 값: 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를 사용하여 병합 전략 정책을 업데이트합니다.
az repos policy merge-strategy update --id
[--allow-no-fast-forward {false, true}]
[--allow-rebase {false, true}]
[--allow-rebase-merge {false, true}]
[--allow-squash {false, true}]
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
[--use-squash-merge {false, true}]
매개 변수
매개 변수 |
설명 |
id , policy-id |
정책의 ID입니다.
필수입니다. |
allow-no-fast-forward |
패스트 포워드 없이 기본 병합 개발 중에 발생한 그대로 비선형 기록을 정확하게 보존합니다. 허용되는 값: 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 |
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
빌드 유효성 검사
PR을 완료하기 전에 PR 변경 내용이 성공적으로 빌드되도록 요구하는 정책을 설정할 수 있습니다.
빌드 정책은 중단을 최소화하고 테스트 결과가 성공하도록 유지합니다. 빌드 정책은 개발 분기에서 연속 통합(CI)을 사용하여 문제를 조기에 발견하는 경우에도 도움이 됩니다.
빌드 유효성 검사 정책은 새 PR이 만들어지거나 변경 내용이 분기를 대상으로 하는 기존 PR에 푸시될 때 새 빌드를 큐에 대기합니다. 빌드 정책은 빌드 결과를 평가하여 PR을 완료할 수 있는지 여부를 결정합니다.
중요
빌드 유효성 검사 정책을 지정하기 전에 빌드 파이프라인을 만듭니다. 파이프라인이 없는 경우 빌드 파이프라인 만들기를 참조하세요. 프로젝트 형식과 일치하는 빌드 유형을 선택합니다.
빌드 유효성 검사 정책을 추가하려면
+ 빌드 유효성 검사 옆에 있는 단추를 선택합니다.
빌드 정책 설정 양식을 작성합니다.
빌드 파이프라인을 선택합니다.
필요에 따라 경로 필터를 설정합니다.
분기 정책의 경로 필터에 대해 자세히 알아봅니다 .
트리거에서 자동(원본 분기가 업데이트 될 때마다) 또는 수동을 선택합니다.
정책 요구 사항에 따라 필수 또는 선택 사항을 선택합니다. 필수를 선택하는 경우 빌드가 완료되어야만 PR을 완료할 수 있습니다. 선택 사항을 선택하여 빌드 실패에 대한 알림을 제공하지만 여전히 PR이 완료되도록 허용합니다.
보호된 브랜치의 업데이트로 열려 있는 PR의 변경 사항이 중단되지 않도록 빌드 만료 기간을 설정합니다.
<분기 이름이> 업데이트되는 즉시: 이 옵션은 분기가 업데이트될 때마다 PR 빌드 정책 상태가 실패하도록 설정하고 빌드를 다시 큐에 추가합니다. 이 설정을 사용하면 보호된 분기 변경되더라도 PR 변경 내용이 성공적으로 빌드됩니다.
이 옵션은 중요한 분기가 거의 변경되지 않은 팀에 가장 적합합니다. 바쁜 개발 분기에서 작업하는 팀은 분기가 업데이트될 때마다 빌드를 기다려야 하는 것이 번거로울 수 있습니다.
< 후 >n<시간 이내에 <분기 이름이 업데이트된 경우: 전달된 빌드가 입력한 임계값보다 오래된 경우 보호된 분기가 업데이트되면 이 옵션은 현재 정책 상태를 만료시킵니다. 이 옵션은 보호된 분기 업데이트할 때 항상 또는 전혀 빌드가 필요하지 않은 경우의 절충안입니다. 이 옵션을 선택하면 보호된 분기 자주 업데이트하는 경우 빌드 수가 줄어듭니다.
Never: 보호된 분기 업데이트해도 정책 상태가 변경되지 않습니다. 이 값은 빌드 수를 줄이지만 최근에 업데이트되지 않은 PR을 완료할 때 문제가 발생할 수 있습니다.
이 빌드 정책의 선택적 표시 이름을 입력합니다. 이 이름은 분기 정책 페이지의 정책을 식별합니다. 표시 이름을 지정하지 않으면 정책은 빌드 파이프라인 이름을 사용합니다.
저장을 선택합니다.
PR 소유자가 빌드에 성공한 변경 내용을 푸시하면 정책 상태가 업데이트됩니다.
<브랜치 이름>이 업데이트될 때 즉시 또는 n<시간 후에 >브랜치 이름<이 업데이트된 경우의 빌드 정책이 있는 경우, 보호된 분기가 업데이트되면 이전 빌드가 더 이상 유효하지 않은 경우 정책 상태가 업데이트됩니다.
Azure DevOps CLI az repos 정책 빌드를 사용하여 빌드 유효성 검사 정책을 설정하고 업데이트할 수 있습니다.
빌드 유효성 검사 정책 만들기
az repos policy build create를 사용하여 빌드 유효성 검사 정책을 만듭니 다.
az repos policy build create --blocking {false, true}
--branch
--build-definition-id
--display-name
--enabled {false, true}
--manual-queue-only {false, true}
--queue-on-source-update-only {false, true}
--repository-id
--valid-duration
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--path-filter]
[--project]
[--subscription]
매개 변수
매개 변수 |
설명 |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true
필수입니다. |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--repository-id 매개 변수는 분기 필터를 사용하는 데 필요합니다. 예: --branch main
필수입니다. |
build-definition-id |
빌드 정의 ID입니다.
필수입니다. |
display-name |
이 빌드 정책의 이름을 표시하여 정책을 식별합니다. 예: Manual queue policy
필수입니다. |
enabled |
정책을 사용하도록 설정합니다. 허용되는 값: false , . true
필수입니다. |
manual-queue-only |
빌드를 수동으로 큐에 넣는 것만 허용할지 여부입니다. 허용되는 값: false , . true
필수입니다. |
queue-on-source-update-only |
원본이 업데이트되는 경우에만 빌드를 큐에 추가할지 여부입니다. 허용되는 값: false , . true
필수입니다. |
repository-id |
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 입니다.
필수입니다. |
valid-duration |
정책 유효 기간(분)입니다.
참고:valid-duration 는 0년에서 1년 사이여야 하며, --queue-on-source-update-only 가 false 일 때는 0이어야 합니다.
필수입니다. |
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를 사용하여 빌드 유효성 검사 정책을 업데이트합니다.
az repos policy build update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--build-definition-id]
[--detect {false, true}]
[--display-name]
[--enabled {false, true}]
[--manual-queue-only {false, true}]
[--org]
[--path-filter]
[--project]
[--queue-on-source-update-only {false, true}]
[--repository-id]
[--subscription]
[--valid-duration]
매개 변수
매개 변수 |
설명 |
id , policy-id |
정책의 ID입니다.
필수입니다. |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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 구성을 통해 선택되는 경우 필수 입니다. |
queue-on-source-update-only |
원본이 업데이트되는 경우에만 빌드를 큐에 추가할지 여부입니다. 허용되는 값: false , . true |
repository-id |
정확히 일치하여 결과를 필터링하는 리포지토리의 ID입니다. 예들 들어 --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 입니다. |
subscription |
구독의 이름 또는 ID입니다.
az account set -s <NAME_OR_ID> 를 사용하여 기본 구독을 구성할 수 있습니다. |
valid-duration |
정책 유효 기간(분)입니다. |
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
상태 검사
외부 서비스는 PR 상태 API 를 사용하여 PR에 자세한 상태를 게시할 수 있습니다. 추가 서비스에 대한 분기 정책을 사용하면 해당 외부 서비스가 PR 워크플로에 참여하고 정책 요구 사항을 설정할 수 있습니다.
이 정책 구성에 대한 지침은 외부 서비스에 대한 분기 정책 구성을 참조하세요.
코드 검토자 자동 포함
검토자를 자동으로 추가하여 특정 디렉터리 및 파일의 파일을 변경하는 요청을 끌어오거나 리포지토리의 모든 끌어오기 요청에 추가할 수 있습니다.
+ 자동으로 포함된 검토자 옆에 있는 단추를 선택합니다.
새 검토자 정책 추가 화면을 채웁니다.
검토자에 사용자 및 그룹을 추가합니다.
검토자를 자동으로 추가하지만 끌어오기 요청을 완료하기 위해 승인이 필요하지 않은 경우 선택 사항을 선택합니다.
끌어오기 요청을 다음 시점까지 완료할 수 없는 경우 필수를 선택합니다.
- 검토자로 추가된 모든 개인이 변경 내용을 승인합니다.
- 검토자로 추가된 모든 그룹에서 하나 이상의 사용자가 변경 내용을 승인합니다.
- 하나의 그룹만 필요한 경우 지정한 최소 멤버 수가 변경 내용을 승인합니다.
자동으로 포함된 검토자가 필요한 파일 및 폴더를 지정합니다. 브랜치의 모든 풀 요청에 대해 검토자가 필요하도록 하려면 이 필드를 비워 두십시오.
끌어오기 요청 소유자가 이 정책을 충족하기 위해 자체 끌어오기 요청을 승인하도록 투표할 수 있는 경우 요청자가 자신의 변경 내용을 승인하도록 허용을 선택합니다.
끌어오기 요청에 표시되는 활동 피드 메시지를 지정할 수 있습니다.
저장을 선택합니다.
Azure DevOps CLI az repos policy required-reviewer 를 사용하여 필수 검토자 정책을 설정하고 업데이트할 수 있습니다.
필요한 검토자 정책 만들기
az repos policy required-reviewer create를 사용하여 필수 검토자 정책을 만듭니 다.
az repos policy required-reviewer create --blocking {false, true}
--branch
--enabled {false, true}
--message
--repository-id
--required-reviewer-ids
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--path-filter]
[--project]
[--subscription]
매개 변수
매개 변수 |
설명 |
blocking |
정책이 충족되지 않으면 차단합니다. 허용되는 값: false , . true
필수입니다. |
branch |
결과를 정확히 일치시켜 필터링하는 데 사용되는 분기 이름.
--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를 사용하여 필요한 검토자 정책을 업데이트합니다.
az repos policy required-reviewer update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--message]
[--org]
[--path-filter]
[--project]
[--repository-id]
[--required-reviewer-ids]
[--subscription]
매개 변수
매개 변수 |
설명 |
id , policy-id |
정책의 ID입니다.
필수입니다. |
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 |
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> 를 사용하여 기본 구독을 구성할 수 있습니다. |
Azure DevOps CLI 명령은 Azure DevOps Server에서 지원되지 않습니다.
분기 정책 무시
경우에 따라 정책 요구 사항을 무시해야 할 수 있습니다. 권한 무시를 사용하면 변경 내용을 분기에 직접 푸시하거나 분기 정책을 충족하지 않는 끌어오기 요청을 완료할 수 있습니다. 사용자 또는 그룹에 바이패스 권한을 부여할 수 있습니다. 바이패스 권한의 범위를 전체 프로젝트, 리포지토리 또는 단일 분기로 지정할 수 있습니다.
두 가지 사용 권한을 통해 사용자는 다른 방법으로 분기 정책을 바이패스할 수 있습니다.
끌어오기 요청을 완료할 때 정책을 우회하는 것은 끌어오기 요청 완료에만 적용됩니다. 끌어오기 요청이 정책을 충족하지 않는 경우에도 이 권한이 있는 사용자는 끌어오기 요청을 완료할 수 있습니다.
푸시할 때 정책을 우회하는 것은 로컬 리포지토리에서의 푸시와 웹에서의 편집 내용에 적용됩니다. 이 권한이 있는 사용자는 정책 요구 사항을 충족하지 않고도 변경 내용을 보호된 분기 직접 푸시할 수 있습니다.
이러한 사용 권한을 관리하는 방법에 대한 자세한 내용은 Git 권한을 참조 하세요.
중요
특히 리포지토리 및 프로젝트 수준에서 정책을 무시할 수 있는 권한을 부여할 때는 주의해야 합니다. 정책은 안전하고 규정을 준수하는 소스 코드 관리의 초석입니다.
경로 필터
여러 분기 정책은 경로 필터를 제공합니다. 경로 필터가 설정된 경우 정책은 경로 필터와 일치하는 파일에만 적용됩니다. 이 필드를 비워 두면 정책이 분기의 모든 파일에 적용됩니다.
절대 경로(/
또는 와일드카드로 시작해야 함)을 지정할 수 있으며, 와일드카드를 사용할 수 있습니다.
예:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
구분 기호로 사용하여 ;
여러 경로를 지정할 수 있습니다.
예시:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
접두사로 !
지정된 경로는 그렇지 않으면 제외됩니다.
예시:
-
/WebApp/*;!/WebApp/Tests/*
에는 /WebApp
의 모든 파일이 포함되어 있지만 /WebApp/Tests
의 파일은 제외됩니다.
-
!/WebApp/Tests/*
는 먼저 아무것도 포함되지 않으므로 파일을 지정하지 않습니다.
필터의 순서가 중요합니다. 필터는 왼쪽에서 오른쪽으로 적용됩니다.
질문 & 답변
분기 정책이 있는 분기에 직접 변경 내용을 푸시할 수 있나요?
필요한 분기 정책이 있는 분기에 변경 내용을 직접 푸시하려면 분기 정책을 바이패스할 수 있는 권한이 있어야 합니다. 이 분기의 변경은 끌어오기 요청을 통해서만 할 수 있습니다. 필요한 분기 정책이 없는 경우 선택적 분기 정책이 있는 분기에 직접 변경 내용을 푸시할 수 있습니다.
자동 완성이란?
분기 정책이 구성된 분기로 요청을 끌어오면 자동 완성 설정 단추가 있습니다. 모든 정책을 처리한 후 끌어오기 요청을 자동으로 완료하려면 이 옵션을 선택합니다. 자동 완성은 변경 내용에 문제가 없을 때 유용합니다.
브랜치 정책 조건은 언제 확인되나요?
끌어오기 요청 소유자가 변경 내용을 푸시하고 검토자가 투표할 때 분기 정책은 서버에서 다시 평가됩니다. 정책이 빌드를 트리거하는 경우 빌드 상태가 빌드가 완료될 때까지 대기 상태로 설정됩니다.
분기 정책에서 XAML 빌드 정의를 사용할 수 있나요?
아니요, 분기 정책에서는 XAML 빌드 정의를 사용할 수 없습니다.
필요한 코드 검토자에 사용할 수 있는 와일드카드 문자는 무엇인가요?
단일 별표*
는 임의의 수의 문자와 일치하며, 슬래시/
와 백슬래시\
를 포함할 수 있습니다. 물음표는 ?
모든 단일 문자와 일치합니다.
예:
-
*.sql
는 .sql 확장자를 가진 모든 파일을 선택합니다.
-
/ConsoleApplication/*
는 ConsoleApplication이라는 폴더 아래의 모든 파일과 일치합니다.
-
/.gitattributes
는 리포지토리의 루트에 있는 .gitattributes* 파일과 일치합니다.
-
*/.gitignore
는 리포지토리의 모든 .gitignore 파일과 일치합니다.
필요한 코드 검토자 경로는 대/소문자를 구분합니까?
아니요, 브랜치 정책은 대/소문자를 구분하지 않습니다.
그룹에 사용자를 추가한 다음 그룹을 검토자로 추가할 수 있습니다. 그러면 그룹의 모든 구성원이 정책 요구 사항을 충족하도록 승인할 수 있습니다.
바이패스 정책 권한이 있습니다. 끌어오기 요청 상태에서 정책 오류가 계속 표시되는 이유는 무엇인가요?
구성된 정책은 항상 끌어오기 요청 변경에 대해 평가됩니다. 바이패스 정책 권한이 있는 사용자의 경우 보고된 정책 상태는 권고에만 해당합니다. 바이패스 권한이 있는 사용자가 승인하면 실패 상태가 끌어오기 요청 완료를 차단하지 않습니다.
"요청자가 자신의 변경 내용을 승인하도록 허용이 설정"될 때 내 끌어오기 요청을 완료할 수 없는 이유는 무엇인가요?
최소 검토자 요구 사항 정책 및 자동 포함 검토자 정책에는 요청자가 자신의 변경 사항을 승인할 수 있도록 허용하는 옵션이 있습니다. 각 정책에서 설정은 해당 정책에만 적용됩니다. 이 설정은 다른 정책에 영향을 주지 않습니다.
예를 들어 끌어오기 요청에는 다음 정책이 설정됩니다.
-
최소 검토자 수를 요구하려면 검토자가 하나 이상 필요합니다.
-
자동으로 포함된 검토자는 귀하 또는 귀하가 속한 팀을 검토자로 지정해야 합니다.
-
자동으로 포함된 검토자는요청자가 자신의 변경 내용을 승인할 수 있도록 허용합니다.
-
검토자의 최소 인원 수 요구 기능에는 요청자가 자신의 변경을 승인할 수 있도록 허용 기능이 활성화되어 있지 않습니다.
이 경우 귀하의 승인이 자동으로 포함된 검토자 요구 사항을 충족하지만, 최소 검토자 수 요구 사항을 만족시키지 못하므로 끌어오기 요청을 완료할 수 없습니다.
다른 정책, 예를 들어 가장 최근의 푸셔가 자신의 변경을 승인하는 것을 금지하는 정책이 있을 수 있으므로, 요청자가 자신의 변경을 승인하도록 허용하도록 설정된 경우에도 자신의 변경을 승인할 수 없습니다.
경로 필터의 경로가 /
로 시작하지 않거나 와일드카드로 시작하지 않으면 어떻게 되나요?
와일드카드나 /
로 시작하지 않는 경로 필터의 경로는 효과가 없으며, 이러한 경로는 지정되지 않은 것처럼 경로 필터가 평가됩니다. 해당 경로는 시작되는 절대 파일 경로 /
와 일치할 수 없습니다.
관련된 문서