À propos des demandes de tirage (pull requests)

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Les demandes de tirage (pull request) permettent de modifier, de passer en revue et de fusionner du code dans un Référentiel Git sur Azure Repos. Les demandes de tirage peuvent provenir de branches dans le même référentiel ou à partir de branches dans des duplications (fork) du référentiel. Teams utilise des demandes de tirage pour passer en revue le code et fournir des commentaires sur les modifications avant de fusionner le code dans la branche primaire. Les réviseurs peuvent parcourir les modifications proposées, laisser des commentaires et voter pour approuver ou rejeter le code.

Cet article décrit les instructions de demande de tirage et les considérations de gestion. Pour obtenir des instructions sur la création, l’affichage, la révision et l’exécution des demandes de tirage, consultez les articles suivants :

Remarque

Pour des raisons d'analyse des performances et de la stabilité, le nombre de réviseurs qui peuvent être ajoutés à une demande de tirage (pull request) doit être inférieur ou égal à 1 000. Les nouvelles demandes de tirage (pull request) ne seront pas créées si vous ajoutez plus de 1 000 réviseurs, et les demandes d'extraction existantes ne vous permettront pas d'ajouter plus de 1 000 réviseurs.

Autorisations et conditions préalables

  • Les référentiels doivent être activés sur votre projet. Si le hub Repos et les pages associées ne s’affichent pas, consultez Activer ou désactiver un service Azure DevOps pour réactiver Repos.

  • Pour afficher ou passer en revue les demandes de tirage, vous devez être membre d’un projet Azure DevOps avec un accès De base ou supérieur.

  • Pour contribuer à une demande de tirage, vous devez être membre du groupe de sécurité Lecteurs ou disposer des autorisations correspondantes.

  • Pour créer et terminer une demande de tirage, vous devez être membre du groupe de sécurité Contributeurs ou disposer des autorisations correspondantes.

Notes

Pour les projets publics, les utilisateurs autorisés à accéder aux Parties prenantes ont un accès complet à Azure Repos.

  • Les référentiels doivent être activés sur votre projet. Si le hub Repos et les pages associées ne s’affichent pas, consultez Activer ou désactiver un service Azure DevOps pour réactiver Repos.
  • Pour afficher ou passer en revue les demandes de tirage, vous devez être membre d’un projet Azure DevOps avec un accès De base ou supérieur. Si vous n’êtes pas membre du projet, soyez ajouté.
  • Pour contribuer à une demande de tirage, vous devez être membre du groupe de sécurité Lecteurs ou disposer des autorisations correspondantes.
  • Pour créer et terminer une demande de tirage, vous devez être membre du groupe de sécurité Contributeurs ou disposer des autorisations correspondantes.

Pour en savoir plus sur les autorisations et l’accès, consultez Référentiel Git par défaut et les autorisations de branche et À propos des niveaux d’accès.

Commentaires de qualité pour les demandes de tirage

Les revues de haute qualité commencent par des commentaires de haute qualité. Voici quelques clés pour obtenir de bons commentaires sur les demandes de tirage :

  • Le propriétaire de la demande de tirage doit disposer des bonnes personnes pour passer en revue la demande de tirage et s’assurer que les réviseurs savent ce que fait le code.
  • Les réviseurs doivent fournir des commentaires exploitables et constructifs.
  • Les propriétaires et les réviseurs doivent commenter et répondre rapidement.

Les propriétaires de demandes de tirage doivent :

  • Veiller à sélectionner les réviseurs appropriés à affecter à une demande de tirage.
  • Inclure les réviseurs qui connaissent le fonctionnement du code.
  • Demander aux développeurs de travailler dans d’autres zones pour partager leurs idées.
  • Donner une description claire des modifications.
  • Fournir des conseils aux réviseurs avec des modèles de demande de tirage.
  • Fournir une build du code avec le correctif ou la fonctionnalité en cours d’exécution.
  • Répondre aux commentaires, accepter la suggestion ou expliquer pourquoi la modification suggérée n’est pas idéale.
  • Pour obtenir de bonnes suggestions en dehors de l’étendue de la demande de tirage, créez de nouveaux éléments de travail, des branches et des demandes de tirage pour effectuer ces modifications.

