Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
I criteri dei rami aiutano i team a proteggere i rami importanti dello sviluppo. Le politiche applicano gli standard del team sulla qualità del codice e sulla gestione delle modifiche. Questo articolo descrive come impostare e gestire i criteri dei rami. Per una panoramica di tutti i criteri e le impostazioni dei repository e dei rami, vedere Impostazioni e criteri del repository Git.
Un ramo con i criteri necessari configurati non può essere eliminato e richiede richieste pull per tutte le modifiche.
Prerequisiti
- Per impostare i criteri di filiale, devi essere membro del gruppo di sicurezza Project Administrators o disporre delle autorizzazioni di modifica a livello di repository sui criteri . Per altre informazioni, vedere Impostare le autorizzazioni del repository Git.
Per gestire i criteri dei rami, selezionare Repos>Rami per aprire la pagina Rami nel Portale Web.
È anche possibile accedere alle impostazioni dei criteri del ramo con Impostazioni del progetto>Repository>Criteri>Criteri del ramo><Nome del ramo>.
I rami con criteri visualizzano un'icona dei criteri. È possibile selezionare l'icona per passare direttamente alle impostazioni dei criteri del ramo.
Per impostare i criteri di ramo, individuare il ramo che si vuole gestire. È possibile esplorare l'elenco o cercare la tua filiale nella casella Cerca nome ramo in alto a destra.
Selezionare l'icona Altre opzioni accanto al ramo e quindi selezionare Criteri ramo dal menu di scelta rapida.
Configurare i criteri nella pagina delle impostazioni del ramo. Vedere le sezioni seguenti per le descrizioni e le istruzioni per ogni tipo di criterio.
È possibile usare l'interfaccia della riga di comando di Azure DevOps per elencare o visualizzare i criteri per un ramo o un repository.
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]
[--query-examples]
[--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. È 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. È possibile configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID> .
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
query-examples |
Stringa JMESPath consigliata. È possibile copiare una delle query e incollarla dopo il --query parametro tra virgolette doppie per visualizzare i risultati. È possibile aggiungere una o più parole chiave posizionali in modo che i suggerimenti siano basati su queste parole chiave. |
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. È possibile 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
. È possibile 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]
[--query-examples]
[--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. È 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. È possibile configurare il progetto predefinito usando az devops configure -d project=<NAME_OR_ID> .
Obbligatorio se non è configurato come predefinito o selezionato tramite git config. |
query-examples |
Stringa JMESPath consigliata. È possibile copiare una delle query e incollarla dopo il --query parametro tra virgolette doppie per visualizzare i risultati. È possibile aggiungere una o più parole chiave posizionali in modo che i suggerimenti siano basati su queste parole chiave. |
subscription |
Nome o ID della sottoscrizione. È possibile 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 un numero minimo di revisori
Le revisioni del codice sono importanti per i progetti di sviluppo software. Per assicurarsi che i team esaminino e approvino i pull request, puoi richiedere l'approvazione da un numero minimo di revisori. I criteri di base richiedono che un numero specificato di revisori approvi il codice, senza rifiuto.
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. In caso contrario, l'autore può comunque votare Approva sulla pull request, ma il loro voto non viene conteggiato nel 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 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.
- Sotto Quando vengono eseguite 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. È possibile 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. È possibile 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. È possibile 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. È possibile 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.
Verificare la presenza di 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. È possibile 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. È possibile 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 la politica. 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. È possibile 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. È possibile 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.
Configurare un criterio di risoluzione dei commenti per il ramo impostando Verifica la risoluzione dei commenti su Sì. Selezionare quindi se impostare il criterio Obbligatorio o Facoltativo.
Per ulteriori informazioni sull'uso dei commenti nelle pull request, vedere Esaminare le pull request.
È possibile usare l'interfaccia della riga di comando di Azure DevOps 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 la politica. 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. È possibile 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. È possibile 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. È possibile 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. È possibile 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 include diverse strategie di merge e, per impostazione predefinita, sono consentite tutte. È possibile mantenere una cronologia coerente dei rami applicando una strategia di merge per il completamento della pull request.
Impostare Limita tipi di unione su Sì per limitare i tipi di unione da consentire 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.
-
Il squash merge crea una cronologia lineare con un singolo commit nel ramo di destinazione contenente le modifiche del 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.
È possibile usare l'interfaccia della riga di comando di Azure DevOps az repos policy merge-strategy per impostare e aggiornare i criteri di 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 la politica. 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. È possibile 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. È possibile 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 commit di 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 la politica. 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. È possibile 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. È possibile 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.
Validazione della build
È possibile impostare un criterio che richiede modifiche alla richiesta pull per essere compilate correttamente prima del completamento della richiesta pull.
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.
Un criterio di convalida della compilazione accoda una nuova compilazione quando viene creata una nuova richiesta pull o le modifiche vengono inoltrate a una richiesta pull esistente destinata al ramo. La politica di compilazione valuta i risultati della compilazione per determinare se la richiesta pull può essere completata.
Importante
Prima di specificare un criterio di convalida della compilazione, assicurati di avere 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.
È possibile usare l'interfaccia della riga di comando di Azure DevOps 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 la politica. 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. È possibile 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. È possibile 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 la politica. Valori accettati: false , true . |
manual-queue-only |
Indica se consentire solo la messa in coda manuale delle 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. È possibile 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 accodare le compilazioni solo quando l'origine viene aggiornata. 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. È possibile 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.
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 istruzioni sulla configurazione di questo criterio, vedere Configurare un criterio di ramo per un servizio esterno.
Includi automaticamente revisori del codice
È 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.
È possibile usare l'interfaccia della riga di comando di Azure DevOps 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: [email protected];[email protected] . |
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. È possibile 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. È possibile 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 [email protected] --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. È possibile 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: [email protected];[email protected] . |
subscription |
Nome o ID della sottoscrizione. È possibile 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.
Ignorare i criteri delle branche
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. È possibile definire l'ambito delle autorizzazioni di bypass 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.
Filtri di percorso
Diverse politiche di ramo offrono filtri di percorso. Se viene impostato un filtro di percorso, il criterio si applica solo ai file che corrispondono al filtro del percorso. Lasciare vuoto questo campo significa che il criterio si applica 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
I percorsi preceduti !
da vengono esclusi se altrimenti verrebbero 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. I filtri vengono applicati da sinistra a destra.
Domande e risposte
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. Le modifiche a questi rami possono essere apportate solo tramite richieste di 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?
Le pull request nei rami con i criteri di ramo configurati hanno il pulsante Imposta completamento automatico. Selezionare questa opzione per completare automaticamente la richiesta pull dopo aver soddisfatto tutti i criteri. Il completamento automatico è utile quando non si prevedono problemi con le modifiche.
Quando vengono controllate le condizioni dei criteri della ramificazione?
Le politiche dei rami si rivalutano sul server quando i proprietari delle pull request applicano 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?
Un singolo asterisco *
corrisponde a un numero qualsiasi di caratteri, inclusi gli slash /
e 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 ancora visualizzati fallimenti dei criteri nello stato della pull request?
Le policy configurate vengono sempre valutate per le modifiche delle pull request. Per gli utenti che dispongono di autorizzazioni per bypassare le politiche, lo stato dei criteri segnalato è solo a scopo informativo. Se l'utente con autorizzazioni di bypass approva, lo stato di errore non blocca il completamento della richiesta pull.
Perché non posso completare le mie pull request quando è impostato "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.
Potrebbero essere presenti anche altri criteri, ad esempio Impedisci al push più recente di approvare le proprie modifiche, che impediscono l'approvazione delle proprie modifiche anche se è impostata l'opzione Consenti ai richiedenti di approvare le proprie modifiche .
Cosa accade quando il percorso nei filtri di percorso non inizia con /
o con un carattere speciale?
Il percorso nei filtri di percorso che non inizia con /
o con un carattere jolly non ha alcun effetto, e il filtro di percorso viene valutato come se il percorso non fosse specificato. Un percorso di questo tipo non può corrispondere al percorso file assoluto che inizia con /
.
Articoli correlati