Ответ 1
Политика веток уже делает именно то, что вы говорите. При наличии отраслевой политики требуются PR.
Убедитесь, что у ваших разработчиков нет разрешения "Освобождать от применения политик".
У нас есть политики веток, настроенные в VSTS, чтобы не допустить, чтобы запросы на загрузку были объединены в master, если не связаны связанные сборки и рабочие элементы. Тем не менее, я не могу решить, как запретить разработчикам прямо работать с мастером. Установка разрешения "Contribute" на "Deny" не позволяет объединить запросы на pull.
Все разработчики должны иметь возможность объединять PR в мастер, но никому не разрешается напрямую нажимать мастер. Это возможно?
Политика веток уже делает именно то, что вы говорите. При наличии отраслевой политики требуются PR.
Убедитесь, что у ваших разработчиков нет разрешения "Освобождать от применения политик".
Я знаю, что этот вопрос немного старше, но здесь есть дополнительная информация...
К сожалению, я не могу добавить комментарии к "лучшему ответу", так что вот новый, вы можете просто рассматривать его как комментарий:
Политики веток уже делают именно то, что вы говорите. При наличии отраслевой политики требуются PR.
100% согласны
Убедитесь, что у ваших разработчиков нет разрешения "Освобождать от применения политик".
100% согласны
Где мы должны посмотреть, есть ли у разработчиков разрешение "Освобождать от применения политик"?
Существует несколько разрешений, позволяющих пользователям обходить политику ветки. В TFS 2015 до TFS 2018 с обновлением 2 разрешение Освобождение от применения политики позволяет пользователям с этим разрешением выполнять следующие действия:
- При завершении запроса на получение отказа включите переопределение политик и завершите запрос на получение ответа, даже если текущий набор политик ветвления не удовлетворен.
- Нажмите непосредственно на ветку, даже если для этой ветки установлены политики веток. Обратите внимание, что когда пользователь с этим разрешением делает push-уведомление, которое переопределяет политику ветвления, push-уведомление автоматически обходит политику ветвления без шага или предупреждения отказа
. В службах Azure DevOps разрешение Освобождение от применения политики удалено, а его функциональные возможности разделены на следующие два новых разрешения:
- Политики обхода при выполнении запросов извлечения
- Политика обхода при нажатии
Пользователи, которые ранее включали Освобождение от применения политики, теперь имеют два новых разрешения.
Вы можете найти эти варианты в:
организация/проект/настройки/репозитории
Предположительно, пользователь может сделать что-нибудь со своей локальной версией главной ветки, но тогда Azure DevOps будет отрицать передачу на удаленный компьютер? Если/когда это произойдет, что нужно сделать разработчику, чтобы исправить беспорядок, с которым они столкнулись в своем локальном репо?
Это связано с тем, что политикам ветвления в DevOps Azure запрещено называть это "vanilla-git". Это специфическое расширение Microsoft, которое не имеет ничего общего с локальными ветками Git вашего пользователя. Поэтому пользователь может делать со своим локальным репозиторием git все, что ему захочется - DevOps просто предотвращает некоторые вещи "на стороне сервера".
О вопросе, как разработчик может отменить беспорядок:
Я рекомендую этот ТАК вопрос.