Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Zasady gałęzi pomagają zespołom chronić swoje ważne gałęzie programowania. 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 z skonfigurowanymi wymaganymi zasadami i wymaga żądań ściągnięcia dla wszystkich zmian.
Wymagania wstępne
Aby ustawić zasady gałęzi, musisz być członkiem grupy zabezpieczeń Administratorzy projektu lub mieć uprawnienia do edycji zasad na poziomie repozytorium. Aby uzyskać więcej informacji, zobacz Ustawianie uprawnień repozytorium Git.
Aby ustawić zasady gałęzi, musisz być członkiem grupy zabezpieczeń Administratorzy projektu lub mieć uprawnienia do edycji zasad na poziomie repozytorium. Aby uzyskać więcej informacji, zobacz Ustawianie uprawnień repozytorium Git.
Aby zarządzać zasadami gałęzi, wybierz pozycję >Gałęzie repozytoriów, aby otworzyć stronę Gałęzie w portalu internetowym.
Możesz również przejść do ustawień zasad gałęzi za pomocą >zasad repozytorium Zasady repozytorium>Zasad>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.
Znajdź gałąź na stronie. Możesz przeglądać listę lub wyszukiwać gałąź przy użyciu pola Wyszukaj wszystkie gałęzie w prawym górnym rogu.
Wybierz przycisk ... Wybierz pozycję Zasady gałęzi z menu kontekstowego.
Konfigurowanie zasad na stronie ustawień gałęzi. Zapoznaj się z poniższymi sekcjami, aby uzyskać opisy i instrukcje dotyczące poszczególnych typów zasad.
Skonfiguruj zasady na stronie Zasady . Zapoznaj się z poniższymi sekcjami, aby zapoznać się z opisami poszczególnych typów zasad. Wybierz pozycję Zapisz zmiany , aby zastosować nową konfigurację zasad.
Interfejs wiersza polecenia usługi Azure DevOps umożliwia wyświetlanie lub wyświetlanie zasad dla gałęzi lub repozytorium.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--repository-id]
[--subscription]
Parametry
Parametr
Opis
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.
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/.
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.
query-examples
Zalecany ciąg 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 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
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
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/.
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.
query-examples
Zalecany ciąg 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 przejdą i zatwierdź żą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 gałęzi ustaw opcję Wymagaj minimalnej liczby recenzentów na wartość Włączone. Wprowadź wymaganą liczbę recenzentów i wybierz dowolną z następujących opcji:
Wybierz pozycję Zezwalaj żądaniom na zatwierdzenie własnych zmian , aby umożliwić twórcy żądania ściągnięcia głosowanie nad zatwierdzeniem. W przeciwnym razie twórca może nadal głosować Zatwierdź w żądaniu ściągnięcia, ale ich głosowanie nie jest liczone w kierunku minimalnej liczby recenzentów.
Wybierz pozycję Zakazać najnowszego wypychania, aby zatwierdzić własne zmiany , aby wymusić segregację obowiązków. Domyślnie każda osoba z uprawnieniem wypychania w gałęzi źródłowej może dodawać zatwierdzenia i głosować na zatwierdzenie żądania ściągnięcia. Wybranie tej opcji oznacza, że ostatni głos wypychacza nie jest liczone, nawet jeśli zwykle może zatwierdzić własne zmiany.
Wybierz pozycję Zezwalaj na ukończenie, nawet jeśli niektórzy recenzenci głosują, aby poczekać lub odrzucić, aby zezwolić na ukończenie żądania ściągnięcia , nawet jeśli niektórzy recenzenci głosują przeciwko 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łosów do zatwierdzenia, odrzucenia lub oczekiwania.
W obszarze Po wypchnięciu nowych zmian:
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. Zatwierdzenie użytkownika nie jest uwzględniane w żadnej poprzedniej niezatwierdzonej iteracji wypychanej 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 usłudze Azure DevOps Server 2022.1 i nowszych.
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łosów do zatwierdzenia, odrzucenia lub oczekiwania.
Jeśli osoby żądające mogą zatwierdzić własne zmiany , nie zostanie wybrany, twórca żądania ściągnięcia nadal będzie mógł głosować zatwierdź żądanie ściągnięcia, ale ich głosowanie nie jest liczone w kierunku minimalnej liczby recenzentów.
Jeśli którykolwiek recenzent odrzuci zmiany, żądanie ściągnięcia nie może zostać ukończone, chyba że wybierzesz opcję Zezwalaj na ukończenie, nawet jeśli niektórzy recenzenci zagłosują na oczekiwanie lub odrzucenie.
Możesz zresetować głosy recenzenta kodu, gdy nowe zmiany zostaną wypchnięte do gałęzi źródłowej. Wybierz pozycję Resetuj głosy recenzenta kodu w przypadku nowych zmian.
Jeśli wszystkie inne zasady są przekazywane, twórca może ukończyć żądanie ściągnięcia, gdy wymagana liczba recenzentów je zatwierdzi.
Liczbę wymaganych osób zatwierdzanych żądań ściągnięcia można zarządzać za pomocą polecenia az repos policy approver-count.
Zezwalaj na wywołania w dół. 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.
Wymagana minimalna liczba osób zatwierdzających. Na przykład: 2. 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.
reset-on-source-push
Resetuj głosy po wypchnięciu zmian 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.
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/.
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.
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 odwoływania, co oznacza, że żądania ściągnięcia mogą zakończyć się nawet wtedy, gdy niektórzy recenzenci nie zagłosują na zatwierdzenie, o ile minimalna liczba głosów zostanie zatwierdzeń. 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
Zezwalaj na wywołania 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.
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 odebrane za pośrednictwem konfiguracji usługi 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 odebrane 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.
reset-on-source-push
Resetuj głosy po wypchnięciu zmian 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 interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi 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 obszarze Zasady gałęzi ustaw pozycję Sprawdź, czy połączone elementy robocze mają wartość Włączone. To ustawienie wymaga, aby elementy robocze zostały połączone z żądaniem ściągnięcia w celu scalenia żądania ściągnięcia. 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.
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.
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.
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/.
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.
subscription
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID>.
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.
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 odebrane za pośrednictwem konfiguracji usługi 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 odebrane 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>.
Przykład
Poniższy przykład aktualizuje identyfikator 3 zasad dla main gałęzi repozytorium Fabrikam, które ma być włączone, ale opcjonalne. 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.
Sprawdzanie rozwiązywania komentarzy
Zasady sprawdzania rozwiązywania komentarzy sprawdzają, czy wszystkie komentarze żądania ściągnięcia są rozwiązywane.
Skonfiguruj zasady rozwiązywania komentarzy dla gałęzi, ustawiając opcję Sprawdź, czy chcesz rozwiązać komentarz w obszarze Włączone. Następnie wybierz, czy zasady mają być wymagane , czy opcjonalne.
Aby uzyskać więcej informacji na temat pracy z komentarzami żądania ściągnięcia, zobacz Przeglądanie żądań ściągnięcia.
Skonfiguruj zasady rozwiązywania komentarzy dla gałęzi, wybierając pozycję Sprawdź, czy chcesz rozwiązać komentarz.
Aby uzyskać więcej informacji na temat pracy z komentarzami żądania ściągnięcia, zobacz Przeglądanie żądań ściągnięcia.
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.
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.
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/.
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.
subscription
Nazwa lub identyfikator subskrypcji. Subskrypcję domyślną można skonfigurować przy użyciu polecenia az account set -s <NAME_OR_ID>.
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.
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/.
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.
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 interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi 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 na potrzeby uzupełniania żądań ściągnięcia.
Ustaw wartość Ogranicz typy scalania na Wartość Włączone , aby ograniczyć typy scalania, które mają być dozwolone w repozytorium.
Scalanie podstawowe (bez szybkiego przekazywania) tworzy zatwierdzenie scalania w obiekcie docelowym, którego elementy nadrzędne są gałęziami docelowymi i źródłowymi.
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.
Ponownie bazuj z zatwierdzeniem scalania odtwarza zatwierdzenia źródłowe na obiekcie docelowym, a także tworzy zatwierdzenie scalania.
Uwaga
Ta funkcja jest dostępna dla usługi Azure DevOps Server 2020 i nowszych wersji.
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.
Identyfikator repozytorium do filtrowania wyników według dokładnego dopasowania. Na przykład --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Wymagany.
allow-no-fast-forward
Scalanie podstawowe bez szybkiego przesyłania dalej. Zachowuje historię nieliniową dokładnie tak, jak to miało miejsce podczas opracowywania. Zaakceptowane wartości: false, true.
allow-rebase
Rebase i fast-forward. 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 w jednym nowym zatwierdzeniu 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.
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/.
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.
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 squash. 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 żądań ściągnięcia 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
Scalanie podstawowe bez szybkiego przesyłania dalej. Zachowuje historię nieliniową dokładnie tak, jak to miało miejsce podczas opracowywania. Zaakceptowane wartości: false, true.
allow-rebase
Rebase i fast-forward. 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 w jednym nowym zatwierdzeniu 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, 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.
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/.
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.
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 scalić zawsze. Ta opcja nie działa w przypadku innych typów scalania. Zaakceptowane wartości: false, true.
Polecenia interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi Azure DevOps Server.
Wymuszanie strategii scalania
Zachowaj spójną historię gałęzi, wymuszając strategię scalania po zakończeniu żądania ściągnięcia.
Wybierz pozycję Wymuś strategię scalania i wybierz opcję, aby wymagać scalania żądań ściągnięcia przy użyciu tej strategii.
Brak szybkiego scalania — ta opcja scala historię zatwierdzeń gałęzi źródłowej po zamknięciu żądania ściągnięcia i utworzeniu zatwierdzenia scalania w gałęzi docelowej.
Scalanie typu squash — ukończ wszystkie żądania ściągnięcia za pomocą scalania typu squash, tworząc jedno zatwierdzenie 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.
Walidacja kompilacji
Przed ukończeniem żądania ściągnięcia można ustawić zasady wymagające pomyślnego utworzenia zmian żądania ściągnięcia.
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. Zasady kompilacji oceniają wyniki kompilacji, aby określić, czy żądanie ściągnięcia można ukończyć.
Ważne
Przed określeniem zasad weryfikacji kompilacji musisz mieć potok kompilacji. Jeśli nie masz potoku, zobacz Tworzenie potoku kompilacji. Wybierz typ kompilacji pasujący do typu projektu.
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 kompilacji, aby upewnić się, że aktualizacje chronionej gałęzi nie przerywają zmian otwartych żądania ściągnięcia.
Natychmiast po zaktualizowaniu <nazwy> gałęzi: ta opcja ustawia stan zasad kompilacji żądania ściągnięcia na niepowodzenie za każdym razem, gdy gałąź zostanie zaktualizowana i ponownie umieści kompilację w kolejce. To ustawienie gwarantuje, że żądanie ściągnięcia zmieni się pomyślnie, nawet jeśli chroniona gałąź ulegnie zmianie.
Ta opcja jest najlepsza dla zespołów, których ważne gałęzie mają kilka zmian. Zespoły pracujące w zajętych gałęziach programowania mogą utrudniać oczekiwanie na kompilację za każdym razem, gdy gałąź zostanie 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 lub nigdy nie wymaga kompilacji, gdy chroniona gałąź zostanie zaktualizowana. Ten wybór zmniejsza liczbę kompilacji, gdy chroniona gałąź ma częste aktualizacje.
Nigdy: aktualizacje chronionej gałęzi nie zmieniają stanu zasad. Ta wartość zmniejsza liczbę kompilacji, ale może powodować problemy podczas kończenia żądania ściągnięcia, które nie zostały ostatnio zaktualizowane.
Wprowadź opcjonalną nazwę wyświetlaną dla tych zasad kompilacji. Ta nazwa identyfikuje zasady na stronie Zasady gałęzi. Jeśli nie określisz nazwy wyświetlanej, zasady używają nazwy potoku kompilacji.
Wybierz pozycję Zapisz.
Gdy właściciel żądania ściągnięcia wypchnie zmiany, które kompilacja zostanie pomyślnie skompilowanych, stan zasad zostanie zaktualizowany.
Jeśli masz wartość Natychmiast, gdy <nazwa> gałęzi jest aktualizowana lub po <n> godzinach, jeśli <nazwa> gałęzi została zaktualizowana, stan zasad zostanie zaktualizowany, gdy chroniona gałąź zostanie zaktualizowana , jeśli poprzednia kompilacja nie jest już prawidłowa.
Uwaga
Ta funkcja jest dostępna dla usługi Azure DevOps Server 2020 i nowszych wersji.
Aby ustawić i zaktualizować zasady weryfikacji kompilacji, możesz użyć interfejsu wiersza polecenia usługi Azure DevOps az repos policy build
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.
build-definition-id
Identyfikator definicji kompilacji. Wymagany.
display-name
Nazwa wyświetlana dla tych zasad kompilacji w celu zidentyfikowania zasad. Na przykład: Manual queue policy. Wymagany.
Czy zezwalać tylko na ręczną kolejkę kompilacji. Zaakceptowane wartości: false, true. Wymagany.
queue-on-source-update-only
Czy kolejkować kompilacje są kompilować tylko wtedy, gdy aktualizacje źródłowe. 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 zawierać się od zera do jednego roku i musi mieć wartość 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.
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ż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 ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji usługi 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 żądań ściągnięcia w main gałęzi repozytorium Fabrikam. Zasady wymagają pomyślnej kompilacji identyfikatora 1definicji kompilacji 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
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.
Czy zezwalać tylko na ręczną kolejkę kompilacji. 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 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 ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji usługi Git.
queue-on-source-update-only
Czy kolejkować kompilacje są kompilować tylko wtedy, gdy aktualizacje źródłowe. 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 interfejsu wiersza polecenia usługi Azure DevOps nie są obsługiwane w przypadku usługi Azure DevOps Server.
Ustaw zasady wymagające zmian w żądaniu ściągnięcia, aby pomyślnie skompilować gałąź chronioną przed ukończeniem żądania ściągnięcia.
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.
Jeśli zasady weryfikacji kompilacji są włączone, nowa kompilacja jest kolejkowana po utworzeniu nowego żądania ściągnięcia lub po wypchnięciu zmian do istniejącego żądania ściągnięcia, które jest przeznaczone dla gałęzi. Następnie zasady kompilacji oceniają wyniki kompilacji, aby określić, czy żądanie ściągnięcia można ukończyć.
Ważne
Przed określeniem zasad weryfikacji kompilacji musisz mieć definicję kompilacji. Jeśli go nie masz, zobacz Tworzenie definicji kompilacji i wybierz typ kompilacji pasujący do typu projektu.
Wybierz pozycję Dodaj zasady kompilacji i skonfiguruj opcje w obszarze Dodawanie zasad kompilacji.
Wybierz definicję kompilacji.
Wybierz typ wyzwalacza. Wybierz pozycję Automatycznie (za każdym razem, gdy gałąź źródłowa jest aktualizowana) lub Ręcznie.
Wybierz wymaganie dotyczące zasad. W przypadku wybrania opcji Wymagane kompilacje muszą zostać ukończone pomyślnie w celu ukończenia żądań ściągnięcia. Wybierz opcję Opcjonalne , aby podać powiadomienie o niepowodzeniu kompilacji, ale nadal zezwalaj na ukończenie żądań ściągnięcia.
Ustaw wygaśnięcie kompilacji, aby upewnić się, że aktualizacje chronionej gałęzi nie przerywają zmian otwartych żądań ściągnięcia.
Natychmiast po branch name zaktualizowaniu: ta opcja ustawia stan zasad kompilacji w żądaniu ściągnięcia, aby nie powiodło się po zaktualizowaniu chronionej gałęzi. Ponowne kolejkowanie kompilacji w celu odświeżenia stanu kompilacji. To ustawienie gwarantuje, że zmiany w żądaniach ściągnięcia będą kompilować się pomyślnie, nawet gdy chroniona gałąź ulegnie zmianie. Ta opcja jest najlepsza dla zespołów, które mają ważne gałęzie o mniejszej ilości zmian. Zespoły pracujące w zajętych gałęziach programowania mogą uznać, że zakłóca oczekiwanie na ukończenie kompilacji za każdym razem, gdy chroniona gałąź zostanie zaktualizowana.
Po n godzinach branch name aktualizacji: ta opcja wygasa bieżący stan zasad, gdy chroniona gałąź zostanie zaktualizowana, jeśli przekazywana kompilacja jest starsza niż wprowadzona wartość progowa. Ta opcja jest kompromisem między zawsze wymaganiem kompilacji, gdy chroniona gałąź zostanie zaktualizowana i nigdy nie wymaga jej. Ten wybór jest doskonały do zmniejszenia liczby kompilacji, gdy chroniona gałąź ma częste aktualizacje.
Nigdy: aktualizacje chronionej gałęzi nie zmieniają stanu zasad. Ta wartość zmniejsza liczbę kompilacji dla gałęzi. Może to powodować problemy podczas zamykania żądań ściągnięcia, które nie zostały ostatnio zaktualizowane.
Wprowadź opcjonalną nazwę wyświetlaną dla tych zasad kompilacji. Ta nazwa identyfikuje zasady na stronie Zasady gałęzi. Jeśli nie określisz nazwy wyświetlanej, zasady używają nazwy definicji kompilacji.
Wybierz pozycję Zapisz.
Gdy właściciel wypchnie zmiany wprowadzone w kompilacji pomyślnie, stan zasad zostanie zaktualizowany. Jeśli masz wartość Natychmiast po branch name zaktualizowaniu lub nPo godzinach, jeśli branch name zostały wybrane zaktualizowane zasady kompilacji, stan zasad zostanie zaktualizowany po zaktualizowaniu gałęzi chronionej, jeśli najnowsza kompilacja nie jest już prawidłowa.
Sprawdzanie stanu
Usługi zewnętrzne mogą używać interfejsu API stanu żądania ściągnięcia do publikowania szczegółowych informacji o stanie żądań ściągnięcia. Zasady gałęzi dla dodatkowych usług umożliwiają tym usługom zewnętrznym uczestnictwo w przepływie pracy żądania ściągnięcia i ustalenie wymagań dotyczących zasad.
Usługi zewnętrzne mogą używać interfejsu API stanu żądania ściągnięcia do publikowania szczegółowych informacji o stanie żądań ściągnięcia. Zasady gałęzi dla dodatkowych usług umożliwiają tym usługom zewnętrznym uczestnictwo w przepływie pracy żądania ściągnięcia i ustalenie wymagań dotyczących zasad.
Możesz automatycznie dodawać recenzentów do żądań ściągnięcia, które zmieniają pliki w określonych katalogach i plikach lub do wszystkich żądań ściągnięcia w repozytorium.
+ Wybierz przycisk obok pozycji Automatycznie uwzględnionych recenzentów.
Wypełnij ekran Dodawanie nowych zasad recenzenta.
Dodaj osoby i grupy do recenzentów.
Wybierz opcję Opcjonalne , jeśli chcesz automatycznie dodać recenzentów, ale nie wymagaj zatwierdzenia w celu ukończenia żądania ściągnięcia.
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óre określisz zatwierdź zmiany.
Określ pliki i foldery, które wymagają automatycznie uwzględnionych recenzentów. Pozostaw to pole puste, aby wymagać recenzentów dla wszystkich żądań ściągnięcia w gałęzi .
Wybierz pozycję Zezwalaj żądaniom na zatwierdzanie własnych zmian , jeśli właściciele żądań ściągnięcia mogą głosować, aby zatwierdzić własne żądania ściągnięcia, aby spełnić te zasady.
Możesz określić komunikat kanału informacyjnego aktywności wyświetlany w żądaniu ściągnięcia.
Wybierz pozycję Zapisz.
Uwaga
Ta funkcja jest dostępna dla usługi Azure DevOps Server 2020 i nowszych wersji.
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.
Komunikat kanału informacyjnego aktywności wyświetlany w żądaniu ściągnięcia. 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.
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.
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 ustawienie nie jest skonfigurowane jako domyślne lub odebrane za pośrednictwem konfiguracji usługi 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 narzędzie Jamal Hartnett jest wymaganym recenzentem żądań ściągnięcia 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
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.
Komunikat kanału informacyjnego aktywności wyświetlany w żądaniu ściągnięcia.
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 ustawienie nie jest skonfigurowane jako domyślne lub odebrane 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.
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.
Wybierz recenzentów dla określonych katalogów i plików w repozytorium.
Ci recenzenci są automatycznie dodawani do żądań ściągnięcia, które zmieniają pliki wzdłuż tych ścieżek. Można również określić komunikat kanału informacyjnego aktywności.
Jeśli wybierzesz pozycję Wymagane, nie można ukończyć żądania ściągnięcia do momentu:
Każdy użytkownik dodany jako recenzent ścieżki zatwierdza zmiany.
Co najmniej jedna osoba w każdej grupie dodanej do ścieżki zatwierdza zmiany.
Liczba recenzentów określonych dla każdej grupy dodanej do ścieżki zatwierdza zmiany.
Wybierz opcję Opcjonalne , jeśli chcesz automatycznie dodać recenzentów, ale nie wymagaj zatwierdzenia w celu ukończenia żądania ściągnięcia.
Możesz wybrać pozycję Osoby żądające mogą zatwierdzić własne zmiany.
Po zatwierdzeniu kodu przez wszystkich wymaganych recenzentów można ukończyć żądanie ściągnięcia.
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ć obejście uprawnień do użytkownika lub grupy. Można ograniczyć zakres uprawnień do całego projektu, repozytorium lub pojedynczej gałęzi.
Dwa uprawnienia umożliwiają użytkownikom obejście zasad gałęzi na różne sposoby:
Pomiń zasady podczas kończenia żądań ściągnięcia mają zastosowanie tylko do ukończenia żądania ściągnięcia. Użytkownicy z tym uprawnieniem mogą wykonywać żądania ściągnięcia, nawet jeśli żądania ściągnięcia nie spełniają zasad.
Pomijanie zasad podczas wypychania dotyczy wypychania z repozytoriów lokalnych i edycji w sieci Web. Użytkownicy z tym uprawnieniem mogą wypychać zmiany bezpośrednio do chronionych gałęzi bez spełnienia wymagań zasad.
Aby uzyskać więcej informacji na temat zarządzania tymi uprawnieniami, zobacz Uprawnienia usługi Git.
W programie TFS 2015 do TFS 2018 Update 2 uprawnienie Wyklucz z wymuszania zasad umożliwia użytkownikom z tym uprawnieniem do wykonywania następujących akcji:
Wyrażanie zgody na zastępowanie zasad i wykonywanie żądania ściągnięcia, nawet jeśli bieżący zestaw zasad gałęzi nie jest spełniony.
Wypchnij bezpośrednio do gałęzi, nawet jeśli ta gałąź ma ustawione zasady gałęzi. Gdy użytkownik z tym uprawnieniem wykonuje wypychanie, które spowoduje zastąpienie zasad gałęzi, wypychanie automatycznie pomija zasady gałęzi bez zgody lub ostrzeżenia.
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 filtrów ścieżek oferty zasad gałęzi. 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 symbol wieloznaczny) 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, jeśli w przeciwnym razie zostaną 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.
Czy mogę wypchnąć zmiany bezpośrednio do gałęzi, które mają zasady gałęzi?
Nie można wypychać zmian bezpośrednio do gałęzi z wymaganymi zasadami gałęzi, chyba że masz uprawnienia do pomijania zasad gałęzi. Zmiany w tych gałęziach można wprowadzać tylko za pośrednictwem żądań ściągnięcia. Możesz wypchnąć zmiany bezpośrednio do gałęzi, które mają opcjonalne zasady gałęzi, jeśli nie mają wymaganych zasad gałęzi.
Co to jest autouzupełnianie?
Żądania ściągnięcia do gałęzi ze skonfigurowanymi zasadami gałęzi mają przycisk Ustaw autouzupełnianie . Wybierz tę opcję, aby automatycznie ukończyć żądanie ściągnięcia po spełnieniu wszystkich zasad. Autouzupełnianie jest przydatne, gdy nie oczekujesz żadnych problemów ze zmianami.
Kiedy są sprawdzane warunki zasad gałęzi?
Zasady gałęzi są ponownie oceniane na serwerze, gdy właściciele żądań ściągnięcia wypychają zmiany i kiedy recenzenci głosują. Jeśli zasady wyzwalają kompilację, stan kompilacji ustawia się na oczekiwanie na zakończenie kompilacji.
Czy można używać definicji kompilacji XAML w zasadach gałęzi?
Nie, nie można używać definicji kompilacji XAML w zasadach gałęzi.
Jakich symboli wieloznacznych można używać dla wymaganych recenzentów kodu?
Pojedyncza gwiazdka jest zgodna z dowolną liczbą znaków, w tym ukośnikami */ do przodu i ukośnikami wstecznymi \. 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 dopasowuje plik .gitattributes* w katalogu głównym 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.
Jak skonfigurować wielu użytkowników jako wymaganych recenzentów, ale wymagać zatwierdzenia tylko jednego z nich?
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ć, aby spełnić wymagania dotyczące zasad.
Mam uprawnienia do pomijania zasad. Dlaczego nadal widzę błędy zasad w stanie żądania ściągnięcia?
Skonfigurowane zasady są zawsze oceniane pod kątem zmian żądań ściągnięcia. W przypadku użytkowników z uprawnieniami pomijania zasad zgłaszany stan zasad jest tylko poradą. Jeśli użytkownik z uprawnieniami obejścia zatwierdzi, stan niepowodzenia nie blokuje ukończenia żądania ściągnięcia.
Dlaczego nie mogę ukończyć własnych żądań ściągnięcia, gdy ustawiono opcję "Zezwalaj żądaniom na zatwierdzanie własnych zmian"?
Zarówno zasady Wymagaj minimalnej liczby recenzentów, jak i zasady Automatycznie dołączone recenzentów mają opcje Zezwalaj żądaniom na zatwierdzanie własnych zmian. W każdej zasadach ustawienie dotyczy tylko tych zasad. 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 uwzględniane recenzenty wymagają od Ciebie lub zespołu, w którym jesteś recenzentem.
Automatycznie dołączona recenzenci ma włączoną opcję Zezwalaj żądaniom 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 zatwierdzenie spełnia automatycznie uwzględnione recenzentów, ale nie Wymagaj minimalnej liczby recenzentów, więc nie można ukończyć żądania ściągnięcia.
Mogą również istnieć inne zasady, takie jak Zakaz najnowszych pusher zatwierdzania własnych zmian, które uniemożliwiają zatwierdzenie własnych zmian, nawet jeśli opcja Zezwalaj żądaniom na zatwierdzanie własnych zmian jest ustawiona.
Co się stanie, gdy ścieżka w filtrach ścieżek nie zaczyna się od / lub z symbolem wieloznacznymi?
Ścieżka w filtrach ścieżki, które nie zaczynają się od / lub z symbolem wieloznacznymi, nie ma żadnego efektu, a filtr ścieżki ocenia tak, jakby ta ścieżka nie została określona. Taka ścieżka nie może być zgodna ze ścieżką bezwzględną / pliku rozpoczynającą się od.