2017-06-16 1 views
2

Nous utilisons TFS comme interface de gestion de projet et nous utilisons Git pour gérer le référentiel.TFS et Git - Limiter les utilisateurs à pousser le code

Nous souhaitons que les utilisateurs soient limités à un fichier et poussent pour se connecter dans le référentiel.

Par exemple: Dans la branche A, user1 ne peut pas apporter des modifications à fichier1, utilisateur2 ne peut pas apporter des modifications à file2, user3 peut changer tous les fichiers dans la branche etc.

Est-il possible dans TFS?

+0

nous ne pouvons pas définir exactement la restriction comme vous l'avez mentionné, nous ne pouvons définir l'autorisation en conséquence en fonction des paramètres existants, s'il vous plaît voir le fil similaire https://stackoverflow.com/questions/27989974/how-can-i-allow -only-certain-gens-à-engager-dans-visual-studio-online –

Répondre

0

Est-ce possible dans TFS?

Pas que je sache. Ce que vous pouvez faire est de configurer un référentiel intermédiaire qui agira comme un portier: si le push réussit, ce repo (through a post-receive hook) poussera sur la cible réelle: le repo Git TFS.

Cette pension intermédiaire devrait être géré par une couche d'autorisation comme gitolite: gitolite peut limiter pousse à une branche ou même un fichier: voir « restricting pushes by dir/file name »

0

La seule façon que je peux vous voir peut-être faire cela est à travers un TFS server-side plugin. Vous pouvez implémenter un ISubscriber souscrit à l'événement Git PushNotification. Cela vous permettra d'inspecter les commits poussés et de bloquer le push si vos politiques ne sont pas satisfaites. Vous devrez cependant définir vos restrictions de branche/utilisateur dans un format structuré en dehors de TFS.

J'ai utilisé ce projet avec succès, ce qui offre un cadre agréable pour la mise en œuvre des politiques sur pousse à une prise en pension Git hébergé TFS:

https://github.com/giuliov/GitPushFilterPlugin

La seule réserve (de ma propre expérience) est que le La quantité de données disponibles dans l'événement PushNotification peut ne pas être suffisante pour déterminer les branches auxquelles le IncludedCommits appartient.