web-dev-qa-db-fra.com

VSTS - empêche Push to master mais autorise la fusion PR

Nous avons des stratégies de branche configurées dans VSTS pour empêcher la fusion des demandes d'extraction dans le maître, à moins qu'une génération ne passe et que les éléments de travail soient liés. Cependant, je ne peux pas trouver comment empêcher les développeurs de pousser directement au master. La définition de l'autorisation "Contribuer" sur Refuser ne permet pas de fusionner les demandes d'extraction.

Tous les développeurs devraient être autorisés à fusionner les PR dans le maître, mais aucun ne devrait être autorisé à pousser directement vers le maître. Est-ce possible?

17
David H

Politiques des succursales faites déjà exactement ce que vous dites. Lorsqu'une politique de succursale est en place, des RP sont requis.

Assurez-vous que vos développeurs ne disposent pas de l'autorisation "Exempt From Policy Enforcement".

25
Daniel Mann

Je sais que cette question est un peu plus ancienne mais voici quelques informations supplémentaires ...
Malheureusement, je ne peux pas ajouter de commentaires à la "meilleure réponse" alors voici une nouvelle, vous pouvez simplement la traiter comme un commentaire:

Les politiques des succursales font déjà exactement ce que vous dites. Lorsqu'une politique de succursale est en place, des RP sont requis.

100% d'accord

Assurez-vous que vos développeurs ne disposent pas de l'autorisation "Exempt From Policy Enforcement".

100% d'accord

Exempt de l'application des politiques

Où devrions-nous chercher pour voir si les développeurs ont l'autorisation "Exempt From Policy Enforcement"?

De docs.Microsoft.com :

Il existe plusieurs autorisations qui permettent aux utilisateurs de contourner la stratégie de branche. Dans TFS 2015 à TFS 2018 Update 2, l'autorisation Exempt de l'application de la stratégie permet aux utilisateurs disposant de cette autorisation d'effectuer les actions suivantes:

  • Lorsque vous effectuez une demande d'extraction, activez-vous pour remplacer les stratégies et effectuez une demande d'extraction même si l'ensemble actuel de stratégies de branche n'est pas satisfait.
  • Poussez directement vers une branche même si cette branche a des politiques de branche définies. Notez que lorsqu'un utilisateur disposant de cette autorisation effectue un Push qui remplacerait la stratégie de branche, le Push contourne automatiquement la stratégie de branche sans étape d'activation ni avertissement.

Dans Azure DevOps Services, l'autorisation Exempt de l'application des stratégies est supprimée et ses fonctionnalités sont divisées en deux nouvelles autorisations:

  • Contourner les politiques lors de l'achèvement des demandes d'extraction
  • Contourner les politiques en poussant

Les utilisateurs qui avaient précédemment Exempt de l'application de la politique activé ont désormais les deux nouvelles autorisations activées à la place.

Vous pouvez trouver ces options sous:
organisation/ projet/Paramètres/Référentiels

Git local

Vraisemblablement, un utilisateur peut faire quoi que ce soit à sa propre version locale de la branche principale, mais Azure DevOps refuserait-il alors le Push à la télécommande? Si/quand cela se produit, qu'est-ce que le développeur devrait faire pour défaire le gâchis dans lequel ils se sont retrouvés dans leur dépôt local?

C'est le cas parce que les stratégies de branche dans Azure DevOps ne sont pas appelons cela "Vanilla-git". C'est une extension spécifique à Microsoft qui n'a rien à voir avec les branches git locales de votre utilisateur. Par conséquent, un utilisateur peut faire à son dépôt git local tout ce qu'il veut - DevOps empêche simplement certaines choses "côté serveur".

À propos de la question de savoir comment un développeur peut défaire le gâchis: je recommande cette SO question .

5
Jonas