Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Använd grenprinciper för att skydda viktiga grenar genom att kräva pull-begäranden, granskare, byggen och andra kontroller innan ändringarna slås samman. Den här artikeln visar hur du konfigurerar och hanterar grenprinciper i Azure DevOps webbportalen och Azure DevOps CLI. En sammanfattning av tillgängliga förgreningsprinciper och förgreningsvägledning finns i Om grenar och grenprinciper.
En omfattande säkerhetsguide som omfattar grenprinciper, åtkomstkontroll för lagringsplatser, incheckningssignering och verkliga implementeringsscenarier finns i Säkra lagringsplatser och pull-begäranden.
Du kan inte ta bort en gren med nödvändiga principer konfigurerade, och alla ändringar måste gå igenom pull-begäranden (PRs).
Förutsättningar
| Requirement |
Detaljer |
| Permissions |
Var medlem i säkerhetsgruppen Project Administrators eller ha behörigheten Redigera principer på databassnivå. Mer information finns i Ange Behörigheter för Git-lagringsplats. |
| Azure DevOps CLI-installation (valfritt) |
Om du vill använda Azure DevOps CLI-kommandona az repos policy går du igenom Kom igång med Azure DevOps CLI. |
| Mål för lagringsplats för CLI (valfritt) |
Innan du skapar eller uppdaterar principer i CLI ska du identifiera lagringsplatsens ID genom att köra az repos list. För att undvika upprepande --org och --projectanger du standardvärden med az devops configure --defaults. |
| Policyberoenden |
Innan du konfigurerar buildverifiering bör du ha en byggpipeline klar. Innan du konfigurerar Statuskontroller kontrollerar du att den externa tjänsten eller den inbyggda integreringen redan kan publicera status för pull-begäran. |
| AI-hjälpkonfiguration (valfritt) |
Om du vill använda AI-hjälp med Azure DevOps MCP Server använder du Azure DevOps Services, aktiverar agentläge i AI-assistenten och installerar Node.js 20.0+. Mer information finns i Aktivera AI-hjälp med Azure DevOps MCP Server. |
| Requirement |
Detaljer |
| Permissions |
Var medlem i säkerhetsgruppen Project Administrators eller ha behörigheten Redigera principer på databassnivå. Mer information finns i Ange Behörigheter för Git-lagringsplats. |
Öppna principinställningar för gren
Så här öppnar du inställningar för grenprinciper i webbportalen:
- Välj Repos>Brancher.
- Hitta den gren som du vill hantera.
- Välj ikonen Fler alternativ bredvid grenen och välj sedan Grenprinciper.
Du kan också öppna inställningarna för grenprinciper från Projektinställningar>Lagringsplats>Principer>Grenprinciper><Grennamn>.
Grenar som har policys visar en policyikon. Välj ikonen för att gå direkt till grenens principinställningar.
Du kan bläddra i listan eller söka efter grenen i rutan Sök grennamn .
Konfigurera principer på grenens inställningssida. Använd följande avsnitt för att aktivera eller uppdatera en befintlig princip.
Använd Azure DevOps CLI för att lista befintliga principer för en gren eller lagringsplats innan du skapar eller uppdaterar en princip.
Om du använder Azure DevOps CLI ofta anger du standardvärden för din organisation och ditt projekt med az devops configure --defaults. När du bara vill att en princip ska gälla för en gren använder du --branch-match-type exact. Använd prefix endast när du vill att principen ska tillämpas i en grenmapp, till exempel release/.
Lista principer
Om du vill visa en lista över alla principer i ett projekt använder du az repos policy list.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Parameters
| Parameter |
Beskrivning |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org, organization |
Url för Azure DevOps-organisation. Konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Exempel
Följande kommando returnerar alla förgreningsprinciper som gäller i grenen main på Fabrikam-lagringsplatsen, ID d28cd374-e7f0-4b1f-ad60-f349f155d47c. Hämta lagringsplatsens ID genom att köra az repos list.
I det här exemplet används följande standardkonfiguration: 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
Visa information om en policy
Om du vill visa detaljerna för en policy använder du az repos policy show.
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org, organization |
Url för Azure DevOps-organisation. Konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Ange en princip för minsta granskare
Kräv godkännande från ett minsta antal granskare innan en pull-begäran kan slutföras.
Om du vill ange principen under Avdelningsprinciper anger du Kräv ett minsta antal granskare till På. Ange det antal granskare som krävs och välj något av följande alternativ:
Välj Tillåt begäranden att godkänna sina egna ändringar för att låta skaparen av en PR rösta på att godkänna den. Annars kan skaparen fortfarande rösta Godkänn på PR, men deras röst räknas inte mot det minsta antalet granskare.
Välj Förhindra att den senaste pusharen godkänner sina egna ändringar för att säkerställa ansvarsuppdelning. Som standardinställning kan alla som har push-behörighet på källgrenen både lägga till ändringar och rösta om godkännande av PR. Om du väljer det här alternativet räknas inte den senaste pusherns röst, även om de vanligtvis kan godkänna sina egna ändringar.
Välj Tillåt slutförande även om vissa granskare röstar för att vänta eller avvisa för att tillåta pr-slutförande även om vissa granskare röstar emot godkännande. Det minsta antalet granskare måste fortfarande godkänna.
- Under När nya ändringar skickas:
- Välj Kräv minst ett godkännande för varje iteration för att kräva minst en godkännanderöst för den senaste ändringen av källgrenen. Användarens godkännande räknas inte mot några tidigare icke godkända iterationer som användaren har pushat. Därför måste en annan användare godkänna den senaste iterationen.
Kräv minst ett godkännande för varje iteration som är tillgänglig i Azure DevOps Server 2022.1 och senare.
- Välj Kräv minst ett godkännande för den senaste iterationen för att kräva minst en godkännandeomröstning för den senaste ändringen av källgrenen.
- Välj Återställ alla godkännanderöster (återställer inte röster för att avvisa eller vänta) för att ta bort alla godkännanderöster, men behåll röster för att avvisa eller vänta när källgrenen ändras.
- Välj Återställ alla röster för kodgranskare för att ta bort alla granskarröster när källgrenen ändras, inklusive röster för att godkänna, avvisa eller vänta.
Om alla andra regler godkänns kan skaparen genomföra PR:n när det begärda antalet granskare godkänner den.
Du kan hantera antalet nödvändiga godkännare för pull-begäranden med az repos policy approver-count.
Skapa princip för antal godkännare
Om du vill skapa en princip för antal godkännare använder du 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]
Parameters
| Parameter |
Beskrivning |
allow-downvotes |
Tillåt nedröstning. Godkända värden: false, true.
Obligatoriska. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true.
Obligatoriska. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main.
Obligatoriska. |
creator-vote-counts |
Räkna skaparens röst. Godkända värden: false, true.
Obligatoriska. |
enabled |
Aktivera policyn. Godkända värden: false, true.
Obligatoriska. |
minimum-approver-count |
Minsta antal godkännare som krävs. Exempel: 2.
Obligatoriska. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345
Obligatoriska. |
reset-on-source-push |
Återställ röster när ändringar skickas till källan. Godkända värden: false, true.
Obligatoriska. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Exempel
I följande exempel anges minsta antal nödvändiga godkännanden för 2 pull-förfrågningar i grenen main av Fabrikam-repositoriet. Policyn tillåter att rösta ner, vilket innebär att pull-begäranden kan slutföras även om vissa granskare röstar mot att godkänna, så länge det minsta antal röstar för. Push-överföring till källgrenen återställer inte röster. Principen gör det också möjligt för pull-begärandeskapare att godkänna sina egna pull-begäranden.
I det här exemplet används standardkonfigurationen az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy approver-count create --allow-downvotes true --blocking true --branch main --creator-vote-counts true --enabled true --minimum-approver-count 2 --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --reset-on-source-push false --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
27 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Uppdatera principen för antal godkännare
Om du vill uppdatera en princip för antal godkännare, använd 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]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
allow-downvotes |
Tillåt nedröstning. Godkända värden: false, true. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
creator-vote-counts |
Räkna skaparens röst. Godkända värden: false, true. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
enabled |
Aktivera policyn. Godkända värden: false, true. |
minimum-approver-count |
Minsta antal godkännare som krävs. Exempel: 2. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
reset-on-source-push |
Återställ röster när ändringar skickas till källan. Godkända värden: false, true. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Kräv länkade arbetsobjekt
För spårning av arbetsobjektshantering kan du kräva associationer mellan pr och arbetsobjekt. Länkning av arbetsobjekt ger mer kontext för ändringar och säkerställer att uppdateringarna går igenom spårningsprocessen för arbetsobjekt.
Om du vill ange principen under Avdelningsprinciper anger du Sök efter länkade arbetsobjekt till På. Den här inställningen kräver att arbetsuppgifter är länkade till en PR för att PR:n ska kunna slås ihop. Gör inställningen Valfri för att varna när det inte finns några länkade arbetsobjekt, men tillåt slutförande av pull-begäran.
Du kan använda Azure CLI az repos policy work-item-linking för att skapa och uppdatera länkningsprinciper för arbetsobjekt för en gren eller lagringsplats.
Skapa länkprincip för arbetsobjekt
Använd az repos policy work-item-linking create för att skapa en länkningsprincip för arbetsobjekt för en lagringsplats eller grenar.
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]
Parameters
| Parameter |
Beskrivning |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true.
Obligatoriska. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main.
Obligatoriska. |
enabled |
Aktivera policyn. Godkända värden: false, true.
Obligatoriska. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Uppdatera länkningsprincip för arbetsobjekt
Använd az repos policy work-item-linking update för att uppdatera en länkningsprincip för arbetsobjekt för en lagringsplats eller en eller flera grenar.
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]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
enabled |
Aktivera policyn. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Exempel
I följande exempel uppdateras princip-ID:t 3 för grenen main av Fabrikam-lagringsplatsen så att den aktiveras men förblir valfri. I exemplet används standardkonfigurationen az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy work-item-linking update --id 3 --blocking false --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ----------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Policyn Check for comment resolution kontrollerar om alla PR-kommentarer har lösts.
Ställ in Kontrollera kommentarslösning på På för att konfigurera en policy för kommentarslösning för din gren. Välj sedan om du vill göra principen Obligatorisk eller Valfri.
Mer information om hur du arbetar med pull-begärandekommenteringar finns i Granska pull-begäranden.
Använd Azure DevOps CLI az repos policy comment-required för att ange och uppdatera kommentarslösningsprincipen.
Om du vill skapa en policy för kommentarslösning använder du 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]
Parameters
| Parameter |
Beskrivning |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true.
Obligatoriska. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main.
Obligatoriska. |
enabled |
Aktivera policyn. Godkända värden: false, true.
Obligatoriska. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345
Obligatoriska. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Om du vill uppdatera en policy för kommentarers lösning, använder du kommandot 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]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
enabled |
Aktivera policyn. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Exempel
I följande exempel uppdateras policy-ID för kommentarslösning 6 i grenen main av Fabrikam-lagringsplatsen till att blockera. Kommentarer måste lösas innan pull-begäranden kan sammanfogas. I det här exemplet används standardkonfigurationen az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy comment-required update --id 6 --blocking true --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- -------------------- ------------- ------------ ------------------------------------ ---------------
6 Comment requirements True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Begränsa sammanslagningstyper
Azure-lagringsplatser stöder flera sammanslagningsstrategier, och som standard tillåter det alla. Om du vill behålla en konsekvent grenhistorik framtvingar du en sammanslagningsstrategi för slutförande av PR.
Ange Begränsa sammanslagningstyper till På för att begränsa vilka sammanslagningstyper som tillåts på lagringsplatsen.
-
Grundläggande sammanslagning (ingen snabbsnabbning) skapar en sammanslagningsincheckning i målet vars överordnade objekt är mål- och källgrenarna.
-
Squashsammanslagning skapar en linjär historik med en enda incheckning i målgrenen som innehåller ändringarna från källgrenen.
Läs mer om squashsammanslagningen och hur den påverkar grenhistoriken.
-
Ombasera och fast-forward skapar en linjär historik genom att spela upp källändringar på målgrenen utan sammanfogning.
-
Ombasera med sammanslagningsincheckning spelar upp källincheckningarna på målet och skapar även en sammanslagningsincheckning.
Använd Azure DevOps CLI az repos policy merge-strategy för att ange och uppdatera policyn för sammanslagningsstrategi.
Skapa en sammanslagningsstrategiprincip
Använd az repos policy merge-strategy create för att skapa en policy för sammanslagningsstrategi.
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}]
Parameters
| Parameter |
Beskrivning |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true.
Obligatoriska. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main.
Obligatoriska. |
enabled |
Aktivera policyn. Godkända värden: false, true.
Obligatoriska. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345
Obligatoriska. |
allow-no-fast-forward |
Enkel sammanslagning utan snabbspolning framåt. Bevarar icke-linjär historik precis som under utvecklingen. Godkända värden: false, true. |
allow-rebase |
Rebasera och spola framåt. Skapar en linjär historik genom att spela upp källgrenens ändringar på målet utan ett sammanslagningsåtagande. Godkända värden: false, true. |
allow-rebase-merge |
Rebase med sammanslagningsändring. Skapar en semilinjära historik genom att spela upp källgrenens kommandon på målets gren och sedan skapa ett sammanslagningskommando. Godkända värden: false, true. |
allow-squash |
Squash sammanslagning. Skapar en linjär historik genom att komprimera källgrenens incheckningar till en enda ny incheckning på målgrenen. Godkända värden: false, true. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
use-squash-merge |
Alltid squash sammanslagning. Det här alternativet är inte tillgängligt för andra sammanslagningstyper. Godkända värden: false, true.
Observera:use-squash-merge är inaktuell och kommer att tas bort i en framtida version. Använd --allow-squash i stället. |
Exempel
I följande exempel anges en obligatorisk sammanslagningsstrategi för pull-begäranden i grenen main av Fabrikam-lagringsplatsen för att tillåta squashsammanslagning. I det här exemplet används standardkonfigurationen az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy merge-strategy create --allow-squash true --blocking true --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------------ ------------- ------------ ------------------------------------ ---------------
29 Require a merge strategy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Uppdatera en princip för sammanslagningsstrategi
Använd az repos policy merge-strategy update för att uppdatera en sammanslagningsstrategiprincip.
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}]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
allow-no-fast-forward |
Enkel sammanslagning utan snabbspolning framåt. Bevarar icke-linjär historik precis som under utvecklingen. Godkända värden: false, true. |
allow-rebase |
Rebasera och spola framåt. Skapar en linjär historik genom att spela upp källgrenens ändringar på målet utan ett sammanslagningsåtagande. Godkända värden: false, true. |
allow-rebase-merge |
Rebase med sammanslagningsändring. Skapar en semilinjära historik genom att spela upp källgrenens kommandon på målets gren och sedan skapa ett sammanslagningskommando. Godkända värden: false, true. |
allow-squash |
Squash sammanslagning. Skapar en linjär historik genom att komprimera källgrenens incheckningar till en enda ny incheckning på målgrenen. Godkända värden: false, true. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
enabled |
Aktivera policyn. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
use-squash-merge |
Huruvida man alltid ska squash-sammanslå. Det här alternativet fungerar inte för andra sammanslagningstyper. Godkända värden: false, true. |
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Ange byggverifiering
Ange en princip som kräver att PR-ändringar kan kompileras utan fel innan PR:n kan slutföras.
Skapa principer minskar pauser och håller testresultaten klara. Byggprinciper hjälper även om du använder kontinuerlig integrering (CI) på dina utvecklingsgrenar för att fånga upp problem tidigt.
När du ställer in principutlösaren på Automatisk köar en princip för buildvalidering en ny build när du skapar en ny PR eller pushar ändringar till en befintlig PR som har grenen som mål. Om du anger utlösaren för principen till Manuell måste användarna själva lägga builden i kö. I båda fallen utvärderar policyn byggresultaten för att avgöra om en PR kan slutföras.
Viktigt!
Innan du anger en princip för byggverifiering skapar du en buildpipeline. Om du inte har någon pipeline, se Skapa en byggpipeline. Välj vilken typ av bygge som matchar din projekttyp.
Så här lägger du till en byggverifieringsprincip
+ Välj knappen bredvid Skapa validering.
Fyll i formuläret Ange byggprincip :
Du kan också ange ett sökvägsfilter.
Läs mer om sökvägsfilter i grenprinciper.
Under Utlösare väljer du Automatisk (när källgrenen uppdateras) eller Manuell.
Under Principkrav väljer du Obligatoriskt eller Valfritt. Om du väljer Obligatoriskt måste byggen slutföras framgångsrikt för att PR:er ska slutföras. Välj Valfritt om du vill ange ett meddelande om byggfelet men ändå tillåta att PR:er slutförs.
Ange ett byggdatum för att se till att uppdateringar av din skyddade gren inte bryter ändringar för öppna PR:er.
Omedelbart när <grennamnet> uppdateras: Det här alternativet anger status för PR-byggprincipen till misslyckad när grenen uppdateras och returnerar en version på nytt. Den här inställningen säkerställer att ändringarna i PR:en byggs framgångsrikt även om den skyddade grenen ändras.
Det här alternativet passar bäst för team vars viktiga grenar har få ändringar. Team som arbetar i upptagna utvecklingsgrenar kan tycka att det är störande att vänta på ett bygge varje gång grenen uppdateras.
Efter <n> timmar om <grennamnet> har uppdaterats: Det här alternativet upphör att gälla den aktuella principstatusen när den skyddade grenen uppdateras om den övergående versionen är äldre än det tröskelvärde som du anger. Det här alternativet är en kompromiss mellan att alltid eller aldrig kräva en build när den skyddade grenen uppdateras. Det här valet minskar antalet versioner när den skyddade grenen har frekventa uppdateringar.
Aldrig: Uppdateringar av den skyddade grenen ändrar inte principstatusen. Det här värdet minskar antalet kompileringar, men kan orsaka problem när du fullföljer PR:ar som inte har uppdaterats nyligen.
Ange ett valfritt visningsnamn för den här byggprincipen. Det här namnet identifierar policyn på sidan Grenprinciper. Om du inte anger visningsnamn använder principen namnet på byggpipeline.
- Välj Spara.
När PR-owner pushar ändringar som kompileras framgångsrikt, uppdateras statusen för policyn.
Om du har en Så snart <grennamnet> uppdateras eller Efter <n> timmar om <grennamnet> har uppdaterats, uppdateras statusen för policyn när den skyddade grenen uppdateras, om den tidigare kompileringsversionen inte längre är giltig.
Använd Azure DevOps CLI az repos policy build för att ange och uppdatera byggverifieringsprincipen.
Skapa en byggverifieringsprincip
Använd az repos policy build create för att skapa en byggverifieringsprincip.
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]
Parameters
| Parameter |
Beskrivning |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true.
Obligatoriska. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main.
Obligatoriska. |
build-definition-id |
Byggdefinitions-ID.
Obligatoriska. |
display-name |
Visningsnamn för den här byggpolicyn för att identifiera policyn. Exempel: Manual queue policy.
Obligatoriska. |
enabled |
Aktivera policyn. Godkända värden: false, true.
Obligatoriska. |
manual-queue-only |
Huruvida endast manuell köning av byggen ska tillåtas. Godkända värden: false, true.
Obligatoriska. |
queue-on-source-update-only |
Att köa byggen endast när källan uppdateras. Godkända värden: false, true.
Obligatoriska. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345
Obligatoriska. |
valid-duration |
Varaktighet för principens giltighet i minuter.
valid-duration Obs! Måste vara mellan noll och ett år och måste vara noll när --queue-on-source-update-only är false.
Obligatoriska. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Sökvägen som policyn ska tillämpas på. Stöder absoluta sökvägar, jokertecken och flera sökvägar avgränsade med ;. Exempel: /WebApp/Models/Data.cs, /WebApp/*, eller *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Exempel
I följande exempel anges en nödvändig byggprincip för pull-begäranden i grenen main av Fabrikam-lagringsplatsen. Policyn kräver en lyckad build av builddefinition-ID 1, och tillåter endast manuell byggköning. I det här exemplet används standardkonfigurationen az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy build create --blocking true --branch main --build-definition-id 1 --display-name build-policy --enabled true --manual-queue-only true --queue-on-source-update-only false --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --valid-duration 0 --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------ ------------- ------------ ------------------------------------ ---------------
31 build-policy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Uppdatera en byggverifieringsprincip
Använd az repos policy build update för att uppdatera en byggverifieringsprincip.
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]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
build-definition-id |
Byggdefinitions-ID. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
display-name |
Visningsnamn för den här byggpolicyn för att identifiera policyn. Exempel: Manual queue policy. |
enabled |
Aktivera policyn. Godkända värden: false, true. |
manual-queue-only |
Huruvida endast manuell köning av byggen ska tillåtas. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Sökvägar som policyn tillämpas på. Stöder absoluta sökvägar, jokertecken och flera sökvägar avgränsade med ;. Exempel: /WebApp/Models/Data.cs, /WebApp/*, eller *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
queue-on-source-update-only |
Att köa byggen endast när källan uppdateras. Godkända värden: false, true. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
valid-duration |
Varaktighet för principens giltighet i minuter. |
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Kräv statuskontroller
Externa tjänster kan använda PR-status-API:et för att publicera detaljerad status till dina pr-flöden. Med grenprincipen för ytterligare tjänster kan dessa externa tjänster delta i PR-arbetsflödet och upprätta principkrav.
Så här konfigurerar du en princip för statuskontroll:
- Kontrollera att tjänsten kan rapportera status för pull requests till Azure-lagringsplatser.
- Under Statuskontroller i Grenprinciper väljer du +.
- I Kontrollstatus väljer du den bokförda checken i listan. Om tjänsten inte har bokfört status ännu skriver du värdet
genre/name direkt.
- Ange Principkrav tillObligatoriskt eller Valfritt.
- Du kan också konfigurera auktoriserad identitet, återställningsvillkor, principanvändning och sökvägsfilter.
- Använd Använd som standard om principen ska tillämpas så snart pull-begäran har skapats.
- Använd Villkorsstyrd om principen endast ska gälla när den första statusen har bokförts.
- Skapa eller uppdatera en pull request som är riktad mot grenen och bekräfta att policyn visas i avsnittet Policies.
För inbyggda Azure DevOps Services-kontroller och deras genre/name identifierare, se Tillgängliga statuskontroller för pull-begäranden. En fullständig genomgång av konfigurationen av externa tjänster finns i Konfigurera en grenprincip för en extern tjänst.
Om en ny integrering inte visas i listrutan än, skickar du status en gång från tjänsten och lägger sedan till policyn, eller skriver värdet genre/name direkt.
Inkludera granskare automatiskt
Du kan automatiskt lägga till granskare till pull-begäranden som ändrar filer i specifika kataloger och filer, eller till alla pull-begäranden på en lagringsplats.
+ Välj knappen bredvid Automatiskt inkluderade granskare.
Fyll i sidan Lägg till ny granskarpolicy.
Lägg till personer och grupper i Granskare.
Välj Valfritt om du vill lägga till granskare automatiskt, men inte kräva deras godkännande för att slutföra pull-begäran.
Eller välj Obligatoriskt om pull-begäranden inte kan slutföras förrän:
- Varje individ som läggs till som granskare godkänner ändringarna.
- Minst en person i varje grupp som läggs till som granskare godkänner ändringarna.
- Om endast en grupp krävs godkänner det minsta antalet medlemmar som du anger ändringarna.
Ange de filer och mappar som kräver automatiskt inkluderade granskare. Lämna fältet tomt för att kräva granskare för alla pull-förfrågningar i grenen.
Välj Tillåt användare att godkänna sina egna ändringar om ägarna av pull-begäranden kan rösta för att godkänna sina egna pull-begäranden för att uppfylla denna policy.
Du kan ange ett aktivitetsflödesmeddelande som visas i pull-begäran.
Välj Spara.
Använd Azure DevOps CLI az repos policy required-reviewer för att ange och uppdatera den nödvändiga granskningsprincipen.
Skapa en obligatorisk recensionspolicy
Använd az repos policy required-reviewer create för att skapa en policy för obligatorisk granskare.
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]
Parameters
| Parameter |
Beskrivning |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true.
Obligatoriska. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main.
Obligatoriska. |
enabled |
Aktivera policyn. Godkända värden: false, true.
Obligatoriska. |
message |
Meddelande i aktivitetsflödet som visas i en pull request.
Obligatoriska. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345
Obligatoriska. |
required-reviewer-ids |
Granskarens e-postadresser avgränsade med ;. Exempel: john@contoso.com;alice@contoso.com. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Sökvägar som policyn tillämpas på. Stöder absoluta sökvägar, jokertecken och flera sökvägar avgränsade med ;. Exempel: /WebApp/Models/Data.cs, /WebApp/*, eller *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Exempel
I följande exempel anges Jamal Hartnett som en nödvändig granskare för pull-begäranden i grenen main av Fabrikam-lagringsplatsen. I det här exemplet används standardkonfigurationen az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber".
az repos policy required-reviewer create --blocking true --branch main --enabled true --message "Please review." --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --required-reviewer-ids fabrikamfiber4@hotmail.com --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------ ------------- ------------ ------------------------------------ ---------------
35 Required reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Uppdatera en obligatorisk godkännandeprincip
Använd az repos policy required-reviewer update för att uppdatera en krävda granskare-policy.
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]
Parameters
| Parameter |
Beskrivning |
id, policy-id |
ID för policyn.
Obligatoriska. |
blocking |
Blockera om principen inte uppfylls. Godkända värden: false, true. |
branch |
Grennamn för att filtrera resultat efter exakt matchning. Parametern --repository-id krävs för att använda grenfiltret. Exempel: --branch main. |
branch-match-type |
branch Använd argumentet för att tillämpa principen. Om värdet är exactgäller principen för en gren som exakt matchar --branch argumentet. Om värdet är prefixgäller principen för alla grenmappar som matchar prefixet --branch i argumentet. Godkända värden: exact, prefix. Standardvärde: exact. |
detect |
Identifiera organisationen automatiskt. Godkända värden: false, true. |
enabled |
Aktivera policyn. Godkända värden: false, true. |
message |
Meddelande i aktivitetsflödet som visas i en pull request. |
org |
Url för Azure DevOps-organisation. Du kan konfigurera standardorganisationen med hjälp av az devops configure -d organization=<ORG_URL>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. Exempel: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Sökvägar som policyn tillämpas på. Stöder absoluta sökvägar, jokertecken och flera sökvägar avgränsade med ;. Exempel: /WebApp/Models/Data.cs, /WebApp/*, eller *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Projektets namn eller ID. Konfigurera standardprojektet med hjälp av az devops configure -d project=<NAME_OR_ID>.
Krävs om det inte har konfigurerats som standard eller hämtats via git-konfiguration. |
repository-id |
ID för lagringsplatsen för att filtrera resultat efter exakt matchning. Exempel: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 |
required-reviewer-ids |
Granskarens e-postadresser avgränsade med ;. Exempel: john@contoso.com;alice@contoso.com. |
subscription |
Namn eller ID för prenumerationen. Konfigurera standardprenumerationen med az account set -s <NAME_OR_ID>. |
Azure DevOps CLI-kommandon stöds inte för Azure DevOps Server.
Tillåt kringgående av policy vid behov
I vissa fall kan du behöva kringgå principkraven. Med förbikopplingsbehörigheter kan du skicka ändringar till en gren direkt eller slutföra pull-begäranden som inte uppfyller grenprinciper. Du kan bevilja förbikopplingsbehörigheter till en användare eller grupp och omfångsbegränsa dessa behörigheter till ett helt projekt, en lagringsplats eller en enda gren.
Med två behörigheter kan användare kringgå grenprinciper på olika sätt:
Kringgå principer när du slutför pull-begäranden gäller endast för slutförande av pull-begäranden. Användare med den här behörigheten kan slutföra pull-begäranden även om pull-begäranden inte uppfyller principerna.
Kringgå principer vid push-överföring gäller push-överföring från lokala lagringsplatser och ändringar som görs på webben. Användare med den här behörigheten kan skicka ändringar direkt till skyddade grenar utan att uppfylla principkraven.
Mer information om hur du hanterar dessa behörigheter finns i Git-behörigheter.
Viktigt!
Var försiktig när du ger möjlighet att kringgå principer, särskilt på lagringsplats- och projektnivå. Principer är en hörnsten i säker och kompatibel källkodshantering.
Använd sökvägsfilter med grenpolicyer
Flera grenprinciper stöder sökvägsfilter. Om du anger ett sökvägsfilter gäller principen endast för filer som matchar filtret. Lämna fältet tomt för att tillämpa principen på alla filer i grenen.
Du kan ange absoluta sökvägar (sökvägen måste börja med / eller ett jokertecken) och jokertecken.
Exempel:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Du kan ange flera sökvägar med hjälp ; av som avgränsare.
Exempel:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Om du lägger till prefixet ! före sökvägar utesluter du dem om de annars skulle inkluderas.
Exempel:
-
/WebApp/*;!/WebApp/Tests/* innehåller alla filer i /WebApp utom filer i /WebApp/Tests
-
!/WebApp/Tests/* anger inga filer, eftersom ingenting inkluderas först
Filterordningen är betydande. Använd filter från vänster till höger.
Felsöka grenprinciper
Kan jag skicka ändringar direkt till grenar som har grenprinciper?
Du kan inte push-överföra ändringar direkt till grenar med nödvändiga grenprinciper om du inte har behörighet att kringgå grenprinciper. Du kan bara göra ändringar i dessa grenar via pull-begäranden. Du kan skicka ändringar direkt till grenar som har valfria grenprinciper, om de inte har några nödvändiga grenprinciper.
Vad är automatisk komplettering?
Grenar med grensprinciper som har konfigurerats för pullbegäranden har knappen Ange automatiskt slutförande. Välj det här alternativet om du vill ange att en pull-begäran ska kompletteras automatiskt när den uppfyller alla principer. Automatisk komplettering är användbart när du inte förväntar dig några problem med dina ändringar.
När kontrolleras villkor för grenkriterier?
Servern omvärderar grenpolicyer när ägare av pull requests pushar ändringar och när granskare röstar. Om en regel utlöser en kompilering ställs kompileringsstatusen i vänteläge tills kompileringen har slutförts.
Kan jag använda XAML-versionsdefinitioner i grenprinciper?
Nej, du kan inte använda XAML-byggdefinitioner i grenprinciper.
Vilka jokertecken kan jag använda för obligatoriska kodgranskare?
Enkla asterisker * matchar ett valfritt antal tecken, inklusive både vanliga snedstreck / och omvända snedstreck \. Frågetecken ? motsvarar ett enskilt tecken.
Exempel:
-
*.sql matchar alla filer med tillägget .sql .
-
/ConsoleApplication/* matchar alla filer i mappen som heter ConsoleApplication.
-
/.gitattributes motsvarar filen.gitattributes* i rotmappen i lagringsplatsen.
-
*/.gitignore matchar alla .gitignore-filer i repot.
Är kodgranskarens nödvändiga sökvägar skiftlägeskänsliga?
Nej, grenprinciper är inte skiftlägeskänsliga.
Du kan lägga till användarna i en grupp och sedan lägga till gruppen som granskare. Alla medlemmar i gruppen kan sedan godkänna för att uppfylla principkravet.
Jag har behörighet att kringgå principer. Varför ser jag fortfarande policyfel i pull request-statusen?
Systemet utvärderar alltid konfigurerade principer för pull-begärandeändringar. För användare som har behörighet att kringgå principer är den rapporterade principstatusen endast rådgivande. Om användaren med särskilda behörigheter godkänner, blockeras inte pull-förfrågans slutförande av ett misslyckandestatus.
Varför kan jag inte slutföra mina egna pull requests när jag anger "Tillåt att den som skapar begäran godkänner sina egna ändringar"?
Både principen Kräv ett minsta antal granskare och principen Automatiskt inkluderade granskare har alternativ för att tillåta begärande att godkänna sina egna ändringar. I varje policy gäller inställningen endast för den policyn. Inställningen påverkar inte den andra principen.
Din pull-begäran har till exempel följande principer inställda:
-
Kräv minst ett antal granskare kräver minst en granskare.
-
Automatiskt inkluderade granskare kräver att du eller ett team du är i fungerar som en granskare.
-
Automatiskt inkluderade granskare har Tillåt begäranden att godkänna sina egna ändringar aktiverade.
-
Kräv ett minsta antal granskare har inte Tillåt begäranden att godkänna sina egna ändringar aktiverat.
I det här fallet uppfyller ditt godkännande automatiskt inkluderade granskare, men inte Kräv ett minsta antal granskare, så du kan inte slutföra pull-begäran.
Andra principer kan hindra dig från att godkänna dina egna ändringar, även om Tillåt begäranden att godkänna sina egna ändringar har angetts. Till exempel förhindra att den som senast pushade godkänner sina egna ändringar.
Vad händer när ett sökvägsfilter inte börjar med / eller ett jokertecken?
En sökväg i sökvägsfilter som inte börjar med / eller med ett jokertecken har ingen effekt. Sökvägsfiltret utvärderas som om sökvägen inte angavs. En sådan sökväg kan inte matcha den absoluta filsökväg / som den börjar med.
Om du konfigurerar Azure DevOps MCP-server kan du använda naturligt språk för att samla in lagringsplats, gren, pull-begäran och skapa kontext innan du uppdaterar grenprinciper i Azure DevOps Services.
AZURE DEVOPS MCP-servern kräver Azure DevOps Services, agentläge i AI-assistenten och Node.js 20.0+. Den aktuella MCP-dokumentationen beskriver inte direkt läs- eller skrivåtgärder för grenprinciper, så använd Azure DevOps webbportalen eller Azure DevOps CLI för att skapa och uppdatera principer.
| Uppgift |
Exempelprompt |
| Visa en lista över grenar på en lagringsplats |
List the branches in repo <Contoso.Web> in project <Contoso> |
| Granska pullförfrågningar innan du skärper policyn |
What pull requests require my review in project <Contoso>? |
| Granska en pullbegäran och länkade arbetsobjekt |
Get details for pull request <67> and its linked work items in project <Contoso> |
| Kontrollera byggstatusen innan du gör byggverifieringen obligatorisk |
Get the latest build status for pipeline <Contoso-CI> in project <Contoso> |
Note
Om du använder Visual Studio Code är agentläget särskilt användbart för att samla in den projektkontext du behöver innan du uppdaterar grenprinciper.
Relaterat innehåll