Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Zasady dotyczące gałęzi pomagają zespołom chronić swoje ważne gałęzie rozwoju. Zasady wymuszają jakość kodu zespołu i standardy zarządzania zmianami. W tym artykule opisano sposób ustawiania zasad gałęzi i zarządzania nimi. Aby zapoznać się z omówieniem wszystkich zasad i ustawień repozytorium oraz gałęzi, zobacz Ustawienia i zasady repozytorium Git.
Nie można usunąć gałęzi, w której skonfigurowano wymagane zasady; wymagane są żądania ściągnięcia (pull requesty) dla wszystkich zmian.
Wymagania wstępne
Aby ustawić zasady gałęzi, należy być członkiem grupy zabezpieczeń Administratorzy projektu lub mieć uprawnienia na poziomie repozytorium Edytuj zasady. Aby uzyskać więcej informacji, zobacz Ustawianie uprawnień repozytorium Git.
Jeśli chcesz używać poleceń az repos policy interfejsu wiersza polecenia usługi Azure DevOps do zarządzania zasadami gałęzi, wykonaj kroki opisane w artykule Rozpocznij pracę z Azure DevOps CLI.
- Aby ustawić zasady gałęzi, należy być członkiem grupy zabezpieczeń Administratorzy projektu lub mieć uprawnienia na poziomie repozytorium Edytuj zasady. Aby uzyskać więcej informacji, zobacz Ustawianie uprawnień repozytorium Git.
Aby zarządzać zasadami gałęzi, wybierz Repozytoria>Gałęzie, aby otworzyć stronę Gałęzie w portalu internetowym.
Możesz również przejść do ustawień zasad gałęzi za pomocą Ustawienia projektu>Repozytorium>Zasady>Zasady gałęzi><Nazwa gałęzi>.
Gałęzie, które mają zasady, wyświetlają ikonę zasad. Możesz wybrać ikonę, aby przejść bezpośrednio do ustawień zasad gałęzi.
Aby ustawić zasady gałęzi, znajdź gałąź, którą chcesz zarządzać. Możesz przeglądać listę lub wyszukiwać gałąź w polu Nazwa gałęzi wyszukiwania w prawym górnym rogu.
Wybierz ikonę Więcej opcji obok gałęzi, a następnie wybierz pozycję Zasady gałęzi z menu kontekstowego.
Skonfiguruj zasady na stronie ustawień gałęzi. Zapoznaj się z poniższymi sekcjami, aby uzyskać opisy i instrukcje dotyczące poszczególnych typów zasad.
Interfejs wiersza polecenia usługi Azure DevOps umożliwia listowanie lub wyświetlanie zasad dla gałęzi lub repozytorium.
Lista zasad
Aby wyświetlić listę wszystkich zasad w projekcie, użyj az repos policy list.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--repository-id]
[--subscription]
Parametry
Parametr |
Opis |
branch |
Nazwa gałęzi służąca do filtrowania wyników według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org , organization |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli ustawienie nie jest skonfigurowane jako domyślne lub pobrane przez konfigurację git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane jeśli ustawienie nie jest skonfigurowane jako domyślne lub pobrane z konfiguracji Git. |
query-examples |
Zalecany ciąg znaków JMESPath. Możesz skopiować jedno z zapytań i wkleić je po parametrze --query w podwójnym cudzysłowie, aby wyświetlić wyniki. Możesz dodać co najmniej jedno słowo kluczowe pozycyjne, aby sugestie były oparte na tych słowach kluczowych. |
repository-id |
Identyfikator repozytorium do filtrowania wyników z dokładnym dopasowaniem. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Przykład
Następujące polecenie zwraca wszystkie zasady gałęzi obowiązujące w main
gałęzi repozytorium Fabrikam o identyfikatorze d28cd374-e7f0-4b1f-ad60-f349f155d47c
. Identyfikator repozytorium można uzyskać, uruchamiając polecenie az repos list
.
W tym przykładzie użyto następującej konfiguracji domyślnej: 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
Pokaż szczegóły zasad
Aby wyświetlić szczegóły dowolnej polityki, użyj polecenia az repos policy show.
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--subscription]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator polityki.
Wymagany. |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org , organization |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane jeśli ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pomocą git config. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub odebrane poprzez konfigurację Git. |
query-examples |
Zalecany łańcuch znaków JMESPath. Możesz skopiować jedno z zapytań i wkleić je po parametrze --query w podwójnym cudzysłowie, aby wyświetlić wyniki. Możesz dodać co najmniej jedno słowo kluczowe pozycyjne, aby sugestie były oparte na tych słowach kluczowych. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Polecenia interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi Azure DevOps Server.
Wymaganie minimalnej liczby recenzentów
Przeglądy kodu są ważne dla projektów programistycznych. Aby upewnić się, że zespoły dokonują rewizji i zatwierdzają żądania ściągnięcia, możesz wymagać zatwierdzenia od minimalnej liczby recenzentów. Podstawowe zasady wymagają, aby określona liczba recenzentów zatwierdzała kod bez odrzucenia.
Aby ustawić zasady, w obszarze Zasady dla gałęzi ustaw opcję Wymagaj minimalnej liczby recenzentów na Włączone. Wprowadź wymaganą liczbę recenzentów i wybierz dowolną z następujących opcji:
Wybierz Zezwalaj osobom składającym żądania na zatwierdzenie własnych zmian, aby umożliwić twórcy PR głosowanie nad jego zatwierdzeniem. W przeciwnym razie twórca może nadal głosować Zatwierdź w PR, ale ich głos nie jest wliczany do minimalnej liczby recenzentów.
Wybierz opcję Zakazać najnowszemu autorowi zatwierdzania własnych zmian , aby wymusić segregację obowiązków. Domyślnie każda osoba z uprawnieniami do zapisu w gałęzi źródłowej może zarówno dodawać commity, jak i głosować za zatwierdzeniem żądania ściągnięcia. Wybranie tej opcji oznacza, że ostatni głos wypychacza nie jest liczony, nawet jeśli on sam zwykle może zatwierdzić własne zmiany.
Wybierz Zezwalaj na ukończenie nawet jeśli niektórzy recenzenci głosują, aby poczekać lub odrzucić, aby umożliwić ukończenie PR, nawet jeśli niektórzy recenzenci są przeciwni zatwierdzeniu. Minimalna liczba recenzentów musi nadal zatwierdzać.
- W obszarze Po wypchnięciu nowych zmian:
- Wybierz pozycję Wymagaj co najmniej jednego zatwierdzenia w ostatniej iteracji , aby wymagać co najmniej jednego głosowania za zatwierdzeniem ostatniej zmiany gałęzi źródłowej.
- Wybierz pozycję Resetuj wszystkie głosy zatwierdzenia (nie resetuje głosów do odrzucenia lub oczekiwania), aby usunąć wszystkie głosy zatwierdzenia, ale zachowaj głosy do odrzucenia lub oczekiwania, zawsze gdy zmienia się gałąź źródłowa.
- Wybierz pozycję Resetuj wszystkie głosy recenzenta kodu, aby usunąć wszystkie głosy recenzentów za każdym razem, gdy gałąź źródłowa ulegnie zmianie, w tym głosy zatwierdzające, odrzucające lub oczekujące.
- W obszarze Kiedy nowe zmiany są wypychane:
- Wybierz pozycję Wymagaj co najmniej jednego zatwierdzenia dla każdej iteracji , aby wymagać co najmniej jednego głosowania za zatwierdzeniem ostatniej zmiany gałęzi źródłowej. Zgoda użytkownika nie jest uwzględniana wobec żadnej wcześniejszej niezatwierdzonej iteracji dokonanej przez tego użytkownika. W związku z tym inne zatwierdzenie ostatniej iteracji jest wymagane przez innego użytkownika.
Wymagaj co najmniej jednego zatwierdzenia dla każdej iteracji jest dostępne w Azure DevOps Server 2022.1 i nowszych.
- Wybierz Wymagaj co najmniej jednego zatwierdzenia w ostatniej iteracji, aby wymagać co najmniej jednego głosowania za zatwierdzeniem przy ostatniej zmianie gałęzi źródłowej.
- Wybierz pozycję Resetuj wszystkie głosy zatwierdzenia (nie resetuje głosów do odrzucenia lub oczekiwania), aby usunąć wszystkie głosy zatwierdzenia, ale zachowaj głosy do odrzucenia lub oczekiwania, zawsze gdy zmienia się gałąź źródłowa.
- Wybierz Resetuj wszystkie głosy recenzentów kodu, aby usunąć wszystkie głosy recenzentów, w tym głosy zatwierdzające, odrzucające lub wstrzymujące, za każdym razem, gdy zmieni się gałąź źródłowa.
Jeśli wszystkie inne zasady zostaną spełnione, twórca może ukończyć pull request, gdy wymagana liczba recenzentów go zatwierdzi.
Można zarządzać liczbą wymaganych zatwierdzających żądań ściągnięcia za pomocą polecenia az repos policy approver-count.
Utwórz politykę liczby zatwierdzających
Aby utworzyć zasady liczby osób zatwierdzanych, użyj polecenia 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]
Parametry
Parametr |
Opis |
allow-downvotes |
Zezwalaj na głosy przeciw. Zaakceptowane wartości: false , true .
Wymagany. |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true .
Wymagany. |
branch |
Nazwa gałęzi, aby filtrować wyniki według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main .
Wymagany. |
creator-vote-counts |
Zlicz głos twórcy. Zaakceptowane wartości: false , true .
Wymagany. |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true .
Wymagany. |
minimum-approver-count |
Wymagana minimalna liczba osób zatwierdzających. Na przykład: 2 .
Wymagany. |
repository-id |
Identyfikator repozytorium do filtrowania wyników zgodnie z dokładnym dopasowaniem. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Wymagany. |
reset-on-source-push |
Resetuj głosy, gdy zmiany zostaną wprowadzone do źródła. Zaakceptowane wartości: false , true .
Wymagany. |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane , jeśli nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji git. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Przykład
W poniższym przykładzie ustawiono minimalną liczbę wymaganych zatwierdzeń dla żądań 2
ściągnięcia w main
gałęzi repozytorium Fabrikam. Zasady zezwalają na głosy przeciw, co oznacza, że prośby o ściągnięcie mogą zostać ukończone, nawet jeśli niektórzy recenzenci zagłosują przeciwko zatwierdzeniu, o ile minimalna liczba określona na zatwierdzenie zostanie osiągnięta. Wypychania do gałęzi źródłowej nie resetują głosów. Zasady umożliwiają również twórcom żądań ściągnięcia zatwierdzanie własnych żądań ściągnięcia.
W tym przykładzie użyto konfiguracji az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
domyślnej .
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
Aktualizacja zasad dotyczących liczby zatwierdzających
Aby zaktualizować zasady dotyczące liczby zatwierdzających, użyj polecenia az repos policy approver-count update.
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]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator zasad.
Wymagany. |
allow-downvotes |
Zezwalaj na głosy w dół. Zaakceptowane wartości: false , true . |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true . |
branch |
Nazwa gałęzi, aby filtrować wyniki według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
creator-vote-counts |
Policz głos twórcy. Zaakceptowane wartości: false , true . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true . |
minimum-approver-count |
Wymagana minimalna liczba osób zatwierdzających. Na przykład: 2 . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli ustawienia nie są skonfigurowane jako domyślne lub pobrane za pośrednictwem konfiguracji Git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli ustawienie nie jest skonfigurowane jako domyślne lub pobrane za pośrednictwem konfiguracji Git. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
reset-on-source-push |
Resetuj głosy, gdy zmiany zostaną przesłane do źródła. Zaakceptowane wartości: false , true . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Polecenia CLI Azure DevOps nie są obsługiwane w przypadku Azure DevOps Server.
Sprawdzanie połączonych elementów roboczych
W przypadku śledzenia zarządzania elementami roboczymi można wymagać skojarzeń między żądaniami ściągnięcia i elementami roboczymi. Łączenie elementów roboczych zapewnia więcej kontekstu zmian i zapewnia, że aktualizacje przechodzą przez proces śledzenia elementów roboczych.
Aby ustawić zasady, w sekcji Zasady gałęzi ustaw opcję Sprawdzanie powiązanych elementów roboczych na Włączone. To ustawienie wymaga, aby elementy robocze były powiązane z żądaniem pull, aby możliwe było połączenie PR. Ustaw ustawienie Opcjonalne , aby wyświetlić ostrzeżenie, gdy nie ma połączonych elementów roboczych, ale zezwalaj na ukończenie żądania ściągnięcia.
Interfejs Azure CLI az repos policy work-item-linking umożliwia tworzenie i aktualizowanie zasad łączenia elementów roboczych dla gałęzi lub repozytorium.
Tworzenie zasad łączenia elementów roboczych
Użyj polecenia az repos policy work-item-linking create, aby utworzyć polityki łączenia elementów roboczych dla repozytorium lub gałęzi.
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]
Parametry
Parametr |
Opis |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true .
Wymagany. |
branch |
Nazwa gałęzi do filtrowania wyników według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main .
Wymagany. |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true .
Wymagany. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane jeśli konfiguracja nie jest skonfigurowana jako domyślna lub zaciągnięta przez git config. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie skonfigurowano jako domyślne lub nie pobrane z konfiguracji Gita. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Aktualizowanie zasad łączenia elementów roboczych
Użyj polecenia az repos policy work-item-linking update, aby zaktualizować zasady łączenia elementów roboczych dla repozytorium lub jednej lub kilku gałęzi.
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]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator polityki.
Obowiązkowy. |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true . |
branch |
Nazwa gałęzi do filtrowania wyników według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true . |
minimum-approver-count |
Wymagana minimalna liczba osób zatwierdzających. Na przykład: 2 . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane jeśli ustawienie nie jest skonfigurowane jako domyślne lub pobrane z konfiguracji Git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub ustawione w konfiguracji Git. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Przykład
Poniższy przykład aktualizuje ID polityki 3
dla gałęzi main
repozytorium Fabrikam, aby była włączona, ale opcjonalna. W przykładzie użyto konfiguracji az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
domyślnej .
>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
Polecenia interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi Azure DevOps Server.
Polityka Sprawdzania rozwiązywania komentarzy sprawdza, czy wszystkie komentarze w pull requestach są rozwiązane.
Ustaw zasady rozwiązywania komentarzy dla twojej gałęzi, ustawiając opcję Sprawdź rozwiązanie komentarzy na Włączone. Następnie wybierz, czy zasady mają być wymagane , czy opcjonalne.
Aby uzyskać więcej informacji na temat pracy z komentarzami żądań łączenia, zobacz Przeglądanie żądań łączenia.
Aby ustawić i zaktualizować zasady rozwiązywania komentarzy, możesz użyć interfejsu wiersza polecenia Azure DevOps az repos policy comment-required.
Aby utworzyć zasady rozwiązywania komentarzy, użyj polecenia 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]
Parametry
Parametr |
Opis |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true .
Wymagany. |
branch |
Nazwa gałęzi, aby filtrować wyniki według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main .
Wymagany. |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true .
Wymagany. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Wymagany. |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli ustawienie nie jest skonfigurowane jako domyślne lub pobrane z git config. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane , jeśli opcja nie jest ustawiona jako domyślna lub odbierana przez konfigurację git. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Aby zaktualizować politykę dotyczącą rozwiązywania komentarzy, użyj 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]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator polityki.
Wymagany. |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true . |
branch |
Nazwa gałęzi, aby filtrować wyniki według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub pobrane przez git config. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest ustawione jako domyślne lub nie pobrano przez konfigurację git. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Przykład
Poniższy przykład aktualizuje identyfikator 6
zasad rozwiązywania komentarzy w main
gałęzi repozytorium Fabrikam, aby blokować. Aby można było scalić żądania ściągnięcia, należy rozwiązać komentarze. W tym przykładzie użyto konfiguracji az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
domyślnej .
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
Polecenia CLI dla usługi Azure DevOps nie są obsługiwane w Azure DevOps Server.
Ogranicz typy scalania
Usługa Azure Repos ma kilka strategii scalania, a domyślnie wszystkie z nich są dozwolone. Można zachować spójną historię gałęzi, wymuszając strategię scalania przy realizacji żądań ściągnięcia.
Ustaw Ogranicz typy scalania na Włączone, aby ograniczyć dozwolone typy scalania w repozytorium.
-
Scalanie podstawowe (bez szybkiego przekazywania) tworzy zatwierdzenie scalania w gałęzi docelowej, którego rodzicami są gałęzie docelowa i źródłowa.
-
Scalanie typu squash tworzy historię liniową z pojedynczym zatwierdzeniem w gałęzi docelowej ze zmianami z gałęzi źródłowej.
Dowiedz się więcej o scalaniu squasha i wpływie na historię gałęzi.
-
Rebase i fast-forward tworzy historię liniową przez ponowne odtwarzanie zatwierdzeń źródłowych w gałęzi docelowej bez zatwierdzenia scalania.
-
Zrebazuj za pomocą zatwierdzenia scalania powtarza zatwierdzenia źródłowe na gałęzi docelowej, a także tworzy zatwierdzenie scalania.
Do ustawiania i aktualizowania zasad strategii scalania można użyć interfejsu wiersza polecenia Azure DevOps az repos policy merge-strategy.
Tworzenie zasad strategii scalania
Użyj polecenia az repos policy merge-strategy create, aby utworzyć politykę strategii scalania.
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}]
Parametry
Parametr |
Opis |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true .
Wymagany. |
branch |
Nazwa gałęzi do filtrowania wyników według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main .
Wymagany. |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true .
Wymagany. |
repository-id |
Identyfikator repozytorium do filtrowania wyników poprzez dokładne dopasowanie. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Wymagany. |
allow-no-fast-forward |
Podstawowe scalanie bez przeskoku. Zachowuje historię nieliniową dokładnie tak, jak to miało miejsce podczas opracowywania. Zaakceptowane wartości: false , true . |
allow-rebase |
Rebase i przesunięcie do przodu. Tworzy historię liniową przez przenoszenie zatwierdzeń gałęzi źródłowej na gałąź docelową bez zatwierdzenia scalania. Zaakceptowane wartości: false , true . |
allow-rebase-merge |
Zmień bazę z zatwierdzeniem scalania. Tworzy historię półliniową przez odtworzenie zatwierdzeń gałęzi źródłowej na gałęzi docelowej, a następnie utworzenie zatwierdzenia scalania. Zaakceptowane wartości: false , true . |
allow-squash |
Scalanie z wypełnieniem. Tworzy liniową historię, kondensując zatwierdzenia z gałęzi źródłowej do jednego nowego zatwierdzenia w gałęzi docelowej. Zaakceptowane wartości: false , true . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub pozyskane za pośrednictwem git config. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane jeśli nie jest ustawione jako domyślne lub pobrane z konfiguracji Git. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
use-squash-merge |
Zawsze scalaj metodą squash merge. Ta opcja nie jest dostępna dla innych typów scalania. Zaakceptowane wartości: false , true .
Uwaga: use-squash-merge jest przestarzała i zostanie usunięta w przyszłej wersji. Użycie w zamian parametru --allow-squash . |
Przykład
W poniższym przykładzie ustawiono wymaganą strategię scalania dla pull requestów w main
gałęzi repozytorium Fabrikam, aby umożliwić scalanie typu squash. W tym przykładzie użyto konfiguracji az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
domyślnej .
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
Aktualizowanie zasad strategii scalania
Użyj polecenia az repos policy merge-strategy update, aby zaktualizować zasady strategii scalania.
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}]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator zasad.
Wymagany. |
allow-no-fast-forward |
Podstawowe scalanie bez szybkiego przesuwania do przodu. Zachowuje historię nieliniową dokładnie tak, jak to miało miejsce podczas opracowywania. Zaakceptowane wartości: false , true . |
allow-rebase |
Rebase i szybkie przesunięcie do przodu. Tworzy historię liniową przez odtworzenie zatwierdzeń gałęzi źródłowej na obiekcie docelowym bez zatwierdzenia scalania. Zaakceptowane wartości: false , true . |
allow-rebase-merge |
Zmień bazę z zatwierdzeniem scalania. Tworzy historię półliniową przez odtworzenie zatwierdzeń gałęzi źródłowej na obiekcie docelowym, a następnie utworzenie zatwierdzenia scalania. Zaakceptowane wartości: false , true . |
allow-squash |
Scalanie squasha. Tworzy historię liniową przez skondensowanie zatwierdzeń gałęzi źródłowej do jednego nowego zatwierdzenia w gałęzi docelowej. Zaakceptowane wartości: false , true . |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true . |
branch |
Nazwa gałęzi do filtrowania wyników według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji Git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub pobrane za pośrednictwem konfiguracji usługi Git. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
use-squash-merge |
Czy zawsze stosować squash merge? Ta opcja nie działa w przypadku innych typów scalania. Zaakceptowane wartości: false , true . |
Polecenia CLI usługi Azure DevOps nie są obsługiwane w przypadku Azure DevOps Server.
Walidacja kompilacji
Można ustawić zasady, które wymagają pomyślnego zbudowania zmian w żądaniu pull request przed jego zakończeniem.
Tworzenie zasad zmniejsza przerwy i pozwala zachować wyniki testów. Tworzenie zasad pomaga nawet wtedy, gdy używasz ciągłej integracji (CI) w gałęziach programowania w celu wczesnego wychwycenia problemów.
Zasady weryfikacji kompilacji kolejkują nową kompilację po utworzeniu nowego żądania ściągnięcia lub wypchnięciu zmian do istniejącego żądania ściągnięcia przeznaczonego dla gałęzi. Polityka budowania ocenia wyniki kompilacji, aby określić, czy pull request może zostać ukończony.
Ważne
Przed określeniem zasad weryfikacji kompilacji należy utworzyć potok kompilacji. Jeśli nie masz potoku, zobacz Tworzenie potoku kompilacji. Wybierz typ kompilacji pasujący do typu projektu.
Aby dodać politykę walidacji kompilacji
+ Wybierz przycisk obok pozycji Weryfikacja kompilacji.
Wypełnij formularz Polityka kompilacji:
Wybierz potok kompilacji.
Opcjonalnie ustaw filtr Ścieżka.
Dowiedz się więcej o filtrach ścieżek w zasadach gałęzi.
W obszarze Wyzwalacz wybierz pozycję Automatyczne (za każdym razem, gdy gałąź źródłowa jest aktualizowana) lub Ręcznie.
W obszarze Wymaganie dotyczące zasad wybierz pozycję Wymagane lub Opcjonalne. Jeśli wybierzesz pozycję Wymagane, kompilacje muszą zostać ukończone pomyślnie, aby ukończyć żądania ściągnięcia. Wybierz opcję Opcjonalne , aby podać powiadomienie o niepowodzeniu kompilacji, ale nadal zezwalaj na ukończenie żądania ściągnięcia.
Ustaw wygaśnięcie buildu, aby upewnić się, że aktualizacje chronionej gałęzi nie powodują problemów ze zmianami w otwartych żądaniach ściągnięcia.
Natychmiast po zaktualizowaniu nazwy gałęzi: ta opcja ustawia status zasad kompilacji PR jako niepowodzenie za każdym razem, gdy gałąź jest zaktualizowana, i ustawia kompilację ponownie w kolejce. To ustawienie zapewnia, że zmiany PR budują się pomyślnie, nawet jeśli chroniona gałąź ulegnie zmianie.
Ta opcja jest najlepsza dla zespołów, których ważne gałęzie mają niewiele zmian. Zespoły pracujące w intensywnie rozwijanych gałęziach mogą uznać za zakłócające oczekiwanie na kompilację za każdym razem, gdy gałąź zostaje zaktualizowana.
Po <n> godzinach, jeśli <nazwa> gałęzi została zaktualizowana: ta opcja wygasa bieżący stan zasad, gdy chroniona gałąź zostanie zaktualizowana, jeśli przekazywana kompilacja jest starsza niż wprowadzony próg. Ta opcja jest kompromisem między zawsze a nigdy nie wymagającą kompilacji, gdy chroniona gałąź zostaje zaktualizowana. Ten wybór zmniejsza liczbę kompilacji, gdy chroniona gałąź ma częste aktualizacje.
Nigdy: aktualizacje gałęzi chronionej nie zmieniają stanu zasad. Ta wartość zmniejsza liczbę kompilacji, ale może powodować problemy podczas zakończenia pull requestów, które nie zostały ostatnio zaktualizowane.
Wprowadź opcjonalną nazwę wyświetlania dla zasad kompilacji. Ta nazwa identyfikuje zasady dotyczące gałęzi na stronie Zasady gałęzi. Jeśli nie określisz nazwy wyświetlanej, polityka używa nazwy potoku kompilacji.
Wybierz pozycję Zapisz.
Gdy autor żądania zatwierdzenia wypchnie zmiany pomyślnie zbudowane, stan polityki zostaje zaktualizowany.
Jeśli masz Natychmiast, gdy <nazwa> gałęzi jest aktualizowana lub po <n> godzinach, jeśli <nazwa> gałęzi została zaktualizowana, stan zasad budowania zostanie zaktualizowany w momencie aktualizacji chronionej gałęzi, o ile poprzednia kompilacja nie jest już prawidłowa.
Aby ustawić i zaktualizować zasady weryfikacji kompilacji, możesz użyć interfejsu wiersza polecenia usługi Azure DevOps az repos policy build
Tworzenie zasad weryfikacji kompilacji
Użyj polecenia az repos policy build create , aby utworzyć zasady weryfikacji kompilacji.
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]
Parametry
Parametr |
Opis |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true .
Wymagany. |
branch |
Nazwa gałęzi do filtrowania wyników na podstawie dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main .
Wymagany. |
build-definition-id |
Identyfikator definicji kompilacji.
Wymagany. |
display-name |
Nazwa wyświetlana dla tej polityki kompilacji w celu zidentyfikowania polityki. Na przykład: Manual queue policy .
Wymagany. |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true .
Wymagany. |
manual-queue-only |
Czy zezwalać tylko na ręczną kolejkę kompilacji. Zaakceptowane wartości: false , true .
Wymagany. |
queue-on-source-update-only |
Czy kolejkować kompilacje tylko wtedy, gdy aktualizacje źródła. Zaakceptowane wartości: false , true .
Wymagany. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Wymagany. |
valid-duration |
Czas trwania ważności zasad w minutach.
Uwaga:valid-duration musi mieścić się w zakresie od zera do jednego roku i musi wynosić zero, gdy --queue-on-source-update-only ma wartość false .
Wymagany. |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji Git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
path-filter |
Ścieżka, na której mają zostać zastosowane zasady. Obsługuje ścieżki bezwzględne, symbole wieloznaczne i wiele ścieżek rozdzielonych znakami ; . Przykłady: /WebApp/Models/Data.cs , /WebApp/* lub *.cs, /WebApp/Models/Data.cs;ClientApp/Models/Data.cs . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub uzyskane za pośrednictwem konfiguracji Git. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Przykład
W poniższym przykładzie ustawiono wymagane zasady kompilacji dla pull requestów w gałęzi main
repozytorium Fabrikam. Zasady wymagają pomyślnej kompilacji identyfikatora definicji kompilacji 1
, i umożliwiają tylko ręczne kolejkowanie kompilacji. W tym przykładzie użyto konfiguracji az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
domyślnej .
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
Aktualizowanie zasad weryfikacji kompilacji
Użyj az repos policy build update, aby zaktualizować politykę walidacji kompilacji.
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]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator polityki.
Wymagany. |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true . |
branch |
Nazwa gałęzi do filtrowania wyników na podstawie dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
build-definition-id |
Identyfikator definicji kompilacji. |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
display-name |
Nazwa wyświetlana dla tej polityki kompilacji w celu zidentyfikowania polityki. Na przykład: Manual queue policy . |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true . |
manual-queue-only |
Czy zezwalać na kolejkę kompilacji tylko ręczną. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane, jeśli nie skonfigurowano jako domyślne lub odebrane za pomocą konfiguracji git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
path-filter |
Ścieżki, na których polityka jest stosowana. Obsługuje ścieżki bezwzględne, symbole wieloznaczne i wiele ścieżek rozdzielonych znakami ; . Przykłady: /WebApp/Models/Data.cs , /WebApp/* lub *.cs, /WebApp/Models/Data.cs;ClientApp/Models/Data.cs . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane , jeśli ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji usługi Git. |
queue-on-source-update-only |
Czy kolejkować kompilacje tylko wtedy, gdy aktualizacje są dostępne. Zaakceptowane wartości: false , true . |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
valid-duration |
Czas trwania ważności zasad w minutach. |
Polecenia CLI usługi Azure DevOps nie są obsługiwane w przypadku Azure DevOps Server.
Sprawdzanie stanu
Usługi zewnętrzne mogą używać API stanu PR do publikowania szczegółowych informacji o stanie twoich PR. Polityka gałęzi dla dodatkowych usług umożliwia tym usługom zewnętrznym uczestnictwo w przepływie pracy pull request i ustanowienie wymagań dotyczących zasad.
Aby uzyskać instrukcje dotyczące konfigurowania tych zasad, zobacz Konfigurowanie zasad gałęzi dla usługi zewnętrznej.
Automatyczne dołączanie recenzentów kodu
Możesz automatycznie dodawać recenzentów do pull requestów, które zmieniają pliki w określonych katalogach i plikach, lub do wszystkich pull requestów w repozytorium.
Wybierz przycisk obok Automatycznie uwzględnionych recenzentów.
Wypełnij ekran "Dodaj nową zasadę dla recenzenta".
Dodaj osoby i grupy do recenzentów.
Wybierz Opcjonalne, jeśli chcesz automatycznie dodać recenzentów, ale zatwierdzenie nie jest wymagane do ukończenia pull requesta.
Możesz też wybrać pozycję Wymagane , jeśli żądania ściągnięcia nie zostaną ukończone do czasu:
- Każda osoba dodana jako recenzent zatwierdza zmiany.
- Co najmniej jedna osoba w każdej grupie dodanej jako recenzent zatwierdza zmiany.
- Jeśli wymagana jest tylko jedna grupa, minimalna liczba członków, którą określisz, zatwierdza zmiany.
Określ pliki i foldery, które wymagają automatycznie uwzględnionych recenzentów. Pozostawienie tego pola pustym, aby zażądać recenzentów dla wszystkich pull requestów w gałęzi.
Wybierz opcję Zezwalaj żądającym zatwierdzanie ich własnych zmian, jeśli autorzy pull requestów mogą głosować, aby zatwierdzić swoje własne pull requesty, aby spełnić te wymagania.
Możesz określić komunikat kanału informacyjnego aktywności wyświetlany w żądaniu ściągnięcia.
Wybierz pozycję Zapisz.
Aby ustawić i zaktualizować zasady dotyczące wymaganego recenzenta, możesz użyć interfejsu wiersza polecenia Azure DevOps CLI az repos policy required-reviewer.
Tworzenie wymaganych zasad recenzenta
Użyj az repos policy required-reviewer create, aby utworzyć politykę wymaganego recenzenta.
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]
Parametry
Parametr |
Opis |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true .
Wymagany. |
branch |
Nazwa gałęzi do filtrowania wyników według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main .
Wymagany. |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true .
Wymagany. |
message |
Komunikat kanału informacyjnego aktywności wyświetlany w żądaniu ściągnięcia.
Wymagane. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Wymagany. |
required-reviewer-ids |
Adresy e-mail recenzenta rozdzielone przez ; . Na przykład: john@contoso.com;alice@contoso.com . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane jeśli ustawienie nie jest skonfigurowane jako domyślne lub pobrane za pośrednictwem konfiguracji git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
path-filter |
Ścieżki, na których należy zastosować politykę. Obsługuje ścieżki bezwzględne, symbole wieloznaczne i wiele ścieżek rozdzielonych znakami ; . Przykłady: /WebApp/Models/Data.cs , /WebApp/* lub *.cs, /WebApp/Models/Data.cs;ClientApp/Models/Data.cs . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest ustawione jako domyślne lub pobrane z konfiguracji git. |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Przykład
W poniższym przykładzie Jamal Hartnett jest ustawiony jako wymagany recenzent pull requestów w main
gałęzi repozytorium Fabrikam. W tym przykładzie użyto konfiguracji az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
domyślnej .
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
Aktualizowanie wymaganych zasad recenzenta
Użyj az repos policy required-reviewer update, aby zaktualizować politykę obowiązkowego recenzenta.
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]
Parametry
Parametr |
Opis |
id , policy-id |
Identyfikator polityki.
Wymagany. |
blocking |
Blokuj, jeśli zasady nie są spełnione. Zaakceptowane wartości: false , true . |
branch |
Nazwa gałęzi, aby filtrować wyniki według dokładnego dopasowania. Parametr --repository-id jest wymagany do używania filtru gałęzi. Na przykład: --branch main . |
branch-match-type |
Użyj argumentu branch , aby zastosować zasady. Jeśli wartość to exact , zasady są stosowane w gałęzi, która dokładnie pasuje do argumentu --branch . Jeśli wartość to prefix , zasady mają zastosowanie we wszystkich folderach gałęzi, które pasują do prefiksu w argumencie --branch . Zaakceptowane wartości: exact , prefix . Wartość domyślna: exact . |
detect |
Automatycznie wykrywaj organizację. Zaakceptowane wartości: false , true . |
enabled |
Włącz zasady. Zaakceptowane wartości: false , true . |
message |
Komunikat kanału aktywności wyświetlany w żądaniu pobrania. |
org |
Adres URL organizacji usługi Azure DevOps. Domyślną organizację można skonfigurować przy użyciu polecenia az devops configure -d organization=<ORG_URL> .
Wymagane , jeśli ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji usługi Git. Przykład: https://dev.azure.com/MyOrganizationName/ . |
path-filter |
Ścieżki, na których mają zostać zastosowane zasady. Obsługuje ścieżki bezwzględne, symbole wieloznaczne i wiele ścieżek rozdzielonych znakami ; . Przykłady: /WebApp/Models/Data.cs , /WebApp/* lub *.cs, /WebApp/Models/Data.cs;ClientApp/Models/Data.cs . |
project , p |
Nazwa lub identyfikator projektu. Projekt domyślny można skonfigurować przy użyciu polecenia az devops configure -d project=<NAME_OR_ID> .
Wymagane, jeśli nie jest skonfigurowane jako domyślne lub uzyskane z konfiguracji git. |
repository-id |
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
required-reviewer-ids |
Adresy e-mail recenzenta rozdzielone przez ; . Na przykład: john@contoso.com;alice@contoso.com . |
subscription |
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID> . |
Polecenia interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi Azure DevOps Server.
Pomijanie zasad gałęzi
W niektórych przypadkach może być konieczne obejście wymagań dotyczących zasad. Pomijanie uprawnień umożliwia wypychanie zmian do gałęzi bezpośrednio lub wykonywanie żądań ściągnięcia, które nie spełniają zasad gałęzi. Możesz przyznać uprawnienia do omijania ograniczeń użytkownikowi lub grupie. Można określić zakres uprawnień do pomijania dla całego projektu, repozytorium lub pojedynczej gałęzi.
Dwa uprawnienia umożliwiają użytkownikom obejście zasad gałęzi na różne sposoby:
Pomijanie zasad przy ukończeniu żądań scalenia ma zastosowanie tylko do ukończenia żądania scalenia. Użytkownicy z tym uprawnieniem mogą wykonywać żądania ściągnięcia, nawet jeśli żądania ściągnięcia nie spełniają zasad.
Omijanie zasad podczas przesyłania dotyczy przesyłania z repozytoriów lokalnych i edycji w internecie. Użytkownicy z tym uprawnieniem mogą wypychać zmiany bezpośrednio do chronionych gałęzi bez spełnienia wymagań polityki.
Aby uzyskać więcej informacji na temat zarządzania tymi uprawnieniami, zobacz Uprawnienia usługi Git.
Ważne
Należy zachować ostrożność podczas udzielania możliwości pomijania zasad, szczególnie na poziomie repozytorium i projektu. Zasady są podstawą bezpiecznego i zgodnego zarządzania kodem źródłowym.
Filtry ścieżek
Kilka polityk gałęzi oferuje filtry ścieżek. Jeśli filtr ścieżki jest ustawiony, zasady mają zastosowanie tylko do plików, które są zgodne z filtrem ścieżki. Pozostawienie tego pola pustego oznacza, że zasady mają zastosowanie do wszystkich plików w gałęzi.
Można określić ścieżki bezwzględne (ścieżka musi rozpoczynać się od /
lub symbolu wieloznacznego) i symbole wieloznaczne.
Przykłady:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Można określić wiele ścieżek przy użyciu ;
jako separatora.
Przykład:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Ścieżki poprzedzone prefiksem !
są wykluczane, w przeciwnym razie zostałyby uwzględnione.
Przykład:
-
/WebApp/*;!/WebApp/Tests/*
zawiera wszystkie pliki z wyjątkiem plików w /WebApp
/WebApp/Tests
-
!/WebApp/Tests/*
określa brak plików, ponieważ nic nie jest uwzględniane jako pierwsze
Kolejność filtrów jest znacząca. Filtry są stosowane od lewej do prawej.
Pytania i odpowiedzi
Czy mogę wypchnąć zmiany bezpośrednio do gałęzi, które mają polityki gałęzi?
Nie można wypychać zmian bezpośrednio do gałęzi z wymaganymi zasadami, chyba że masz uprawnienia do pomijania zasad gałęzi. Zmiany w tych gałęziach można wprowadzać tylko za pośrednictwem pull requestów. Możesz wypchnąć zmiany bezpośrednio do gałęzi, które mają opcjonalne zasady dla gałęzi, jeśli nie mają wymaganych zasad dla gałęzi.
Co to jest autouzupełnianie?
Wnioski o dodanie zmian do gałęzi z skonfigurowanymi zasadami mają przycisk Włącz autouzupełnianie. Wybierz tę opcję, aby automatycznie ukończyć pull request po spełnieniu wszystkich zasad. Autouzupełnianie jest przydatne, gdy nie oczekujesz żadnych problemów ze zmianami.
Kiedy są sprawdzane warunki polityki gałęzi?
Zasady gałęzi są ponownie oceniane na serwerze, gdy właściciele pull request wprowadzają zmiany i kiedy recenzenci głosują. Jeśli zasady wyzwalają kompilację, stan kompilacji zostaje ustawiony na "oczekiwanie", aż kompilacja się zakończy.
Czy można używać definicji kompilacji XAML w zasadach gałęzi?
Nie, nie można używać definicji kompilacji XAML w politykach gałęzi.
Jakich symboli wieloznacznych można używać dla wymaganych recenzentów kodu?
Pojedynczy znak gwiazdki *
odpowiada dowolnej liczbie znaków, w tym zarówno ukośnikom /
, jak i ukośnikom wstecznym \
. Znaki ?
zapytania pasują do dowolnego pojedynczego znaku.
Przykłady:
-
*.sql
pasuje do wszystkich plików z rozszerzeniem .sql .
-
/ConsoleApplication/*
pasuje do wszystkich plików w folderze o nazwie ConsoleApplication.
-
/.gitattributes
odpowiada plikowi .gitattributes* w katalogu głównym tego repozytorium.
-
*/.gitignore
pasuje do dowolnego pliku .gitignore w repozytorium.
Czy w wymaganych ścieżkach recenzenta kodu uwzględniana jest wielkość liter?
Nie, zasady gałęzi nie są uwzględniane wielkości liter.
Możesz dodać użytkowników do grupy, a następnie dodać grupę jako recenzenta. Każdy członek grupy może następnie zatwierdzić spełnienie wymagań polityki.
Mam uprawnienia do pomijania zasad. Dlaczego nadal widzę niepowodzenia zasad w statusie pull request?
Skonfigurowane zasady są zawsze sprawdzane pod kątem zmian w pull requestach. W przypadku użytkowników z uprawnieniami pomijania zasad zgłaszany stan zasad jest tylko poradą. Jeśli użytkownik posiadający uprawnienia obejścia zatwierdzi, status niepowodzenia nie blokuje ukończenia pull requestu.
Dlaczego nie mogę ukończyć własnych żądań pobrania, gdy opcja "Zezwalaj żądaniom na zatwierdzanie własnych zmian" jest ustawiona?
Zarówno zasada Wymagania minimalnej liczby recenzentów, jak i zasada Automatycznego dołączania recenzentów mają opcję Zezwól wnioskodawcom na zatwierdzanie własnych zmian. W każdej zasadzie ustawienie dotyczy tylko tej zasady. To ustawienie nie ma wpływu na inne zasady.
Na przykład żądanie ściągnięcia ma następujące zasady:
-
Wymagaj minimalnej liczby recenzentów wymaga co najmniej jednego recenzenta.
- Automatycznie dodani recenzenci wymagają Ciebie lub zespołu, w którym jesteś, jako recenzenta.
-
Automatycznie dołączeni recenzenci mają włączoną opcję Zezwalaj wnioskodawcom na zatwierdzanie własnych zmian.
-
Wymagaj minimalnej liczby recenzentów nie ma włączonej opcji Zezwalaj żądaniom na zatwierdzanie własnych zmian .
W takim przypadku twoje zatwierdzenie spełnia Automatycznie uwzględnieni recenzenci, ale nie Wymagaj minimalnej liczby recenzentów, więc nie można ukończyć pull request.
Mogą również istnieć inne zasady, takie jak Zakaz dla najnowszego wprowadzającego zatwierdzania własnych zmian, co uniemożliwia zatwierdzenie ich własnych zmian, nawet jeśli opcja Zezwalaj żądającym na zatwierdzanie własnych zmian jest ustawiona.
Co się stanie, gdy ścieżka w filtrach ścieżek nie zaczyna się od /
lub od symbolu wieloznacznego?
Ścieżka w filtrze ścieżki, która nie zaczyna się od /
lub z symbolem wieloznacznym, nie ma wpływu, a filtr ścieżki działa tak, jakby ta ścieżka nie była określona. Taka ścieżka nie może być zgodna z bezwzględną ścieżką pliku, która zaczyna się od /
.
Powiązane artykuły