servizi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Usa i criteri dei branch per proteggere i branch importanti imponendo pull request, revisori, build e altri controlli prima dell'unione delle modifiche. Questo articolo illustra come configurare e gestire i criteri dei rami nel portale Web Azure DevOps e nell'interfaccia della riga di comando di Azure DevOps. Per un riepilogo dei criteri dei rami disponibili e delle linee guida per la diramazione, vedere Informazioni sui rami e i criteri dei rami.
Per una guida completa alla sicurezza relativa ai criteri dei rami, al controllo di accesso del repository, alla firma del commit e agli scenari di implementazione reali, vedere Proteggere i repository e le richieste pull.
Non è possibile eliminare un ramo con policy obbligatorie configurate e tutte le modifiche devono essere apportate tramite richieste pull (PR).
Prerequisiti
| Requirement |
dettagli |
| Permissions |
Essere membri del gruppo di sicurezza Project Administrators o disporre delle autorizzazioni di modifica a livello di repository. Per altre informazioni, vedere Impostare le autorizzazioni del repository Git. |
| Configurazione di Azure DevOps CLI (facoltativo) |
Per usare i comandi az repos policy dell'interfaccia della riga di comando di Azure DevOps, completare Introduzione all'interfaccia della riga di comando di Azure DevOps. |
| Selezione del repository per la CLI (facoltativo) |
Prima di creare o aggiornare i criteri nell'interfaccia della riga di comando, identificare l'ID del repository eseguendo az repos list. Per evitare di ripetere --org e --project, imposta i valori predefiniti con az devops configure --defaults. |
| Dipendenze dei criteri |
Prima di configurare la convalida della compilazione, assicurarsi di avere una pipeline di compilazione già pronta. Prima di configurare i controlli di stato, assicurarsi che il servizio esterno o l'integrazione predefinita possa già registrare lo stato della richiesta pull. |
| Configurazione dell'assistenza di intelligenza artificiale (facoltativo) |
Per usare l'assistenza di intelligenza artificiale con Azure DevOps SERVER MCP, usare Azure DevOps Services, abilitare la modalità agente nell'assistente per intelligenza artificiale e installare Node.js 20.0+. Per altre informazioni, vedere Abilitare l'assistenza di intelligenza artificiale con Azure DevOps server MCP. |
| Requirement |
dettagli |
| Permissions |
Essere membri del gruppo di sicurezza Project Administrators o disporre delle autorizzazioni di modifica a livello di repository. Per altre informazioni, vedere Impostare le autorizzazioni del repository Git. |
Apri le impostazioni dei criteri del branch
Per aprire le impostazioni dei criteri del branch nel portale Web:
- Selezionare Repository>Rami.
- Trovare il ramo che si vuole gestire.
- Selezionare l'icona Altre opzioni accanto al ramo e quindi selezionare Criteri di ramo.
È anche possibile aprire le impostazioni dei criteri del ramo da Impostazioni progetto>Repository>Criteri>Criteri del ramo><Nome del ramo>.
I rami con criteri visualizzano un'icona dei criteri. Selezionare l'icona per passare direttamente alle impostazioni dei criteri del ramo.
È possibile esplorare l'elenco o cercare il ramo nella casella Nome ramo di ricerca .
Configurare i criteri nella pagina delle impostazioni del ramo. Utilizzare le sezioni seguenti per attivare ciascun criterio o aggiornare un criterio esistente.
Usa l'interfaccia della riga di comando di Azure DevOps (CLI) per elencare i criteri esistenti per un branch o un repository prima di creare o aggiornare un criterio.
Se si usa spesso l'interfaccia della riga di comando di Azure DevOps, impostare i valori predefiniti per l'organizzazione e il progetto con az devops configure --defaults. Quando si desidera applicare un criterio a un solo ramo, usare --branch-match-type exact. Usare prefix solo quando si desidera che il criterio si applichi a tutta una cartella di ramo come release/.
Elenca le politiche
Per elencare tutti i criteri in un progetto, usare az repos policy list.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Parametri
| Parametro |
Descrizione |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org, organization |
URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Esempio
Il comando seguente restituisce tutti i criteri di ramo applicati nel main ramo del repository Fabrikam, ID d28cd374-e7f0-4b1f-ad60-f349f155d47c. Ottenere l'ID del repository eseguendo az repos list.
In questo esempio viene utilizzata la configurazione predefinita seguente: 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
Visualizzare i dettagli di un criterio
Per visualizzare i dettagli di qualsiasi criterio, usare az repos policy show.
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org, organization |
URL dell'organizzazione di Azure DevOps. Configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Imposta un criterio minimo per i revisori
Richiedere l'approvazione da un numero minimo di revisori prima che una richiesta pull possa essere completata.
Per impostare i criteri, in Criteri di ramo impostare Richiedi un numero minimo di revisori su Sì. Immettere il numero richiesto di revisori e selezionare una delle opzioni seguenti:
Selezionare Consenti ai richiedenti di approvare le proprie modifiche per consentire all'autore di una richiesta pull di votarne l'approvazione. Altrimenti, il creatore può comunque esprimere un voto di Approva sulla PR, ma il suo voto non viene conteggiato ai fini del numero minimo di revisori.
Selezionare Impedisci al pusher più recente di approvare le proprie modifiche per applicare la separazione dei compiti. Per impostazione predefinita, chiunque disponga dell'autorizzazione push nel ramo di origine può sia aggiungere commit sia votare per l'approvazione della pull request. Se si seleziona questa opzione, il voto del pusher più recente non viene conteggiato, anche se in genere può approvare le proprie modifiche.
Selezionare Consenti completamento anche se alcuni revisori votano per attendere o rifiutare per permettere il completamento della richiesta pull anche se alcuni revisori votano contro. Il numero minimo di revisori deve comunque approvare.
- Sotto Quando vengono inviate nuove modifiche:
- Selezionare Richiedi almeno un'approvazione per ogni iterazione per richiedere almeno un voto di approvazione per l'ultima modifica del ramo di origine. L'approvazione dell'utente non viene conteggiata rispetto a qualsiasi iterazione precedente non approvata di cui è stato eseguito il push da tale utente. Di conseguenza, è necessaria un'altra approvazione per l'ultima iterazione da parte di un altro utente.
Richiedere almeno un'approvazione per ogni iterazione è disponibile in Azure DevOps Server 2022.1 e versioni successive.
- Selezionare Richiedi almeno un'approvazione nell'ultima iterazione per richiedere almeno un voto di approvazione per l'ultima modifica del ramo di origine.
- Selezionare Reimposta tutti i voti di approvazione (non reimposta i voti per rifiutare o attendere) per rimuovere tutti i voti di approvazione, ma mantenere i voti da rifiutare o attendere ogni volta che il ramo di origine cambia.
- Selezionare Reimposta tutti i voti dei revisori del codice per rimuovere tutti i voti dei revisori ogni volta che il ramo sorgente cambia, inclusi i voti per approvazione, rifiuto o attesa.
Se tutti gli altri criteri vengono rispettati, l'autore può completare la pull request quando viene approvata dal numero richiesto di revisori.
È possibile gestire il numero di approvatori richiesti per le richieste pull con az repos policy approver-count.
Creare criterio sul numero di approvatori
Per creare un criterio di conteggio degli approvatori, usare 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]
Parametri
| Parametro |
Descrizione |
allow-downvotes |
Consenti i voti negativi. Valori accettati: false, true.
Obbligatorio. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true.
Obbligatorio. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main.
Obbligatorio. |
creator-vote-counts |
Contare il voto dell'autore. Valori accettati: false, true.
Obbligatorio. |
enabled |
Abilitare il criterio. Valori accettati: false, true.
Obbligatorio. |
minimum-approver-count |
Numero minimo di approvatori necessari. Ad esempio: 2.
Obbligatorio. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Obbligatorio. |
reset-on-source-push |
Reimpostare i voti quando vengono apportate modifiche alla sorgente. Valori accettati: false, true.
Obbligatorio. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Esempio
Nell'esempio seguente viene definito il numero minimo di approvazioni richieste, 2, per le richieste pull nel ramo main del repository Fabrikam. La politica consente i voti contrari, vale a dire che le pull request possono essere completate anche se alcuni revisori votano per non approvare, purché il numero minimo di revisori voti per approvare. Le operazioni di push nel ramo di origine non resettano i voti. La politica consente anche agli autori di pull request di approvare le proprie pull request.
In questo esempio viene usata la configurazione az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"predefinita .
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
Aggiornare la politica di conteggio degli approvatori
Per aggiornare una policy di conteggio degli approvatori, utilizzare 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]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
allow-downvotes |
Consenti i voti negativi. Valori accettati: false, true. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
creator-vote-counts |
Contare il voto dell'autore. Valori accettati: false, true. |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
enabled |
Abilitare il criterio. Valori accettati: false, true. |
minimum-approver-count |
Numero minimo di approvatori necessari. Ad esempio: 2. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
reset-on-source-push |
Reimpostare i voti quando vengono apportate modifiche alla sorgente. Valori accettati: false, true. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Richiedere elementi di lavoro collegati
Per il monitoraggio della gestione degli elementi di lavoro, è possibile richiedere associazioni tra le richieste pull e gli elementi di lavoro. Il collegamento degli elementi di lavoro offre più contesto per le modifiche e garantisce che gli aggiornamenti vengano sottoposti al processo di rilevamento degli elementi di lavoro.
Per impostare i criteri, in Criteri di ramo, imposta Controlla la presenza di elementi di lavoro collegati su Attivo. Questa impostazione richiede di collegare gli elementi di lavoro a una richiesta pull per l'unione della stessa. Impostare l'impostazione Facoltativo per avvisare quando non sono presenti elementi di lavoro collegati, ma consentire il completamento della richiesta pull.
È possibile usare l'interfaccia della riga di comando di Azure az repos policy work-item-linking per creare e aggiornare i criteri di collegamento degli elementi di lavoro per un ramo o un repository.
Creare criteri di collegamento degli elementi di lavoro
Usare az repos policy work-item-linking create per creare un criterio di collegamento di un work item per un repository o i suoi rami.
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]
Parametri
| Parametro |
Descrizione |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true.
Obbligatorio. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main.
Obbligatorio. |
enabled |
Abilitare il criterio. Valori accettati: false, true.
Obbligatorio. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Aggiornare i criteri di collegamento degli elementi di lavoro
Usare az repos policy work-item-linking update per aggiornare i criteri di collegamento di un elemento di lavoro per un repository o uno o più rami.
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]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
enabled |
Abilitare il criterio. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Esempio
Nell'esempio seguente viene aggiornato il criterio ID 3 del ramo main del repository di Fabrikam per essere abilitato ma facoltativo. Nell'esempio viene usata la configurazione az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"predefinita .
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
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Il criterio Check for comment resolution controlla se tutti i commenti delle pull request sono risolti.
Impostare Verifica la risoluzione dei commenti su Sì per configurare un criterio di risoluzione dei commenti per il ramo. Selezionare quindi se impostare il criterio Obbligatorio o Facoltativo.
Per altre informazioni sull'uso dei commenti delle richieste pull, vedere Esaminare le richieste pull.
Usare Azure DevOps cli az repos policy comment-required per impostare e aggiornare i criteri di risoluzione dei commenti.
Per creare una politica di risoluzione dei commenti, utilizzare 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]
Parametri
| Parametro |
Descrizione |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true.
Obbligatorio. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main.
Obbligatorio. |
enabled |
Abilitare il criterio. Valori accettati: false, true.
Obbligatorio. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Obbligatorio. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Per aggiornare un criterio di risoluzione dei commenti, usare 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]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
enabled |
Abilitare il criterio. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Esempio
Nell'esempio seguente, l'ID 6 dei criteri di risoluzione dei commenti nel ramo main del repository Fabrikam viene aggiornato in modo da bloccare. I commenti devono essere risolti prima che le richieste pull possano essere unite. In questo esempio viene usata la configurazione az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"predefinita .
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
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Limitare i tipi di unione
Azure Repos supporta diverse strategie di merge e, per impostazione predefinita, consente tutte le strategie. Per mantenere una cronologia dei rami coerente, imporre una strategia di merge per il completamento delle pull request.
Impostare Limita tipi di unione su Sì per limitare i tipi di merge consentiti nel repository.
-
L'unione di base (senza fast-forward) crea un commit di unione nella destinazione i cui genitori sono i rami di destinazione e di origine.
-
L'unione di squash crea una cronologia lineare con un singolo commit nel ramo di destinazione che include le modifiche dal ramo di origine.
Altre informazioni sull'unione di squash e su come influisce sulla cronologia dei rami.
-
Rebase e fast-forward crea una cronologia lineare riproducendo i commit di origine nel ramo di destinazione senza commit di merge.
-
Il rebase con commit di merge ripete i commit dalla fonte sul bersaglio e crea anche un commit di merge.
Usare Azure DevOps CLI az repos policy merge-strategy per impostare e aggiornare il criterio relativo alla strategia di merge.
Creare criteri di strategia di unione
Usare az repos policy merge-strategy create per creare una strategia di unione.
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}]
Parametri
| Parametro |
Descrizione |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true.
Obbligatorio. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main.
Obbligatorio. |
enabled |
Abilitare il criterio. Valori accettati: false, true.
Obbligatorio. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Obbligatorio. |
allow-no-fast-forward |
Fusione di base senza avanzamento rapido. Mantiene la cronologia non lineare esattamente come è accaduto durante lo sviluppo. Valori accettati: false, true. |
allow-rebase |
Riassegnazione e fast-forward: Crea una cronologia lineare riproducendo i commit del ramo di origine sul ramo di destinazione senza un merge commit. Valori accettati: false, true. |
allow-rebase-merge |
Ribase con il commit del merge. Crea una cronologia semi lineare riproducendo i commit del branch sorgente sul branch di destinazione, per poi creare un commit di merge. Valori accettati: false, true. |
allow-squash |
Unione di squash. Crea una cronologia lineare condensando i commit del ramo di origine in un singolo nuovo commit nel ramo di destinazione. Valori accettati: false, true. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
use-squash-merge |
Esegui sempre il merge squash. Questa opzione non è disponibile per altri tipi di merge. Valori accettati: false, true.
Nota: use-squash-merge è deprecato e verrà rimosso in una versione futura. Utilizzare invece --allow-squash. |
Esempio
Nell'esempio seguente viene impostata una strategia di merge obbligatoria per le pull request nel ramo main del repository Fabrikam per consentire lo squash merge. In questo esempio viene usata la configurazione az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"predefinita .
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
Aggiornare una politica di strategia di fusione
Usare az repos policy merge-strategy update per aggiornare un criterio di strategia di unione.
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}]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
allow-no-fast-forward |
Fusione di base senza avanzamento rapido. Mantiene la cronologia non lineare esattamente come è accaduto durante lo sviluppo. Valori accettati: false, true. |
allow-rebase |
Riassegnazione e fast-forward: Crea una cronologia lineare riproducendo i commit del ramo di origine sul ramo di destinazione senza un merge commit. Valori accettati: false, true. |
allow-rebase-merge |
Ribase con il commit del merge. Crea una cronologia semi lineare riproducendo i commit del branch sorgente sul branch di destinazione, per poi creare un commit di merge. Valori accettati: false, true. |
allow-squash |
Unione di squash. Crea una cronologia lineare condensando i commit del ramo di origine in un singolo nuovo commit nel ramo di destinazione. Valori accettati: false, true. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
enabled |
Abilitare il criterio. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
use-squash-merge |
Se si desidera eseguire sempre uno squash merge. Questa opzione non funziona per altri tipi di merge. Valori accettati: false, true. |
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Impostare la convalida della compilazione
Impostare un criterio che richiede che le modifiche della PR vengano compilate correttamente prima che la PR possa essere completata.
Le politiche di costruzione riducono le interruzioni e mantengono i risultati dei test positivi. Anche i criteri di compilazione sono utili se si usa l'integrazione continua nei rami di sviluppo per individuare problemi tempestivamente.
Quando si imposta il trigger dei criteri su Automatico, un criterio di convalida della compilazione accoda una nuova compilazione quando si crea una nuova richiesta pull o si esegue il push delle modifiche a una richiesta pull esistente destinata al ramo. Se si imposta il trigger del criterio su Manual, gli utenti devono mettere in coda la build manualmente. In entrambi i casi, la policy valuta i risultati della compilazione per determinare se la pull request può essere completata.
Importante
Prima di specificare un criterio di convalida della compilazione, creare una pipeline di compilazione. Se non hai la pipeline, vedi Creare una pipeline di compilazione. Scegli il tipo di compilazione che corrisponde al tipo di progetto.
Per aggiungere un criterio di verifica della build
Selezionare il pulsante + accanto a Convalida compilazione.
Compilare il modulo Imposta criteri di compilazione :
- Selezionare la pipeline di compilazione.
È possibile impostare facoltativamente un filtro Percorso.
Scopri di più sui filtri di percorso nelle policy di ramo.
In Trigger selezionare Automatico (ogni volta che il ramo di origine viene aggiornato) o Manuale.
In Requisito dei criteri selezionare Obbligatorio o Facoltativo. Se si sceglie Obbligatorio, le compilazioni devono essere completate correttamente per completare i pull request. Scegliere Facoltativo per fornire una notifica dell'errore di compilazione e consentire comunque il completamento delle pull request.
Imposta una scadenza della build per garantire che gli aggiornamenti al tuo ramo protetto non interrompano le modifiche per i pull request aperti.
Immediatamente quando < il nome del ramo> viene aggiornato: questa opzione imposta lo stato della politica di build PR su non riuscita ogni volta che il ramo viene aggiornato e accoda nuovamente una compilazione. Questa impostazione garantisce che le modifiche alla richiesta di pull vengano compilate con successo anche se il ramo protetto cambia.
Questa opzione è ideale per i team i cui rami importanti hanno poche modifiche. I gruppi che lavorano in rami di sviluppo molto attivi potrebbero trovare disturbante dover aspettare per una build ogni volta che il ramo si aggiorna.
Dopo <n> ore se <il nome del ramo> è stato aggiornato: questa opzione fa scadere lo stato attuale della policy quando il ramo protetto viene aggiornato se la build riuscita è più vecchia della soglia immessa. Questa opzione è un compromesso tra richiedere sempre o mai un build quando il ramo protetto viene aggiornato. Questa scelta riduce il numero di compilazioni quando il branch protetto è aggiornato frequentemente.
Mai: gli aggiornamenti al ramo protetto non modificano lo stato della politica. Questo valore riduce il numero di compilazioni, ma può causare problemi durante il completamento delle richieste di pull che non sono state aggiornate di recente.
Immettere un nome visualizzato facoltativo per questo criterio di compilazione. Questo nome identifica la politica su Pagina criteri del ramo. Se non si specifica un nome visualizzato, la politica utilizza il nome della pipeline di compilazione.
- Seleziona Salva.
Quando il proprietario della pull request effettua il push delle modifiche che vengono compilate correttamente, lo stato della politica si aggiorna.
Se si dispone di un criterio di compilazione Immediatamente quando <il nome del ramo> viene aggiornato o Dopo <n> ore se <il nome del ramo> è stato aggiornato, lo stato del criterio si aggiorna quando il ramo protetto viene aggiornato, se la compilazione precedente non è più valida.
Usare Azure DevOps cli az repos policy build per impostare e aggiornare i criteri di convalida della compilazione.
Creare una politica di convalida della compilazione
Usare az repos policy build create per creare un criterio di convalida della compilazione.
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]
Parametri
| Parametro |
Descrizione |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true.
Obbligatorio. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main.
Obbligatorio. |
build-definition-id |
ID della definizione di compilazione.
Obbligatorio. |
display-name |
Nome visualizzato per questo criterio di build per identificare il criterio. Ad esempio: Manual queue policy.
Obbligatorio. |
enabled |
Abilitare il criterio. Valori accettati: false, true.
Obbligatorio. |
manual-queue-only |
Indica se consentire solo la coda manuale di compilazioni. Valori accettati: false, true.
Obbligatorio. |
queue-on-source-update-only |
Indica se mettere in coda le compilazioni solo quando ci sono aggiornamenti dell'origine. Valori accettati: false, true.
Obbligatorio. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Obbligatorio. |
valid-duration |
Durata della validità della politica, in minuti.
Nota:valid-duration deve essere compreso tra zero e un anno e deve essere zero quando --queue-on-source-update-only è false.
Obbligatorio. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Percorso su cui applicare i criteri di applicazione. Supporta percorsi assoluti, caratteri speciali (metacaratteri) e più percorsi supportati, separati da ;. Esempi: /WebApp/Models/Data.cs, /WebApp/*o o *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Esempio
Nell'esempio seguente viene impostato un criterio di compilazione obbligatorio per le richieste pull nel main ramo del repository Fabrikam. La politica richiede una riuscita della definizione di compilazione con ID 1 e consente solo l'accodamento manuale della compilazione. In questo esempio viene usata la configurazione az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"predefinita .
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
Aggiornare una politica di convalida della compilazione
Usare az repos policy build update per aggiornare un criterio di convalida della compilazione.
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]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
build-definition-id |
ID della definizione di compilazione. |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
display-name |
Nome visualizzato per questo criterio di build per identificare il criterio. Ad esempio: Manual queue policy. |
enabled |
Abilitare il criterio. Valori accettati: false, true. |
manual-queue-only |
Indica se consentire solo la coda manuale di compilazioni. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Percorsi su cui applicare la politica. Supporta percorsi assoluti, caratteri speciali (metacaratteri) e più percorsi supportati, separati da ;. Esempi: /WebApp/Models/Data.cs, /WebApp/*o o *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
queue-on-source-update-only |
Indica se mettere in coda le compilazioni solo quando ci sono aggiornamenti dell'origine. Valori accettati: false, true. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
valid-duration |
Durata della validità della politica, in minuti. |
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Richiedi controlli di stato
I servizi esterni possono utilizzare l'API Stato richieste di pull per pubblicare lo stato dettagliato delle vostre richieste di pull. La politica del ramo per i servizi aggiuntivi consente a tali servizi esterni di partecipare al flusso di lavoro PR e di stabilire i requisiti della politica.
Per configurare un criterio di controllo dello stato:
- Assicurarsi che il servizio possa pubblicare lo stato della pull request in Azure Repos.
- In Criteri di ramo, in Controlli di stato selezionare +.
- In Stato da controllare selezionare il controllo pubblicato nell'elenco. Se il servizio non ha ancora pubblicato uno stato, digita direttamente il valore
genre/name.
- Impostare Il requisito dei criteri su Obbligatorio o Facoltativo.
- Facoltativamente, configura identità autorizzata, condizioni di reimpostazione, applicabilità dei criteri e filtro del percorso.
- Usare Applica per impostazione predefinita se il criterio deve essere applicato non appena viene creata la richiesta pull.
- Usare Condizionale se il criterio deve essere applicato solo dopo la pubblicazione del primo stato.
- Creare o aggiornare una richiesta pull destinata al ramo e verificare che i criteri siano visualizzati nella sezione Criteri della richiesta pull.
Per i controlli predefiniti dei servizi di Azure DevOps e i relativi genre/name identificatori, vedere Controlli di stato delle richieste pull disponibili. Per una guida completa alla configurazione di un servizio esterno, vedi Configurare un criterio del ramo per un servizio esterno.
Se una nuova integrazione non viene ancora visualizzata nell'elenco a discesa, pubblicare lo stato una volta dal servizio e quindi aggiungere il criterio, oppure digitare direttamente il valore genre/name.
Includere automaticamente i revisori
È possibile aggiungere automaticamente revisori alle richieste pull che modificano i file in directory e file specifici o a tutte le richieste pull in un repository.
Selezionare il + pulsante accanto a Revisori inclusi automaticamente.
Compilare la schermata Aggiungi nuova politica revisore.
Aggiungere utenti e gruppi ai revisori.
Selezionare Facoltativo se si desidera aggiungere automaticamente i revisori, ma non richiedere la loro approvazione per completare la pull request.
In alternativa, selezionare Obbligatorio se le pull request non possono essere completate fino a quando:
- Ogni utente aggiunto come revisore approva le modifiche.
- Almeno una persona in ogni gruppo aggiunta come revisore approva le modifiche.
- Se è necessario un solo gruppo, il numero minimo di membri specificati approva le modifiche.
Specificare i file e le cartelle che richiedono i revisori inclusi automaticamente. Lasciare vuoto questo campo per richiedere i revisori per tutte le pull request nel ramo.
Selezionare Consenti ai richiedenti di approvare le proprie modifiche se i proprietari delle richieste pull possono votare per approvare le proprie richieste pull per soddisfare questo criterio.
È possibile specificare un messaggio del feed attività che appare nella pull request.
Seleziona Salva.
Usare Azure DevOps cli az repos policy required-reviewer per impostare e aggiornare i criteri di revisore necessari.
Creare una politica di revisore obbligatorio
Usare az repos policy required-reviewer create per creare un criterio di revisore obbligatorio.
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]
Parametri
| Parametro |
Descrizione |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true.
Obbligatorio. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main.
Obbligatorio. |
enabled |
Abilitare il criterio. Valori accettati: false, true.
Obbligatorio. |
message |
Messaggio del feed di attività visualizzato nella pull request.
Obbligatorio. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Obbligatorio. |
required-reviewer-ids |
Indirizzi di posta elettronica dei revisori separati da ;. Ad esempio: john@contoso.com;alice@contoso.com. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Percorsi su cui applicare la politica. Supporta percorsi assoluti, caratteri speciali (metacaratteri) e più percorsi supportati, separati da ;. Esempi: /WebApp/Models/Data.cs, /WebApp/*o o *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
Esempio
L'esempio seguente imposta Jamal Hartnett come revisore obbligatorio per le pull request nel branch main del repository Fabrikam. In questo esempio viene usata la configurazione az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"predefinita .
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
Aggiornare una politica di revisore obbligatorio
Usare az repos policy required-reviewer update per aggiornare una politica di revisione obbligatoria.
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]
Parametri
| Parametro |
Descrizione |
id, policy-id |
ID identificativo del criterio.
Obbligatorio. |
blocking |
Blocca se il criterio non viene soddisfatto. Valori accettati: false, true. |
branch |
Nome del ramo per filtrare i risultati in base alla corrispondenza esatta. Il --repository-id parametro è necessario per usare il filtro di ramo. Ad esempio: --branch main. |
branch-match-type |
Utilizzare l'argomento branch per applicare la politica. Se il valore è exact, il criterio si applica a un ramo che corrisponde esattamente all'argomento --branch . Se il valore è prefix, il criterio viene applicato in tutte le cartelle di rami che corrispondono al prefisso nell'argomento --branch . Valori accettati: exact, prefix. Valore predefinito: exact |
detect |
Rilevamento automatico dell'organizzazione. Valori accettati: false, true. |
enabled |
Abilitare il criterio. Valori accettati: false, true. |
message |
Messaggio del feed di attività visualizzato nella pull request. |
org |
URL dell'organizzazione di Azure DevOps. È possibile configurare l'organizzazione predefinita usando az devops configure -d organization=<ORG_URL>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. Esempio: https://dev.azure.com/MyOrganizationName/. |
path-filter |
Percorsi su cui applicare la politica. Supporta percorsi assoluti, caratteri speciali (metacaratteri) e più percorsi supportati, separati da ;. Esempi: /WebApp/Models/Data.cs, /WebApp/*o o *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nome o ID del progetto. Configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID>.
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
repository-id |
ID del repository per filtrare i risultati in base alla corrispondenza esatta. Ad esempio: --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
required-reviewer-ids |
Indirizzi di posta elettronica dei revisori separati da ;. Ad esempio: john@contoso.com;alice@contoso.com. |
subscription |
Nome o ID della sottoscrizione. Configurare la sottoscrizione predefinita usando az account set -s <NAME_OR_ID>. |
I comandi dell'interfaccia della riga di comando di Azure DevOps non sono supportati per Azure DevOps Server.
Consenti di ignorare i criteri quando necessario
In alcuni casi, potrebbe essere necessario ignorare i requisiti dei criteri. Le autorizzazioni di bypass consentono di eseguire direttamente il push delle modifiche in un branch o di completare le richieste pull che non rispettano le politiche del branch. È possibile concedere autorizzazioni di bypass a un utente o a un gruppo e definire l'ambito di tali autorizzazioni per un intero progetto, un repository o un singolo ramo.
Due autorizzazioni consentono agli utenti di ignorare i criteri di ramo in modi diversi:
Le regole di bypass per il completamento delle richieste pull si applicano solo al completamento della richiesta pull. Gli utenti con questa autorizzazione possono completare le richieste pull anche se le richieste pull non soddisfano i criteri.
Ignorare i criteri quando si esegue il push si applica ai push dai repository locali e alle modifiche apportate via Web. Gli utenti con questa autorizzazione possono eseguire il push delle modifiche direttamente nei rami protetti senza soddisfare i requisiti dei criteri.
Per altre informazioni sulla gestione di queste autorizzazioni, vedere Autorizzazioni Git.
Importante
Prestare attenzione quando si concede la possibilità di ignorare i criteri, in particolare a livello di repository e progetto. I criteri sono un elemento fondamentale della gestione sicura e conforme del codice sorgente.
Usare i filtri di percorso con i criteri di ramo
Alcuni criteri del ramo supportano i filtri di percorso. Se si imposta un filtro di percorso, il criterio si applica solo ai file che corrispondono al filtro. Lascia vuoto questo campo per applicare il criterio a tutti i file nel ramo.
È possibile specificare percorsi assoluti (il percorso deve iniziare con / o con un carattere jolly) e caratteri jolly.
Esempi:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
È possibile specificare più percorsi usando ; come separatore.
Esempio:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Se anteponi ! ai percorsi, li escludi se altrimenti sarebbero inclusi.
Esempio:
-
/WebApp/*;!/WebApp/Tests/* include tutti i file in /WebApp ad eccezione dei file in /WebApp/Tests
-
!/WebApp/Tests/* non specifica alcun file, poiché non è incluso alcun elemento per primo
L'ordine dei filtri è significativo. Applicare filtri da sinistra a destra.
Risolvere i problemi relativi ai criteri del ramo
Posso eseguire il push delle modifiche direttamente sulle branche che hanno politiche di ramo?
Non è possibile eseguire il push delle modifiche direttamente ai rami con i criteri di ramo richiesti, a meno che non si disponga delle autorizzazioni per ignorare i criteri dei rami. È possibile apportare modifiche solo a questi rami tramite richieste pull. È possibile eseguire il push delle modifiche direttamente ai rami con criteri di ramo facoltativi , se non hanno criteri di ramo obbligatori.
Che cos'è il completamento automatico?
I rami per cui sono configurati criteri del ramo per le pull request hanno il pulsante Attiva completamento automatico. Selezionare questa opzione per impostare una richiesta pull per il completamento automatico una volta soddisfatti tutti i criteri. Il completamento automatico è utile quando non si prevedono problemi con le modifiche.
Quando vengono controllate le condizioni dei criteri della ramificazione?
Il server rivaluta i criteri di ramo quando gli autori delle pull request inviano modifiche e quando i revisori votano. Se un criterio attiva una compilazione, lo stato della compilazione viene impostato su in attesa fino al completamento della compilazione.
È possibile usare le definizioni di compilazione XAML nei criteri di ramificazione?
No, non è possibile usare le definizioni di compilazione XAML nelle politiche di ramo.
Quali caratteri jolly è possibile usare per i revisori richiesti del codice?
Gli asterischi singoli * corrispondono a un numero qualsiasi di caratteri, inclusi sia gli slash / sia i backslash \. I punti interrogativi ? corrispondono a qualsiasi singolo carattere.
Esempi:
-
*.sql corrisponde a tutti i file con l'estensione .sql .
-
/ConsoleApplication/* corrisponde a tutti i file nella cartella denominata ConsoleApplication.
- Il file
/.gitattributes corrisponde al file di .gitattributes* nella radice del repository.
-
*/.gitignore corrisponde a qualsiasi file .gitignore nel repo.
I percorsi dei revisori del codice necessari fanno distinzione tra maiuscole e minuscole?
No, le politiche dei rami non fanno distinzione tra maiuscole e minuscole.
È possibile aggiungere gli utenti a un gruppo e quindi aggiungere il gruppo come revisore. Qualsiasi membro del gruppo può quindi approvare per soddisfare i requisiti dei criteri.
Ho le autorizzazioni per i criteri di bypass. Perché vengono visualizzati ancora errori dei criteri nello stato della richiesta pull?
Il sistema valuta sempre i criteri configurati per le modifiche delle richieste pull. Per gli utenti che dispongono di autorizzazioni per ignorare i criteri, lo stato dei criteri segnalato è solo consultivo. Se l'utente con autorizzazioni di bypass approva, lo stato di errore non blocca il completamento della richiesta pull.
Perché non è possibile completare le richieste pull quando si imposta "Consenti ai richiedenti di approvare le proprie modifiche"?
Sia il criterio Richiedi un numero minimo di revisori che il criterio Revisori inclusi automaticamente hanno le opzioni Consenti ai richiedenti di approvare le proprie modifiche. In ogni criterio, l'impostazione si applica solo a tale criterio. L'impostazione non influisce sugli altri criteri.
Ad esempio, per la richiesta pull sono impostati i criteri seguenti:
-
Richiedere un numero minimo di revisori richiede almeno un revisore.
-
I revisori inclusi automaticamente richiedono che l'utente o un team di cui si è parte siano assegnati come revisori.
-
I revisori inclusi automaticamente hanno Consenti ai richiedenti di approvare le proprie modifiche abilitato.
- "Richiedere un numero minimo di revisori non ha Consenti ai richiedenti di approvare le proprie modifiche abilitato."
In questo caso, la tua approvazione soddisfa i revisori inclusi automaticamente, ma non Richiedi un numero minimo di revisori, quindi non è possibile completare la richiesta pull.
Altri criteri potrebbero impedire l'approvazione delle proprie modifiche, anche se è impostata l'opzione Consenti ai richiedenti di approvare le proprie modifiche . Ad esempio, Impedisci al pusher più recente di approvare le proprie modifiche.
Cosa accade quando un filtro di percorso non inizia con / o con un carattere jolly?
Un percorso nei filtri del percorso che non inizia con / o con un wildcard non ha alcun effetto. Il filtro di percorso restituisce come se tale percorso non fosse specificato. Un percorso di questo tipo non può corrispondere al percorso file assoluto che inizia con /.
Se si configura il server MCP Azure DevOps, è possibile usare il linguaggio naturale per raccogliere repository, ramo, richiesta pull e contesto di compilazione prima di aggiornare i criteri dei rami in Azure DevOps Services.
Il server MCP Azure DevOps richiede Azure DevOps Services, la modalità agente nell'assistente intelligenza artificiale e Node.js 20.0+. La documentazione attuale di MCP non descrive operazioni dirette di lettura o scrittura dei criteri dei rami, quindi usa il portale Web di Azure DevOps o la CLI di Azure DevOps per creare e aggiornare i criteri.
| Attività |
Richiesta di esempio |
| Elencare i rami del repository |
List the branches in repo <Contoso.Web> in project <Contoso> |
| Esaminare le pull request prima di inasprire i criteri |
What pull requests require my review in project <Contoso>? |
| Esamina una pull request e gli elementi di lavoro collegati |
Get details for pull request <67> and its linked work items in project <Contoso> |
| Controllare lo stato della compilazione prima di rendere necessaria la convalida della compilazione |
Get the latest build status for pipeline <Contoso-CI> in project <Contoso> |
Annotazioni
Se si usa Visual Studio Code, la modalità agente è particolarmente utile per raccogliere il contesto del progetto necessario prima di aggiornare i criteri dei rami.
Contenuti correlati