Les réviseurs doivent effectuer les tâches suivantes :

  • fournir une retour d'expérience sur les modifications avec lesquelles ils ne sont pas d'accord ;
  • identifier les problèmes et faire des suggestions spécifiques sur ce qu'il faut faire différemment ;
  • s'assurer que les retour d'expériences visent une intention claire et sont faciles à comprendre.
  • Laisser des commentaires ou voter sur les modifications

Pour plus d'informations, consultez Obtenir des retour d'expériences avec les demande de tirage (pull request) Git.

Stratégies de branche et demandes de tirage

Votre équipe peut s’appuyer sur des branches critiques dans votre référentiel, telles que la branche main, pour qu’elles soient toujours en bon état. Vous pouvez définir des stratégies de branche pour exiger des demandes de tirage pour toute modification sur ces branches protégées et rejeter les modifications envoyées (push) directement aux branches.

Vous pouvez ajouter d’autres stratégies aux demandes de tirage pour appliquer une meilleure qualité du code dans les branches clés. Des exigences supplémentaires comme une build propre du code proposé ou l’approbation de plusieurs réviseurs peuvent aider à protéger les branches clés.

Vous pouvez définir le nombre d’approbations requises pour une demande de tirage dans une stratégie de branche. Vous pouvez également définir certains réviseurs comme obligatoires ou facultatifs pour toutes ou certaines demandes de tirage. Une demande de tirage peut être définie sur la saisie semi-automatique avec le nombre d’approbations requis, même si d’autres réviseurs rejettent les modifications. Toutefois, les réviseurs requis doivent approuver les demandes de tirage avant que les demandes de tirage puissent être fusionnées. Il est recommandé qu’au moins deux personnes passent en revue et approuvent les modifications apportées à une demande de tirage importante.

Pour réinitialiser les votes chaque fois qu’un auteur de demande de tirage envoie (push) de nouvelles modifications, sélectionnez Réinitialiser les votes du réviseur de code lorsqu’il y a de nouvelles modifications dans la stratégie de branche Exiger un nombre minimal de réviseurs.

Le tableau suivant récapitule les stratégies que vous pouvez définir pour personnaliser une branche. Pour obtenir une vue d’ensemble de tous les paramètres et stratégies de référentiel et de branche, consultez les Paramètres et stratégies du référentiel Git.

Stratégie

Par défaut

Description


Désactivé

Exigez l'approbation d'un nombre spécifique de réviseurs pour les demandes de tirage.

Désactivé

Développez la traçabilité en archivant les éléments de travail liés sur les demandes de tirage

Désactivé

Vérifiez que tous les commentaires ont été résolus pour les demandes de tirage.

Désactivé

Contrôlez l'historique des branches en limitant les types de fusion disponibles une fois que les demandes de tirage ont été exécutées.

Désactivé

Ajoutez une ou plusieurs stratégies pour valider le code en pré-fusionnant et en créant des modifications de demande de tirage. Peut également activer ou désactiver des stratégies.

Désactivé

Ajoutez une ou plusieurs stratégies pour exiger que d’autres services publient l’état réussi pour terminer les demandes de tirage. Peut également activer ou désactiver des stratégies.

Désactivé

Ajoutez une ou plusieurs stratégies pour désigner les réviseurs de code à inclure automatiquement lorsque les demandes de tirage modifient certaines zones de code. Peut également activer ou désactiver des stratégies.

Pour plus d'informations, consultez les pages suivantes :

Définissez des vérifications d’état pour améliorer la qualité du code

Les demandes de tirage et les stratégies de branche permettent aux équipes d’appliquer les meilleures pratiques pour examiner le code et exécuter des builds automatisées. De nombreuses équipes ont d’autres exigences et validations à effectuer sur le code. Pour répondre à ces besoins, vous pouvez intégrer des vérifications d'état de demande de tirage dans le flux de travail de demande de tirage. Avec les vérifications d'état de demande de tirage, les services externes peuvent approuver par programmation les modifications de code en associant des informations de réussite ou d’échec aux demandes de tirage.

Pour plus d’informations, consultez les articles suivants :

Problème de base d’une fusion multiple

Dans certains cas, une demande de tirage possède plus d’une véritable base de fusion, et cette situation peut entraîner des problèmes de sécurité. Si les fichiers de la demande de tirage ont des versions différentes entre les bases de fusion, un avertissement de base de fusion multiple se produit. Pour plus d’informations et de correction, consultez Plusieurs bases de fusion.

Étapes suivantes