Я хотел бы, чтобы только явным образом разрешалось разработчикам сливаться в ветку "master". Я нашел расположение настроек безопасности, но ничто не позволяет мне сказать "эту ветку, только разрешить Робу в нее слиться". Любые конкретные рекомендации, пожалуйста?
Защита ветки git в Visual Studio Team Services
Ответ 1
Вы можете легко защитить MASTER в VSTS, поскольку TFS предоставляет возможности предприятия Git. Существует два способа добиться этого.
1) Git Разрешения ветки
На страницах администрирования на вкладке "Управление версиями" вы можете изменить разрешение для каждой опубликованной ветки. Вам необходимо поддерживать доступ на уровне репо, однако на MASTER вы можете изменить разрешение "Contributor" на "не настроено". Затем вы можете добавить только Rob...
О... Всегда используйте "не задано", а не "отрицать", поскольку запрет всегда переопределяется.
2) Git Политика веток
VSTS представляет концепцию отраслевых политик. Эти политики веток могут применяться к любой отрасли, но традиционно применяются к MASTER.
Здесь вы можете применить несколько политик, чтобы отразить ваши потребности... Я всегда устанавливал
Ответ 2
Я обнаружил, что мне пришлось пройти несколько шагов, чтобы сделать это.
Существует 2 места для определения групп в онлайн-студии визуальной студии - на уровне коллекции и на уровне проекта.
На уровне коллекции я создал группу администраторов и создал группу разработчиков. Я только хотел, чтобы люди в группе администратора имели доступ на запись к главной ветке в моем репозитории.
На уровне проекта я добавил группу разработчиков и администраторов к команде проекта. В группе разработчиков проекта я удалил команду проекта и добавил только группу разработчиков
В группе администраторов проекта я добавил группу администраторов уровня коллекций.
Затем на вкладке управления версиями на главной ветке я установил contrib = deny для группы авторов
Поскольку администраторы не являются членами группы участников, разрешение на отказ не применяется к ним, и они все равно могут нажимать изменения на мастер - либо напрямую, либо путем утверждения запросов на тягу
Ответ 3
Я успешно создал (2) типы групп, основанные на @anthonybrown. Тем не менее, я хотел бы дать некоторые скриншоты, чтобы помочь объяснить возможность разрешить возможность запретить пользователям удалять, нажимать и вносить вклад в ветвь master
(или другую ветвь) по вашему выбору) на база уровня репозитория, а не глобальный уровень.
Обратите внимание, что на основе нашего VSTS мы уже добавили пользователей в "глобальную" команду. Я не удалял этих пользователей, а добавил их в (2) отдельные группы.
- Разработчики
- Администраторы
1) Перейдите на ваш базовый экран VSTS (по умолчанию это будет /_projects
в URL-адресе.
2) Нажмите на винтик и выберите "Безопасность"
3) В левой части выберите "Создать группу" и назовите ее "Разработчики" . После создания группы выберите группу, а в средней части выберите "Участники". Добавьте всех пользователей, которых вы НЕ хотите, хотите внести права на ветвь "мастер" в эту группу. (обратите внимание - ваши пользователи уже должны быть добавлены в VSTS до этого шага).
4) Создайте группу "Администраторы" и добавьте пользователей, для которых вы ХОТИТЕ, чтобы иметь доступ. (обратите внимание: если ваши пользователи в группе "Администраторы" уже добавлены в VSTS на глобальном уровне или на уровне проекта, вы можете пропустить этот шаг. Я сделал это независимо).
5) Вернитесь на домашнюю страницу VSTS (/_projects) и выберите репозиторий, который вы хотите ограничить доступ к главной ветке. Выберите "Контроль версий". С левой стороны выберите ветвь "мастер". В средней части выберите "Безопасность". Добавьте группу "Разработчики" . Выберите группу "Разработчики" (после добавления) и установите доступ к "Запретить" для:
- Внести (это будет нажатие
- Изменить политики
- Принудительное нажатие
- Управление разрешениями
Ответ 4
Обычно я создаю специальную группу VSO, например "Devs" , а затем размещаю в ней разработчиков. Затем я использую группу в качестве группы участников проекта Contributors, а затем специально для ветки, который я хочу защитить, я использую группу "Devs" и устанавливаю Contribute to Deny, поэтому только члены группы "Devs" имеют отрицательный вклад, но, например, Админы проекта могут все еще вставлять его.
Если вы устанавливаете Contribute to Deny непосредственно в группе Contributors, никто не может входить в ветвь, даже не администраторы, и даже если вы специально настроили Allow on the Contribute, просто потому, что Deny сильнее, чем Allow, если только вы не делаете какой-либо более важный изменяется на исходные группы.
Ответ 5
Там, хотя способность защищать ветку с политикой ветки. Подробнее здесь: https://msdn.microsoft.com/en-us/library/vs/alm/code/git/branch-policies