Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Utilisez des stratégies de branche pour protéger les branches importantes en exigeant des pull requests, des examinateurs, des compilations et d’autres vérifications avant de fusionner les modifications. Cet article explique comment configurer et gérer des stratégies de branche dans le portail web Azure DevOps et Azure DevOps CLI. Pour obtenir un résumé des stratégies de branche disponibles et des conseils de branchement, consultez À propos des branches et des stratégies de branche.
Pour obtenir un guide de sécurité complet couvrant les stratégies de branche, le contrôle d’accès au référentiel, la signature de validation et les scénarios d’implémentation réels, consultez référentiels sécurisés et demandes de tirage ( pull request).
Vous ne pouvez pas supprimer une branche sur laquelle des stratégies obligatoires sont configurées, et toutes les modifications doivent être effectuées via des pull requests (PR).
Prérequis
| Requirement |
Détails |
| Permissions |
Soyez membre du groupe de sécurité Project Administrators, ou disposez d’autorisations Modifier les stratégies au niveau du dépôt. Pour plus d’informations, consultez Configurer les autorisations du dépôt Git. |
| configuration de l’interface CLI Azure DevOps (facultatif) |
Pour utiliser les commandes Azure DevOps CLI az repos policy, suivez la procédure Prise en main d’Azure DevOps CLI. |
| Ciblage de référentiel pour l’interface CLI (facultatif) |
Avant de créer ou de mettre à jour des stratégies dans l’interface CLI, identifiez l’ID du référentiel en exécutant az repos list. Pour éviter de répéter --org et --project, définissez des valeurs par défaut avec az devops configure --defaults. |
| Dépendances de stratégie |
Avant de configurer la validation de build, disposez d’un pipeline de build prêt. Avant de configurer les vérifications d’état, assurez-vous que le service externe ou l’intégration native peut déjà publier un état de pull request. |
| Configuration de l’assistance à l’IA (facultatif) |
Pour utiliser l’assistance ia avec Azure DevOps MCP Server, utilisez Azure DevOps Services, activez le mode agent dans votre assistant IA et installez Node.js 20.0+. Pour plus d’informations, consultez Activer l’assistance IA avec Azure DevOps MCP Server. |
| Requirement |
Détails |
| Permissions |
Être membre du groupe de sécurité Project Administrators, ou disposer des autorisations Modifier les stratégies au niveau du dépôt. Pour plus d’informations, consultez Configurer les autorisations du dépôt Git. |
Ouvrir les paramètres de stratégie de branche
Pour ouvrir les paramètres de stratégie de branche dans le portail web :
- Sélectionnez Référentiels >Branches.
- Recherchez la branche que vous souhaitez gérer.
- Sélectionnez l’icône Autres options en regard de la branche, puis sélectionnez Stratégies de branche.
Vous pouvez également ouvrir les paramètres de stratégie de branche à partir de Paramètres du projet>Dépôt>Stratégies>Stratégies de branche><Nom de la branche>.
Les branches qui ont des stratégies affichent une icône de stratégie. Sélectionnez l’icône pour accéder directement aux paramètres de stratégie de la branche.
Vous pouvez parcourir la liste ou rechercher la branche dans la zone nom de la branche de recherche .
Configurez des stratégies sur la page des paramètres de la branche. Utilisez les sections suivantes pour activer ou mettre à jour une stratégie existante.
Utilisez Azure DevOps CLI pour répertorier les stratégies existantes pour une branche ou un référentiel avant de créer ou de mettre à jour une stratégie.
Si vous utilisez Azure DevOps CLI souvent, définissez les valeurs par défaut pour votre organisation et votre projet avec az devops configure --defaults. Lorsque vous souhaitez qu’une stratégie s’applique uniquement à une branche, utilisez --branch-match-type exact. Utilisez prefix uniquement lorsque vous souhaitez que la stratégie s’applique dans un dossier de branche tel que release/.
Répertorier les stratégies
Pour répertorier toutes les stratégies d’un projet, utilisez az repos policy list.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Paramètres
| Paramètre |
Description |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org, organization |
URL de l’organisation Azure DevOps. Configurez l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Exemple
La commande suivante retourne toutes les stratégies de branche en vigueur dans la main branche du référentiel Fabrikam, IDd28cd374-e7f0-4b1f-ad60-f349f155d47c. Obtenez l’ID du référentiel en exécutant az repos list.
Cet exemple utilise la configuration par défaut suivante : 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
Afficher les détails d’une stratégie
Pour afficher les détails de n’importe quelle stratégie, utilisez az repos policy show.
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org, organization |
URL de l’organisation Azure DevOps. Configurez l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
Définir une stratégie de réviseur minimale
Exiger l’approbation d’un nombre minimum de réviseurs avant qu’une pull request puisse être finalisée.
Pour définir la stratégie, sous Stratégies de branche, définissez Exiger un nombre minimal de réviseurssur 'Activé'. Entrez le nombre requis de réviseurs, puis sélectionnez l’une des options suivantes :
Sélectionnez Autoriser les demandeurs à approuver leurs propres modifications pour permettre au créateur d’une demande de tirage de voter sur son approbation. Sinon, le créateur peut toujours voter Approuver sur la PR, mais son vote ne compte pas dans le nombre minimum de réviseurs.
Sélectionnez Empêcher l'auteur des dernières modifications d’approuver ses propres changements pour appliquer la séparation des responsabilités. Par défaut, toute personne disposant d’une autorisation push sur la branche source peut ajouter des commits et voter sur l’approbation de demande de tirage. La sélection de cette option signifie que le vote du pusher le plus récent ne compte pas, même s’il peut généralement approuver ses propres modifications.
Sélectionnez Autoriser l’achèvement même si certains réviseurs votent pour attendre ou rejeter pour autoriser l’achèvement de la demande de tirage, même si certains réviseurs votent contre l’approbation. Le nombre minimal de réviseurs doit encore donner son approbation.
- Sous Quand de nouvelles modifications sont poussées :
- Sélectionnez Exiger au moins une approbation sur la dernière itération pour exiger au moins un vote d'approbation pour la dernière modification de la branche source. L'approbation de l'utilisateur n'est pas prise en compte pour les itérations précédentes non approuvées qu'il a poussées. Par conséquent, un autre utilisateur doit approuver la dernière itération.
Exiger au moins une approbation à chaque itération est disponible dans Azure DevOps Server 2022.1 et versions ultérieures.
- Sélectionnez Exiger au moins une approbation sur la dernière itération pour exiger au moins un vote d’approbation pour la dernière modification de la branche source.
- Sélectionnez Réinitialiser tous les votes d'approbation (ne réinitialise pas les votes pour rejeter ou attendre) pour supprimer tous les votes d'approbation, mais conserver les votes pour rejeter ou attendre, chaque fois que la branche source change,
- Sélectionnez Réinitialiser tous les votes du réviseur de code pour supprimer tous les votes du réviseur chaque fois que la branche source change, y compris les votes pour approuver, rejeter ou attendre.
Si toutes les autres stratégies passent, le créateur peut terminer la demande de tirage lorsque le nombre requis de réviseurs l’approuve.
Vous pouvez gérer le nombre d'approbateurs requis pour les pull requests avec az repos policy approver-count.
Créer une stratégie de nombre d’approbateurs
Pour créer une stratégie de nombre d’approbateurs, utilisez 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]
Paramètres
| Paramètre |
Description |
allow-downvotes |
Autoriser les votes négatifs. Valeurs acceptées : false, true.
Requis. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true.
Requis. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main.
Requis. |
creator-vote-counts |
Compter le vote du créateur. Valeurs acceptées : false, true.
Requis. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true.
Requis. |
minimum-approver-count |
Nombre minimal d’approbateurs requis. Par exemple : 2.
Requis. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Requis. |
reset-on-source-push |
Réinitialisez les votes lorsque les modifications sont envoyées à la source. Valeurs acceptées : false, true.
Requis. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Exemple
L'exemple suivant définit le nombre minimal d'approbations requises à 2 pour les pull requests dans la branche main du référentiel Fabrikam. La stratégie autorise les votes inférieurs, ce qui signifie que les demandes de tirage peuvent être effectuées même si certains réviseurs votent pour ne pas approuver, tant que le nombre minimal vote pour approuver. Les envois vers la branche source ne réinitialisent pas les votes. La stratégie permet également aux créateurs de pull requests d’approuver leurs propres pull requests.
Cet exemple utilise la configuration az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber" par défaut.
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
Mettre à jour la règle du nombre d'approbateurs
Pour mettre à jour une stratégie de nombre d’approbateurs, utilisez 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]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
allow-downvotes |
Autoriser les votes négatifs. Valeurs acceptées : false, true. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
creator-vote-counts |
Compter le vote du créateur. Valeurs acceptées : false, true. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true. |
minimum-approver-count |
Nombre minimal d’approbateurs requis. Par exemple : 2. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
reset-on-source-push |
Réinitialisez les votes lorsque les modifications sont envoyées à la source. Valeurs acceptées : false, true. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
Exiger des éléments de travail liés
Pour le suivi de la gestion des éléments de travail, vous pouvez exiger des associations entre les PR et les éléments de travail. La liaison d’éléments de travail fournit un contexte supplémentaire pour vos modifications et garantit que les mises à jour passent par votre processus de suivi des éléments de travail.
Pour définir la stratégie, sous Stratégies de branche, définissez Vérifier les éléments de travail liés sur Activé. Ce paramètre nécessite que les éléments de travail soient liés à une demande de tirage pour que la demande de tirage soit fusionnée. Définir le paramètre Facultatif pour avertir en cas d’absence d’éléments de travail liés, mais permettre la finalisation de la pull request.
Vous pouvez utiliser Azure CLI az repos policy work-item-linking pour créer et mettre à jour des stratégies de liaison d’élément de travail pour une branche ou un référentiel.
Créer une stratégie de liaison d’élément de travail
Utilisez az repos policy work-item-linking create pour créer une politique de liaison des éléments de travail pour un dépôt ou des branches.
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]
Paramètres
| Paramètre |
Description |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true.
Requis. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main.
Requis. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true.
Requis. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Mettre à jour la stratégie de liaison d’éléments de travail
Utilisez az repos policy work-item-linking update pour mettre à jour une politique de liaison d’élément de travail pour un référentiel ou une ou plusieurs branches.
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]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Exemple
L’exemple suivant met à jour l’ID 3 de stratégie pour la main branche du référentiel Fabrikam à activer, mais facultatif. L’exemple utilise la configuration az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber" par défaut.
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
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
La stratégie de résolution de commentaires vérifie si tous les commentaires de demande de tirage sont résolus.
Définissez « Vérifier la résolution des commentaires » sur « Activé » pour configurer une stratégie de résolution des commentaires pour votre branche. Ensuite, indiquez si la stratégie doit être obligatoire ou facultative.
Pour plus d’informations sur l’utilisation des commentaires de pull request, consultez Passer en revue les pull requests.
Utilisez Azure DevOps CLI az repos policy comment-required pour définir et mettre à jour la stratégie de résolution des commentaires.
Pour créer une stratégie de résolution de commentaires, utilisez 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]
Paramètres
| Paramètre |
Description |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true.
Requis. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main.
Requis. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true.
Requis. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Requis. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Pour mettre à jour une stratégie de résolution de commentaires, utilisez 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]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Exemple
L’exemple suivant met à jour l’ID 6 de stratégie de résolution des commentaires dans la main branche du référentiel Fabrikam pour qu’il soit bloquant. Les commentaires doivent être résolus avant que les pull requests puissent être intégrées. Cet exemple utilise la configuration az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber" par défaut.
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
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
Limiter les types de fusion
Azure Repos prend en charge plusieurs stratégies de fusion, et par défaut, elle les autorise toutes. Pour conserver un historique de branche cohérent, imposez une stratégie de fusion lors de la finalisation des PR.
Définissez Limiter les types de fusion sur Activé pour limiter les types de fusion autorisés dans votre dépôt.
-
La fusion de base (sans transfert rapide) crée un commit de fusion dans la cible dont les parents sont la cible et les branches sources.
-
Le squash merge crée un historique linéaire avec un seul commit dans la branche cible, qui inclut les modifications de la branche source.
En savoir plus sur la fusion Squash et la façon dont elle affecte l’historique des branches.
-
Le rebasage et l’avance rapide créent un historique linéaire en relisant les commits sources sur la branche cible sans commit de fusion.
-
Rebaser avec le commit de fusion relit les commits sources sur la cible et crée également un commit de fusion.
Utilisez Azure DevOps CLI az repos policy merge-strategy pour définir et mettre à jour la stratégie de stratégie de fusion.
Créer une politique de stratégie de fusion
Utilisez az repos policy merge-strategy create pour créer une stratégie de fusion.
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}]
Paramètres
| Paramètre |
Description |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true.
Requis. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main.
Requis. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true.
Requis. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Requis. |
allow-no-fast-forward |
Fusion de base sans fast-forward. Conserve l’historique non linéaire exactement comme il s’est produit pendant le développement. Valeurs acceptées : false, true. |
allow-rebase |
Rebasez et avancez rapidement. Crée un historique linéaire en réexécutant les commits de la branche source sur la cible sans commit de fusion. Valeurs acceptées : false, true. |
allow-rebase-merge |
Rebasez avec commit de fusion. Crée un historique semi-linéaire en réexécutant les commits de la branche source sur la cible, et en créant ensuite un commit de fusion. Valeurs acceptées : false, true. |
allow-squash |
Fusion Squash. Crée un historique linéaire en condensant les commits de la branche source en un seul nouveau commit sur la branche cible. Valeurs acceptées : false, true. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
use-squash-merge |
Toujours la fusion Squash. Cette option n’est pas disponible pour d’autres types de fusion. Valeurs acceptées : false, true.
Remarque : use-squash-merge est déconseillée et sera supprimée dans une mise en production ultérieure. Utilisez --allow-squash à la place. |
Exemple
L'exemple suivant définit une stratégie de fusion requise pour les pull requests dans la branche main du référentiel Fabrikam afin d'autoriser la fusion squash. Cet exemple utilise la configuration az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber" par défaut.
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
Mettre à jour une politique de stratégie de fusion
Utilisez az repos policy merge-strategy update pour mettre à jour une stratégie de fusion.
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}]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
allow-no-fast-forward |
Fusion de base sans fast-forward. Conserve l’historique non linéaire exactement comme il s’est produit pendant le développement. Valeurs acceptées : false, true. |
allow-rebase |
Rebasez et avancez rapidement. Crée un historique linéaire en réexécutant les commits de la branche source sur la cible sans commit de fusion. Valeurs acceptées : false, true. |
allow-rebase-merge |
Rebasez avec commit de fusion. Crée un historique semi-linéaire en réexécutant les commits de la branche source sur la cible, et en créant ensuite un commit de fusion. Valeurs acceptées : false, true. |
allow-squash |
Fusion Squash. Crée un historique linéaire en condensant les commits de la branche source en un seul nouveau commit sur la branche cible. Valeurs acceptées : false, true. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
use-squash-merge |
S’il faut toujours effectuer une fusion Squash. Cette option ne fonctionne pas pour d’autres types de fusion. Valeurs acceptées : false, true. |
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
Définir la validation de build
Définissez une règle imposant que les modifications de la demande de tirage pour générer correctement avant que la demande de tirage ne puisse se terminer.
Les stratégies de build réduisent les interruptions et conservent les résultats de vos tests. Les stratégies de génération aident même si vous utilisez l’intégration continue (CI) sur vos branches de développement pour détecter les problèmes au début.
Lorsque vous définissez le déclencheur de stratégie sur Automatique, une stratégie de validation de build met en file d’attente un nouveau build lorsque vous créez une demande de tirage ou poussez des modifications vers une demande de tirage existante ciblant la branche. Si vous définissez le déclencheur de stratégie sur Manuel, les utilisateurs doivent eux-mêmes mettre la génération en file d’attente. Dans les deux cas, la stratégie de génération évalue les résultats de build pour déterminer si la demande de tirage peut être terminée.
Important
Avant de spécifier une stratégie de validation de build, créez un pipeline de build. Si vous n’avez pas de pipeline, consultez Créer un pipeline de build. Choisissez le type de build qui correspond à votre type de projet.
Pour ajouter une stratégie de validation de build
Sélectionnez le bouton + en regard de la validation de build.
Remplissez le formulaire Définir la stratégie de génération :
- Sélectionnez le pipeline debuild.
Définissez éventuellement un filtre Chemin d’accès. En savoir plus sur les filtres de chemin dans les stratégies de branche.
Sous Déclencheur, sélectionnez Automatique (chaque fois que la branche source est mise à jour) ou Manuel.
Sous exigence de la politique, sélectionnez Obligatoire ou Facultatif. Si vous choisissez Obligatoire, les builds doivent se terminer correctement pour terminer les demandes de tirage. Choisissez Facultatif pour fournir une notification de l’échec de build, mais autorisez toujours la fin des demandes de tirage.
Définissez une expiration de build pour vous assurer que les mises à jour de votre branche protégée n’interrompent pas les modifications pour les demandes de tirage ouvertes.
Immédiatement lorsque< le nom de la branche> est mis à jour : cette option définit l’état de la stratégie de génération de demande de tirage sur l’échec chaque fois que la branche est mise à jour et remet en file d’attente une build. Ce paramètre garantit que les modifications de demande de tirage sont correctement générées même si la branche protégée change.
Cette option est optimale pour les équipes dont les branches importantes ont peu de modifications. Les équipes travaillant dans des branches de développement très fréquentées peuvent trouver perturbant d'attendre une compilation à chaque mise à jour de la branche.
Après <n> heures si <le nom> de la branche a été mis à jour : cette option expire la stratégie actuelle d’état lorsque la branche protégée se met à jour si la build qui passe est antérieure au seuil que vous entrez. Cette option est un compromis entre toujours ou ne nécessitant jamais de build lorsque la branche protégée est mise à jour. Ce choix réduit le nombre de builds lorsque votre branche protégée a des mises à jour fréquentes.
Jamais : les mises à jour de la branche protégée ne modifient pas l’état de la stratégie. Cette valeur réduit le nombre de builds, mais peut causer des problèmes lors de l'achèvement de PRs qui n'ont pas été mis à jour récemment.
Entrez un nom d’affichage (facultatif) pour cette stratégie de build. Ce nom identifie la stratégie dans la page Stratégies de branche. Si vous ne spécifiez pas de nom d’affichage, la stratégie utilise le nom du pipeline de build.
- Sélectionnez Enregistrer.
Lorsque le propriétaire de la demande de tirage envoie des modifications qui sont correctement générés, la stratégie statut est mise à jour.
Si vous disposez d’une stratégie de build Immédiatement quand le <nom> de la branche est mis à jour ou Après <n> heures si <le nom> de la branche a été mis à jour, la stratégie d’état est mise à jour lorsque la branche protégée se met à jour, si la build précédente n’est plus valide.
Utilisez l’interface de ligne de commande Azure DevOps az repos policy build pour définir et mettre à jour la stratégie de validation de build.
Créer une stratégie de validation de build
Utilisez az repos policy build create pour créer une stratégie de validation de build.
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]
Paramètres
| Paramètre |
Description |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true.
Requis. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main.
Requis. |
build-definition-id |
L'ID de la définition de build.
Requis. |
display-name |
Nom d’affichage de cette stratégie de build pour identifier la stratégie. Par exemple : Manual queue policy.
Requis. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true.
Requis. |
manual-queue-only |
Indique s’il faut autoriser uniquement la file d’attente manuelle des builds. Valeurs acceptées : false, true.
Requis. |
queue-on-source-update-only |
S’il faut mettre en file d’attente les builds uniquement lors des mises à jour de la source. Valeurs acceptées : false, true.
Requis. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Requis. |
valid-duration |
Durée de validité de la stratégie, en minutes.
Note : valid-duration doit être compris entre zéro et un an, et doit être égal à zéro lorsque --queue-on-source-update-only est false.
Requis. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
path-filter |
Chemin sur lequel la stratégie est appliquée. Prend en charge les chemins d’accès absolus, les caractères génériques et plusieurs chemins séparés par ;. Exemples : /WebApp/Models/Data.cs, /WebApp/*ou *.cs, ou /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Exemple
L’exemple suivant définit une stratégie de génération requise pour les demandes de tirage dans la main branche du référentiel Fabrikam. La stratégie nécessite une build réussie de l’ID 1de définition de build et autorise uniquement la mise en file d’attente manuelle de build. Cet exemple utilise la configuration az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber" par défaut.
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
Mettre à jour une stratégie de validation de build
Utilisez az repos policy build update pour mettre à jour une stratégie de validation de build.
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]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
build-definition-id |
L'ID de la définition de build. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
display-name |
Nom d’affichage de cette stratégie de build pour identifier la stratégie. Par exemple : Manual queue policy. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true. |
manual-queue-only |
Indique s’il faut autoriser uniquement la file d’attente manuelle des builds. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
path-filter |
Chemins sur lesquels la stratégie est appliquée. Prend en charge les chemins d’accès absolus, les caractères génériques et plusieurs chemins séparés par ;. Exemples : /WebApp/Models/Data.cs, /WebApp/*ou *.cs, ou /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
queue-on-source-update-only |
S’il faut mettre en file d’attente les builds uniquement lors des mises à jour de la source. Valeurs acceptées : false, true. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
valid-duration |
Durée de validité de la stratégie, en minutes. |
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
Exiger des vérifications de statut
Les services externes peuvent utiliser l'API d'état de PR pour publier un état détaillé sur vos PRs. La stratégie de branche pour les services supplémentaires permet à ces services externes de participer au workflow de PR et d'établir des exigences en matière de stratégie.
Pour configurer une stratégie de vérification du statut :
- Assurez-vous que le service peut publier l’état de la pull request dans Azure Repos.
- Dans les stratégies de branche, sous Vérifications d’état, sélectionnez +.
- Dans État à vérifier, sélectionnez la vérification publiée dans la liste. Si le service n’a pas encore publié l’état, tapez la
genre/name valeur directement.
- Définissez l’exigence de stratégie sur Obligatoire ou Facultatif.
- Configurez éventuellement l’identité autorisée, les conditions de réinitialisation, l’application de la stratégie et le filtre de chemin d’accès.
- Utilisez Appliquer par défaut si la stratégie doit s’appliquer dès que la pull request est créée.
- Utilisez Conditionnel si la stratégie doit s’appliquer uniquement après la publication du premier état.
- Créez ou mettez à jour une demande de tirage ciblant la branche, puis vérifiez que la stratégie apparaît dans la section Politiques de la demande de tirage.
Pour les vérifications intégrées d’Azure DevOps Services et leurs identifiants genre/name, consultez Vérifications d’état disponibles pour les demandes de tirage. Pour obtenir une procédure pas à pas complète de la configuration du service externe, consultez Configurer une stratégie de branche pour un service externe.
Si une nouvelle intégration n’apparaît pas encore dans la liste déroulante, publiez un statut une fois depuis le service, puis ajoutez la règle, ou saisissez directement la valeur genre/name.
Inclure automatiquement les réviseurs
Vous pouvez ajouter automatiquement des réviseurs à des demandes de tirage qui modifient des fichiers dans des répertoires et des fichiers spécifiques, ou à toutes les demandes de tirage dans un dépôt.
Sélectionnez le bouton + en regard de Réviseurs inclus automatiquement.
Renseignez l’écran Ajouter une nouvelle politique de réviseur.
Ajoutez des personnes et des groupes auxréviseurs.
Sélectionnez Facultatif si vous souhaitez ajouter automatiquement des réviseurs, mais sans nécessiter leur approbation pour finaliser le pull request.
Vous pouvez également sélectionner Obligatoire si les pull requests ne peuvent pas être finalisées avant que :
- Chaque personne ajoutée en tant que réviseur approuve les modifications.
- Au moins une personne dans chaque groupe ajoutée en tant que réviseur approuve les modifications.
- Si un seul groupe est requis, le nombre minimal de membres que vous spécifiez approuve les modifications.
Spécifiez les fichiers et dossiers qui nécessitent les réviseurs inclus automatiquement. Laissez ce champ vide pour demander aux réviseurs de toutes les demandes de tirage dans la branche.
Sélectionnez Autoriser les demandeurs à approuver leurs propres modifications si les propriétaires de pull requests peuvent voter pour approuver leurs propres pull requests pour se conformer à cette politique.
Vous pouvez spécifier un message de flux d’activité qui apparaît dans la pull request.
Sélectionnez Enregistrer.
Utilisez l’interface CLI Azure DevOps az repos policy required-reviewer pour définir et mettre à jour la stratégie de réviseur obligatoire.
Créer une stratégie de réviseur requise
Utilisez az repos policy required-reviewer create pour créer une stratégie de réviseur requise.
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]
Paramètres
| Paramètre |
Description |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true.
Requis. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main.
Requis. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true.
Requis. |
message |
Message du flux d'activité qui apparaît dans la pull request.
Obligatoire. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
Requis. |
required-reviewer-ids |
Adresses de messagerie du réviseur séparées par ;. Par exemple : john@contoso.com;alice@contoso.com. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
path-filter |
Chemins sur lesquels la stratégie est appliquée. Prend en charge les chemins d’accès absolus, les caractères génériques et plusieurs chemins séparés par ;. Exemples : /WebApp/Models/Data.cs, /WebApp/*ou *.cs, ou /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Exemple
L’exemple suivant définit Jamal Hartnett comme réviseur requis pour les demandes de tirage dans la main branche du référentiel Fabrikam. Cet exemple utilise la configuration az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber" par défaut.
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
Mettre à jour une stratégie de réviseur requise
Utilisez az repos policy required-reviewer update pour mettre à jour une politique de réviseur requis.
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]
Paramètres
| Paramètre |
Description |
id, policy-id |
ID de la stratégie.
Requis. |
blocking |
Bloquer si la politique n’est pas respectée. Valeurs acceptées : false, true. |
branch |
Nom de branche pour filtrer les résultats par correspondance exacte. Le paramètre --repository-id est requis pour utiliser le filtre de branche. Par exemple : --branch main. |
branch-match-type |
Utilisez l’argument branch pour appliquer la stratégie. Si la valeur est exact, la stratégie s’applique à une branche qui correspond exactement à l’argument --branch. Si la valeur est prefix, la stratégie s’applique à tous les dossiers de branche qui correspondent au préfixe dans l’argument --branch. Valeurs acceptées : exact, prefix. Valeur par défaut : exact. |
detect |
Détectez automatiquement l’organisation. Valeurs acceptées : false, true. |
enabled |
Activez la stratégie. Valeurs acceptées : false, true. |
message |
Message du flux d'activité qui apparaît dans la pull request. |
org |
URL de l’organisation Azure DevOps. Vous pouvez configurer l’organisation par défaut à l’aide de az devops configure -d organization=<ORG_URL>.
Obligatoire s’il n’est pas configuré par défaut ou récupéré via git config. Exemple : https://dev.azure.com/MyOrganizationName/. |
path-filter |
Chemins sur lesquels la stratégie est appliquée. Prend en charge les chemins d’accès absolus, les caractères génériques et plusieurs chemins séparés par ;. Exemples : /WebApp/Models/Data.cs, /WebApp/*ou *.cs, ou /WebApp/Models/Data.cs;ClientApp/Models/Data.cs. |
project, p |
Nom ou ID du projet. Configurez le projet par défaut en utilisant az devops configure -d project=<NAME_OR_ID>.
Obligatoire s’il n’est pas configuré comme valeur par défaut ou récupéré par le biais de la configuration Git. |
repository-id |
ID du référentiel pour filtrer les résultats par correspondance exacte. Par exemple : --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. |
required-reviewer-ids |
Adresses de messagerie du réviseur séparées par ;. Par exemple : john@contoso.com;alice@contoso.com. |
subscription |
Nom ou ID de l’abonnement. Configurez l'abonnement par défaut à l'aide de az account set -s <NAME_OR_ID>. |
Les commandes Azure DevOps CLI ne sont pas prises en charge pour Azure DevOps Server.
Autoriser le contournement de la stratégie si nécessaire
Dans certains cas, vous devrez peut-être contourner les exigences de stratégie. Les autorisations de contournement vous permettent d’envoyer des modifications à une branche directement ou de finaliser des pull requests qui ne satisfont pas aux stratégies de branche. Vous pouvez accorder des autorisations de contournement à un utilisateur ou un groupe et étendre ces autorisations à un projet entier, un référentiel ou une seule branche.
Deux autorisations permettent aux utilisateurs de contourner la stratégie de branche de différentes manières :
Contourner les stratégies lors de l’exécution des demandes de tirage s’applique uniquement à l’achèvement de la demande de tirage. Les utilisateurs disposant de cette autorisation peuvent finaliser des pull requests même si ces dernières ne respectent pas les politiques.
Les stratégies de contournement lors de l’envoi s’appliquent aux envois à partir de référentiels locaux et aux modifications effectuées sur le web. Les utilisateurs disposant de cette autorisation peuvent envoyer des modifications directement aux branches protégées sans répondre aux exigences de stratégie.
Pour plus d’informations sur la gestion de ces autorisations, consultez AutorisationsGit.
Important
Soyez prudent lorsque vous accordez la possibilité de contourner les stratégies, en particulier au niveau du référentiel et du projet. Les stratégies sont une pierre angulaire de la gestion du code source sécurisée et conforme.
Utiliser des filtres de chemin avec des stratégies de branche
Plusieurs stratégies de branche prennent en charge des filtres de chemin d’accès. Si vous définissez un filtre de chemin d’accès, la stratégie s’applique uniquement aux fichiers qui correspondent au filtre. Laissez ce champ vide pour appliquer la stratégie à tous les fichiers de la branche.
Vous pouvez spécifier des chemins absolus (le chemin doit commencer par / ou par un caractère générique) ainsi que des caractères génériques.
Exemples :
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Vous pouvez spécifier plusieurs chemins à l’aide ; d’un séparateur.
Exemple :
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Si vous faites précéder des chemins d’accès de !, vous les excluez s’ils seraient inclus autrement.
Exemple :
-
/WebApp/*;!/WebApp/Tests/* inclut tous les fichiers dans /WebApp, à l’exception des fichiers dans /WebApp/Tests
-
!/WebApp/Tests/* ne spécifie aucun fichier, car rien n’est inclus en premier
L’ordre des filtres est significatif. Appliquez des filtres de gauche à droite.
Résoudre les problèmes liés aux stratégies de branche
Puis-je envoyer des modifications directement aux branches qui ont des stratégies de branche ?
Vous ne pouvez pas pousser des changements directement vers des branches avec des stratégies de branche requises à moins que vous n'ayez la permission de contourner les politiques de branche. Vous ne pouvez apporter des modifications à ces branches qu’à l’aide de demandes de tirage. Vous pouvez envoyer des modifications directement aux branches qui ont des stratégies de branche facultatives, si elles n’ont aucune stratégie de branche requise.
Qu’est-ce que la saisie semi-automatique ?
Les branches avec des stratégies de branche configurées pour des demandes de tirage possèdent le bouton Définir la saisie semi-automatique. Sélectionnez cette option pour configurer une demande de tirage afin qu’elle se termine automatiquement une fois que toutes les stratégies sont satisfaites. La saisie semi-automatique est utile lorsque vous ne vous attendez pas à des problèmes avec vos modifications.
Quand les conditions de stratégie de branche sont-elles vérifiées ?
Le serveur réévalue les stratégies de branche lorsque les auteurs des pull requests publient des modifications et lorsque les réviseurs votent. Si une stratégie déclenche une build, l’état de la build est en attente jusqu’à la fin de la génération.
Puis-je utiliser des définitions de build XAML dans les politiques de branche ?
Non, vous ne pouvez pas utiliser les définitions de build XAML dans les stratégies de branche.
Quels caractères génériques puis-je utiliser pour les réviseurs de code requis ?
Les astérisques simples * correspondent à n’importe quel nombre de caractères, y compris les slashs / et les barres obliques inverses \. Les points d’interrogation ? correspondent à n’importe quel caractère unique.
Exemples :
-
*.sql correspond à tous les fichiers avec l’extension .sql.
-
/ConsoleApplication/* correspond à tous les fichiers sous le dossier nommé ConsoleApplication.
-
/.gitattributes correspond au fichier .gitattributes* à la racine du référentiel.
-
*/.gitignore correspond à n’importe quel fichier .gitignore dans le référentiel.
Les chemins d’accès du réviseur de code requis respectent-ils la casse ?
Non, les stratégies de branche ne respectent pas la casse.
Vous pouvez ajouter les utilisateurs à un groupe, puis ajouter le groupe en tant que réviseur. Tout membre du groupe peut ensuite approuver pour répondre à l’exigence de stratégie.
J’ai des autorisations de stratégie de contournement. Pourquoi les échecs de stratégie apparaissent-ils toujours dans le statut des pull requests ?
Le système évalue toujours les stratégies configurées pour les modifications apportées à une pull request. Pour les utilisateurs disposant d’autorisations de contournement de stratégie, l’état de la stratégie signalée est consultatif uniquement. Si l’utilisateur disposant d’autorisations de contournement approuve, l’état d’échec ne bloque pas l’achèvement de la demande de tirage.
Pourquoi ne puis-je pas finaliser mes propres pull requests lorsque j’active « Autoriser les auteurs à approuver leurs propres modifications » ?
La stratégie Exiger un nombre minimal de réviseurs et la stratégie Réviseurs inclus automatiquement ont toutes deux des options permettant d’autoriser les demandeurs à approuver leurs propres modifications. Dans chaque stratégie, le paramètre s’applique uniquement à cette stratégie. Le paramètre n’affecte pas l’autre stratégie.
Par exemple, votre requête de fusion a les stratégies suivantes définies :
-
Exiger un nombre minimal de réviseurs nécessite au moins un réviseur.
-
Les réviseurs inclus automatiquement nécessitent que vous ou une équipe que vous soyez en tant que réviseur.
-
Les réviseurs inclus automatiquement ont activé l’option Autoriser les demandeurs à approuver leurs propres modifications.
-
Exiger qu’un nombre minimal de réviseurs n’ait pas activé l’option Autoriser les demandeurs à approuver leurs propres modifications.
Dans ce cas, votre approbation satisfait automatiquement les réviseurs inclus, mais ne nécessite pas un nombre minimal de réviseurs, de sorte que vous ne pouvez pas terminer la demande de tirage.
D’autres stratégies peuvent vous empêcher d’approuver vos propres modifications, même si Autoriser les demandeurs à approuver leurs propres modifications est activé. Par exemple, interdire à l’auteur du dernier push d’approuver ses propres modifications.
Que se passe-t-il lorsqu’un filtre de chemin d’accès ne commence pas par / ou par un caractère générique ?
Un chemin dans les filtres de chemin qui ne commence pas par / ni par un caractère générique n’a aucun effet. Le filtre de chemin est évalué comme si ce chemin n’était pas spécifié. Un tel chemin ne peut pas correspondre au / par lequel commence le chemin d'accès absolu au fichier.
Si vous configurez le Azure DevOps MCP Server, vous pouvez utiliser le langage naturel pour recueillir des informations sur le dépôt, la branche, la pull request et le build avant de mettre à jour les stratégies de branche dans Azure DevOps Services.
Le serveur MCP Azure DevOps nécessite Azure DevOps Services, le mode agent dans votre assistant IA et Node.js 20.0+. La documentation MCP actuelle ne décrit pas les actions de lecture ou d'écriture de stratégie de branche directe. Utilisez donc le portail web Azure DevOps ou l'interface CLI Azure DevOps pour créer et mettre à jour des stratégies.
| Tâche |
Exemple d’invite |
| Répertorier les branches dans un référentiel |
List the branches in repo <Contoso.Web> in project <Contoso> |
| Vérifiez les pull requests avant de renforcer la politique |
What pull requests require my review in project <Contoso>? |
| Examiner une pull request et les éléments de travail liés |
Get details for pull request <67> and its linked work items in project <Contoso> |
| Vérifier l’état de la build avant d’effectuer la validation de build requise |
Get the latest build status for pipeline <Contoso-CI> in project <Contoso> |
Note
Si vous utilisez Visual Studio Code, le mode agent est particulièrement utile pour collecter le contexte du projet dont vous avez besoin avant de mettre à jour les stratégies de branche.
Contenu connexe