Подтвердить что ты не робот

Защита ветки git в Visual Studio Team Services

Я хотел бы, чтобы только явным образом разрешалось разработчикам сливаться в ветку "master". Я нашел расположение настроек безопасности, но ничто не позволяет мне сказать "эту ветку, только разрешить Робу в нее слиться". Любые конкретные рекомендации, пожалуйста?

4b9b3361

Ответ 1

Вы можете легко защитить MASTER в VSTS, поскольку TFS предоставляет возможности предприятия Git. Существует два способа добиться этого.

1) Git Разрешения ветки

На страницах администрирования на вкладке "Управление версиями" вы можете изменить разрешение для каждой опубликованной ветки. Вам необходимо поддерживать доступ на уровне репо, однако на MASTER вы можете изменить разрешение "Contributor" на "не настроено". Затем вы можете добавить только Rob...

VSTS Git Branch permissions

О... Всегда используйте "не задано", а не "отрицать", поскольку запрет всегда переопределяется.

2) Git Политика веток

VSTS представляет концепцию отраслевых политик. Эти политики веток могут применяться к любой отрасли, но традиционно применяются к MASTER.

VSTS  Git Политика веток

Здесь вы можете применить несколько политик, чтобы отразить ваши потребности... Я всегда устанавливал

Ответ 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, если только вы не делаете какой-либо более важный изменяется на исходные группы.