Ветвь с настроенными политиками не может быть удалена и требует запросов на вытягивание (PR) для всех изменений.
Предварительные требования
Чтобы задать политики ветвей, необходимо быть членом группы безопасности администраторов проектов или иметь разрешения на изменение политик на уровне репозитория. Дополнительные сведения см. в разделе "Настройка разрешений репозитория Git".
Чтобы задать политики ветвей, необходимо быть членом группы безопасности администраторов проектов или иметь разрешения на изменение политик на уровне репозитория. Дополнительные сведения см. в разделе "Настройка разрешений репозитория Git".
Чтобы управлять политикамифилиалов, выберите "Ветви Repos>", чтобы открыть страницу "Ветви" на веб-портале.
Вытакже можете получить доступ к параметрам политики ветви спомощью> имени ветви политик<>репозиторияпараметров>проекта>>.
Ветви с политиками отображают значок политики. Вы можете выбрать значок, чтобы перейти непосредственно к параметрам политики ветви.
Чтобы задать политики ветвей, найдите ветвь, которой требуется управлять. Вы можете просмотреть список или найти ветвь в поле имени ветви поиска в правом верхнем углу.
Щелкните значок "Дополнительные параметры " рядом с ветвью и выберите в контекстном меню политики ветви .
Найдите ветвь на странице. Вы можете просмотреть список или найти ветвь с помощью поля "Поиск всех ветвей " в правом верхнем углу.
Настройте политики на странице параметров ветви. Описание и инструкции для каждого типа политики см. в следующих разделах.
Настройте свои политики на странице Политики. Описание каждого типа политики см. в следующих разделах. Нажмите кнопку "Сохранить изменения" , чтобы применить новую конфигурацию политики.
Azure DevOps CLI можно использовать для вывода списка или отображения политик для ветви или репозитория.
az repos policy list [--branch]
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--repository-id]
[--subscription]
Параметры
Параметр
Описание
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветвей. Например: --branch main.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org, organization
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git.
query-examples
Рекомендуемая строка JMESPath. Вы можете скопировать один из запросов и вставить его после --query параметра в двойные кавычки, чтобы просмотреть результаты. Вы можете добавить одно или несколько позиционных ключевых слов, чтобы предложения основывались на этих ключевых словах.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Пример
Следующая команда возвращает все политики ветвей в main ветви репозитория Fabrikam с идентификатором d28cd374-e7f0-4b1f-ad60-f349f155d47c. Идентификатор репозитория можно получить, выполнив команду az repos list.
В этом примере используется следующая конфигурация по умолчанию: az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
az repos policy list --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --branch main --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
5 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
6 Comment requirements False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
12 Required reviewers True False d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
13 Required reviewers False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
az repos policy show --id
[--detect {false, true}]
[--org]
[--project]
[--query-examples]
[--subscription]
Параметры
Параметр
Описание
id, policy-id
Идентификатор политики. Обязательно.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org, organization
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git.
query-examples
Рекомендуемая строка JMESPath. Вы можете скопировать один из запросов и вставить его после --query параметра в двойные кавычки, чтобы просмотреть результаты. Вы можете добавить одно или несколько позиционных ключевых слов, чтобы предложения основывались на этих ключевых словах.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Требовать минимальное количество рецензентов
Проверки кода важны для проектов разработки программного обеспечения. Чтобы убедиться, что команды просматривают и утверждают PR, можно требовать утверждения от минимального количества рецензентов. Для базовой политики необходимо, чтобы указанное число рецензентов одобрило код без отклонений.
Чтобы задать политику в разделе "Политики филиалов", установите для нее минимальное количество рецензентов в значение "Вкл". Введите необходимое количество рецензентов и выберите любой из следующих параметров:
Выберите "Разрешить запрашивателям утверждать свои изменения ", чтобы разрешить создателю PR голосовать за его утверждение. В противном случае создатель по-прежнему может проголосовать за утверждение на pr, но их голосование не будет рассчитывать на минимальное количество рецензентов.
Выберите "Запретить последнему push-запросу утвердить свои собственные изменения ", чтобы обеспечить разделение обязанностей. По умолчанию любой пользователь с разрешением push-уведомлений в исходной ветви может добавлять фиксации и голосовать за утверждение pr. Выбор этого параметра означает, что голосование последнего push-канала не учитывается, даже если они могут обычно утверждать свои собственные изменения.
Выберите "Разрешить завершение", даже если некоторые рецензенты голосуют за ожидание или отклонение , чтобы разрешить завершение запроса, даже если некоторые рецензенты голосуют против утверждения. Минимальное число рецензентов по-прежнему должно утверждаться.
В разделе "При отправке новых изменений" выполните следующие действия:
Выберите "Требовать по крайней мере одно утверждение" для последней итерации , чтобы требовать по крайней мере одного голосования за последнее изменение исходной ветви.
Выберите "Сбросить все голоса утверждения" (не сбрасывать голоса, чтобы отклонить или подождать), чтобы удалить все голоса утверждения, но оставить голоса, чтобы отклонить или подождать, когда исходная ветвь изменится,
Выберите "Сбросить все голоса рецензента кода", чтобы удалить все голоса рецензентов при каждом изменении исходной ветви, включая голоса для утверждения, отклонения или ожидания.
Если запрашивающие пользователи могут утверждать свои изменения не выбраны, создатель запроса на вытягивание по-прежнему может проголосовать за утверждение по запросу на вытягивание, но их голосование не будет учитываться в отношении минимального числа рецензентов.
Если любой рецензент отклоняет изменения, запрос на вытягивание не может завершиться, если вы не выберете параметр "Разрешить завершение", даже если некоторые рецензенты голосуют за ожидание или отклонение.
При отправке новых изменений в исходную ветвь можно сбросить голоса рецензента кода. При наличии новых изменений выберите "Сброс рецензента кода".
Если все остальные политики передаются, создатель может завершить запрос на вытягивание, когда необходимое число рецензентов утверждает его.
Вы можете управлять подсчетами обязательных утверждающих запросов на вытягивание с помощью az repos policy approver-count.
Блокировать, если политика не выполнена. Допустимые значения: false, true. Обязательно.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветвей. Например: --branch main. Обязательно.
Минимальное число утверждающих лиц. Например: 2. Обязательно.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Обязательно.
reset-on-source-push
Сброс голосов при отправке изменений в источник. Допустимые значения: false, true. Обязательно.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется в ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Пример
В следующем примере задается минимальное количество необходимых 2 утверждений для запросов на вытягивание в main ветви репозитория Fabrikam. Политика позволяет уменьшить количество голосов, что означает, что запросы на вытягивание могут завершиться, даже если некоторые рецензенты не одобряют, если минимальное число голосов для утверждения. Принудительная отправка в исходную ветвь не сбрасывает голоса. Политика также позволяет создателям запросов на вытягивание утверждать собственные запросы на вытягивание.
В этом примере используется конфигурация az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"по умолчанию.
az repos policy approver-count create --allow-downvotes true --blocking true --branch main --creator-vote-counts true --enabled true --minimum-approver-count 2 --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --reset-on-source-push false --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- --------------------------- ------------- ------------ ------------------------------------ ---------------
27 Minimum number of reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Блокировать, если политика не выполнена. Допустимые значения: false, true.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветвей. Например: --branch main.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется в ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
reset-on-source-push
Сброс голосов при отправке изменений в источник. Допустимые значения: false, true.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Проверка связанных рабочих элементов
Для отслеживания управления рабочими элементами можно требовать связи между PR и рабочими элементами. Связывание рабочих элементов обеспечивает дополнительный контекст для изменений и гарантирует, что обновления проходят процесс отслеживания рабочих элементов.
Чтобы задать политику, в разделе "Политики ветви" установите для параметра "Проверить наличие связанных рабочих элементов " значение "Вкл.". Для этого параметра требуется, чтобы рабочие элементы были связаны с запросом на вытягивание для слияния. Установите параметр "Необязательно ", чтобы предупредить, если нет связанных рабочих элементов, но разрешить завершение запроса на вытягивание.
Вы можете использовать Azure CLI az repos policy work-item-linking для создания и обновления политик связывания рабочих элементов для ветви или репозитория.
Блокировать, если политика не выполнена. Допустимые значения: false, true. Обязательно.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main. Обязательно.
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Блокировать, если политика не выполнена. Допустимые значения: false, true.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Пример
В следующем примере обновляется идентификатор 3 политики для main ветви репозитория Fabrikam, который должен быть включен, но необязателен. В примере используется конфигурация az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"по умолчанию.
>az repos policy work-item-linking update --id 3 --blocking false --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ----------------- ------------- ------------ ------------------------------------ ---------------
3 Work item linking False True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Проверка разрешения комментариев
Политика проверки разрешения комментариев проверяет, разрешены ли все комментарии pr.
Настройте политику разрешения комментариев для ветви, задав для параметра "Проверить разрешение комментариеввкл.". Затем выберите, следует ли сделать политику обязательной или необязательной.
Блокировать, если политика не выполнена. Допустимые значения: false, true. Обязательно.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main. Обязательно.
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Обязательно.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Блокировать, если политика не выполнена. Допустимые значения: false, true.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Пример
В следующем примере обновляется идентификатор 6 политики разрешения комментариев в main ветви репозитория Fabrikam для блокировки. Комментарии должны быть разрешены, прежде чем запросы на вытягивание смогут объединиться. В этом примере используется конфигурация az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"по умолчанию.
az repos policy comment-required update --id 6 --blocking true --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- -------------------- ------------- ------------ ------------------------------------ ---------------
6 Comment requirements True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Ограничение типов слиянием
Azure Repos имеет несколько стратегий слияния, и по умолчанию все они разрешены. Вы можете поддерживать согласованный журнал ветвей, применяя стратегию слияния для завершения запроса на вытягивание.
Установите для типов слияния значение "Вкл . " , чтобы ограничить разрешенные типы слиянием в репозитории.
Базовое слияние (без быстрого переадресации) создает фиксацию слияния в целевом объекте, родители которого являются целевыми и исходными ветвями.
Объединение Squash создает линейную историю с одной фиксацией в целевой ветви с изменениями исходной ветви. Узнайте больше о слиянии сквош и о том, как это влияет на журнал ветвей.
Повторная база и быстрый переход создают линейную историю путем повторного преобразования исходных фиксаций в целевую ветвь без фиксации слияния.
Повторная база с фиксацией слияния воспроизводит исходные фиксации в целевом объекте, а также создает фиксацию слияния.
Примечание
Эта функция доступна для Azure DevOps Server 2020 и более поздних версий.
Вы можете использовать Azure DevOps CLI az repos policy merge-strategy для установки и обновления политики стратегии слияния.
Блокировать, если политика не выполнена. Допустимые значения: false, true. Обязательно.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main. Обязательно.
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Обязательно.
allow-no-fast-forward
Базовое слияние без быстрого переадресации. Сохраняет нелинейную историю точно так же, как это произошло во время разработки. Допустимые значения: false, true.
allow-rebase
Перебазировать и быстро пересылать. Создает линейную историю путем повторного преобразования фиксаций исходной ветви в целевой объект без фиксации слияния. Допустимые значения: false, true.
allow-rebase-merge
Перебазировать с фиксацией слияния. Создает полулинейную историю путем повторного преобразования фиксаций исходной ветви в целевой объект, а затем создания фиксации слияния. Допустимые значения: false, true.
allow-squash
Слияние скваша. Создает линейную историю путем сжатия фиксаций исходной ветви в одну новую фиксацию в целевой ветви. Допустимые значения: false, true.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
use-squash-merge
Всегда сравнять слияние. Этот параметр недоступен для других типов слиянием. Допустимые значения: false, true.
Примечание. use-squash-merge Не рекомендуется и будет удален в будущем выпуске. Используйте вместо этого --allow-squash.
Пример
В следующем примере задается необходимая стратегия слияния для запросов на вытягивание в main ветви репозитория Fabrikam, чтобы разрешить слияние squash. В этом примере используется конфигурация az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"по умолчанию.
az repos policy merge-strategy create --allow-squash true --blocking true --branch main --enabled true --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------------ ------------- ------------ ------------------------------------ ---------------
29 Require a merge strategy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Базовое слияние без быстрого переадресации. Сохраняет нелинейную историю точно так же, как это произошло во время разработки. Допустимые значения: false, true.
allow-rebase
Перебазировать и быстро пересылать. Создает линейную историю путем повторного преобразования фиксаций исходной ветви в целевой объект без фиксации слияния. Допустимые значения: false, true.
allow-rebase-merge
Перебазировать с фиксацией слияния. Создает полулинейную историю путем повторного преобразования фиксаций исходной ветви в целевой объект, а затем создания фиксации слияния. Допустимые значения: false, true.
allow-squash
Слияние скваша. Создает линейную историю путем сжатия фиксаций исходной ветви в одну новую фиксацию в целевой ветви. Допустимые значения: false, true.
blocking
Блокировать, если политика не выполнена. Допустимые значения: false, true.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
use-squash-merge
Следует ли всегда объединять сквош. Этот параметр не подходит для других типов слиянием. Допустимые значения: false, true.
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Применение стратегии слияния
Сохраняйте согласованный журнал ветвей, применяя стратегию слияния после завершения запроса на вытягивание.
Выберите "Применить стратегию слияния " и выберите параметр, чтобы требовать слияния запросов на вытягивание с помощью этой стратегии.
Без быстрого слияния . Этот параметр объединяет журнал фиксаций исходной ветви при закрытии запроса на вытягивание и создает фиксацию слияния в целевой ветви.
Слияние Squash — завершите все запросы на вытягивание с помощью слияния squash, создав одну фиксацию в целевой ветви с изменениями из исходной ветви. Узнайте больше о слиянии сквош и о том, как это влияет на журнал ветвей.
Проверка сборки
Вы можете задать политику, требующую внесения изменений запроса на вытягивание для успешной сборки до завершения запроса на вытягивание.
Политики сборки сокращают перерывы и сохраняют передачу результатов теста. Создавать политики помогают, даже если вы используете непрерывную интеграцию (CI) в ветвях разработки для раннего перехвата проблем.
Политика проверки сборки помещает новую сборку в очередь при создании нового запроса на вытягивание или изменения отправляются на существующий запрос на вытягивание, предназначенный для ветви. Политика сборки оценивает результаты сборки, чтобы определить, можно ли завершить запрос на вытягивание.
Важно!
Перед указанием политики проверки сборки необходимо иметь конвейер сборки. Если у вас нет конвейера, см. статью "Создание конвейера сборки". Выберите тип сборки, соответствующий типу проекта.
В разделе "Триггер" выберите "Автоматический" (при обновлении исходной ветви) или "Вручную".
В разделе "Требование политики" выберите "Обязательный" или "Необязательный". Если выбрано обязательное, сборки должны успешно завершиться для завершения PR. Выберите "Необязательно" , чтобы предоставить уведомление о сбое сборки, но по-прежнему разрешить выполнение PR.
Установите срок действия сборки, чтобы убедиться, что обновления защищенной ветви не прерывают изменения для открытых PRS.
Немедленно при <обновлении имени> ветви: этот параметр задает состояние политики сборки pr на сбой при каждом обновлении ветви и повторно отправляет сборку. Этот параметр гарантирует, что pr-запрос успешно выполняет сборку, даже если защищенная ветвь изменяется.
Этот вариант лучше всего подходит для команд, важные ветви которых имеют мало изменений. Команды, работающие в занятых ветвях разработки, могут оказаться разрушительными для ожидания сборки при каждом обновлении ветви.
Через <n> часов, если <имя> ветви было обновлено: этот параметр истекает текущее состояние политики при обновлении защищенной ветви, если передаваемая сборка старше введенного порогового значения. Этот параметр является компромиссом между всегда или никогда не требует сборки при обновлении защищенной ветви. Этот выбор уменьшает количество сборок, когда в защищенной ветви часто обновляются.
Никогда: Обновления защищенной ветви не изменяют состояние политики. Это значение уменьшает количество сборок, но может привести к проблемам при завершении PR, которые не обновили недавно.
Введите необязательное отображаемое имя для этой политики сборки. Это имя идентифицирует политику на странице политик филиала . Если отображаемое имя не указано, политика использует имя конвейера сборки.
Щелкните Сохранить.
Когда владелец запроса на вытягивание отправляет изменения, которые успешно создаются, состояние политики обновляется.
Если у вас есть значение "Немедленно при <обновлении имени ветви" или "Через n часов", если имя> ветви обновлено, состояние политики обновляется при обновлении защищенной ветви, если предыдущая сборка больше не действительна.><><
Примечание
Эта функция доступна для Azure DevOps Server 2020 и более поздних версий.
Вы можете использовать Azure DevOps CLI az repos policy build для установки и обновления политики проверки сборки.
Блокировать, если политика не выполнена. Допустимые значения: false, true. Обязательно.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветвей. Например: --branch main. Обязательно.
build-definition-id
Идентификатор определения сборки. Обязательно.
display-name
Отображаемое имя для этой политики сборки для идентификации политики. Например: Manual queue policy. Обязательно.
Следует ли разрешать только очередь сборок вручную. Допустимые значения: false, true. Обязательно.
queue-on-source-update-only
Следует ли помещать в очередь сборки только при обновлении источника. Допустимые значения: false, true. Обязательно.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Обязательно.
valid-duration
Срок действия политики в минутах. Примечание:valid-duration должен находиться в диапазоне от нуля до одного года и должен быть равен нулю.--queue-on-source-update-onlyfalseОбязательно.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется в ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
path-filter
Пути, к которым применяется политика. Поддерживает абсолютные пути, подстановочные знаки и несколько путей, разделенных ;. Примеры: /WebApp/Models/Data.cs, или *.cs,/WebApp/*/WebApp/Models/Data.cs;ClientApp/Models/Data.cs.
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если не настроено как по умолчанию или выбрано с помощью конфигурации Git.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Пример
В следующем примере задается требуемая политика сборки для запросов на вытягивание в main ветви репозитория Fabrikam. Для политики требуется успешная сборка идентификатора 1определения сборки и допускается только очередь сборки вручную. В этом примере используется конфигурация az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"по умолчанию.
az repos policy build create --blocking true --branch main --build-definition-id 1 --display-name build-policy --enabled true --manual-queue-only true --queue-on-source-update-only false --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --valid-duration 0 --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------ ------------- ------------ ------------------------------------ ---------------
31 build-policy True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Блокировать, если политика не выполнена. Допустимые значения: false, true.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветвей. Например: --branch main.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется в ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
build-definition-id
Идентификатор определения сборки.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
display-name
Отображаемое имя для этой политики сборки для идентификации политики. Например: Manual queue policy.
Следует ли разрешать только ручную очередь сборок. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
path-filter
Пути, к которым применяется политика. Поддерживает абсолютные пути, подстановочные знаки и несколько путей, разделенных ;. Примеры: /WebApp/Models/Data.cs, /WebApp/*или *.cs, ./WebApp/Models/Data.cs;ClientApp/Models/Data.cs
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
queue-on-source-update-only
Указывает, следует ли помещать сборки только при обновлении источника. Допустимые значения: false, true.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
valid-duration
Срок действия политики в минутах.
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Настройте политику, требующую внесения изменений в запрос на включение внесенных изменений для успешной сборки с защищенной ветвью, прежде чем запрос на вытягивание можно будет завершить.
Политики сборки сокращают перерывы и сохраняют передачу результатов теста. Создавать политики помогают, даже если вы используете непрерывную интеграцию (CI) в ветвях разработки для раннего перехвата проблем.
Если включена политика проверки сборки, новая сборка помещается в очередь при создании нового запроса на вытягивание или при отправке изменений в существующий запрос на вытягивание, предназначенный для ветви. Затем политика сборки оценивает результаты сборки, чтобы определить, можно ли завершить запрос на вытягивание.
Важно!
Перед указанием политики проверки сборки необходимо иметь определение сборки. Если у вас его нет, см. статью "Создание определения сборки " и выбор типа сборки, соответствующего типу проекта.
Выберите "Добавить политику сборки " и настройте параметры в разделе "Добавить политику сборки".
Выберите определение сборки.
Выберите тип триггера. Выберите "Автоматически" (при каждом обновлении исходной ветви) или "Вручную".
Выберите требование политики. Если выбрано обязательное, сборки должны успешно завершиться для выполнения запросов на вытягивание. Выберите "Необязательно" , чтобы предоставить уведомление о сбое сборки, но по-прежнему разрешить выполнение запросов на вытягивание.
Установите срок действия сборки, чтобы убедиться, что обновления защищенной ветви не прерывают изменения для открытых запросов на вытягивание.
Немедленно при branch name обновлении: этот параметр задает состояние политики сборки в запросе на включение внесенных изменений при обновлении защищенной ветви. Повторно создайте сборку, чтобы обновить состояние сборки. Этот параметр гарантирует, что изменения в запросах на вытягивание успешно создаются, даже если защищенная ветвь изменяется. Этот вариант лучше всего подходит для команд с важными ветвями с меньшим объемом изменений. Команды, работающие в занятых ветвях разработки, могут оказаться разрушительными для ожидания завершения сборки при каждом обновлении защищенной ветви.
Если обновление было обновлено через n несколько часовbranch name: этот параметр истечет текущее состояние политики при обновлении защищенной ветви, если передаваемая сборка старше введенного порогового значения. Этот параметр является компрометацией между всегда требующей сборки при обновлении защищенной ветви и никогда не требующей ее. Этот выбор отлично подходит для уменьшения числа сборок, когда защищенная ветвь имеет частые обновления.
Никогда: Обновления в защищенную ветвь не изменяют состояние политики. Это значение уменьшает количество сборок для ветви. Это может вызвать проблемы при закрытии запросов на вытягивание, которые не были обновлены в последнее время.
Введите необязательное отображаемое имя для этой политики сборки. Это имя идентифицирует политику на странице политик ветви . Если отображаемое имя не указано, политика использует имя определения сборки.
Щелкните Сохранить.
Когда владелец отправляет изменения, которые успешно создаются, состояние политики обновляется. Если выбрана политика сборки немедленно при branch name обновлении или n в нерабочее времяbranch name, состояние политики обновляется при обновлении защищенной ветви, если последняя сборка больше не действительна.
Проверки состояния
Внешние службы могут использовать API состояния pr для публикации подробного состояния на запросы на вытягивание. Политика ветви для дополнительных служб позволяет этим сторонним службам участвовать в рабочем процессе запроса на вытягивание и устанавливать требования политики.
Внешние службы могут использовать API состояния pr для публикации подробного состояния на запросы на вытягивание. Политика ветви для дополнительных служб позволяет сторонним службам участвовать в рабочем процессе запроса на вытягивание и устанавливать требования политики.
Вы можете автоматически добавлять рецензентов в запросы на вытягивание, изменяющие файлы в определенных каталогах и файлах, или все запросы на вытягивание в репозитории.
Нажмите кнопку + рядом с автоматически включенными рецензентами.
Заполните экран добавления новой политики рецензента .
Добавление пользователей и групп в рецензенты.
Выберите "Необязательно" , если вы хотите добавить рецензентов автоматически, но не требуется их утверждение для выполнения запроса на вытягивание.
Или выберите "Обязательно" , если запросы на вытягивание не могут быть завершены до следующего:
Каждый пользователь, добавленный в качестве рецензента, утверждает изменения.
По крайней мере один человек в каждой группе, добавленный в качестве рецензента, утверждает изменения.
Если требуется только одна группа, минимальное число участников, указанных вами, утвердите изменения.
Укажите файлы и папки, для которых требуются автоматически включенные рецензенты. Оставьте это поле пустым, чтобы требовать от рецензентов для всех запросов на вытягивание в ветви.
Выберите "Разрешить запрашивателям утверждать собственные изменения" , если владельцы запросов на вытягивание могут голосовать за утверждение собственных запросов на вытягивание для удовлетворения этой политики.
Вы можете указать сообщение канала действий , которое отображается в запросе на вытягивание.
Щелкните Сохранить.
Примечание
Эта функция доступна для Azure DevOps Server 2020 и более поздних версий.
Вы можете использовать Azure DevOps CLI az repos policy required-reviewer для установки и обновления необходимой политики рецензента.
Блокировать, если политика не выполнена. Допустимые значения: false, true. Обязательно.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main. Обязательно.
Сообщение веб-канала действий, которое отображается в запросе на вытягивание. Обязательный.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345. Обязательно.
required-reviewer-ids
Адреса электронной почты рецензентов, разделенные .; Например: john@contoso.com;alice@contoso.com.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
path-filter
Пути, к которым применяется политика. Поддерживает абсолютные пути, подстановочные знаки и несколько путей, разделенных ;. Примеры: /WebApp/Models/Data.cs, /WebApp/*или *.cs, ./WebApp/Models/Data.cs;ClientApp/Models/Data.cs
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Пример
В следующем примере джамал Хартнетт задается в качестве обязательного рецензента для запросов на вытягивание в main ветви репозитория Fabrikam. В этом примере используется конфигурация az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"по умолчанию.
az repos policy required-reviewer create --blocking true --branch main --enabled true --message "Please review." --repository-id d28cd374-e7f0-4b1f-ad60-f349f155d47c --required-reviewer-ids fabrikamfiber4@hotmail.com --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------ ------------- ------------ ------------------------------------ ---------------
35 Required reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Блокировать, если политика не выполнена. Допустимые значения: false, true.
branch
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id необходим для использования фильтра ветви. Например: --branch main.
branch-match-type
branch Используйте аргумент для применения политики. Если значение равно exact, политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix, политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact, prefix. Значение по умолчанию: exact.
detect
Автоматическое обнаружение организации. Допустимые значения: false, true.
Сообщение веб-канала действий, которое отображается в запросе на вытягивание.
org
URL-адрес организации Azure DevOps. Вы можете настроить организацию по умолчанию с помощью az devops configure -d organization=<ORG_URL>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git. Пример: https://dev.azure.com/MyOrganizationName/.
path-filter
Пути, к которым применяется политика. Поддерживает абсолютные пути, подстановочные знаки и несколько путей, разделенных ;. Примеры: /WebApp/Models/Data.cs, /WebApp/*или *.cs, ./WebApp/Models/Data.cs;ClientApp/Models/Data.cs
project, p
Имя или идентификатор проекта. Проект по умолчанию можно настроить с помощью az devops configure -d project=<NAME_OR_ID>. Требуется , если он не настроен по умолчанию или выбран с помощью конфигурации Git.
repository-id
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345.
required-reviewer-ids
Адреса электронной почты рецензентов, разделенные .; Например: john@contoso.com;alice@contoso.com.
subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID>.
Команды Azure DevOps CLI не поддерживаются для Azure DevOps Server локальной среде.
Выберите рецензентов для определенных каталогов и файлов в репозитории.
Эти рецензенты автоматически добавляются в запросы на вытягивание, изменяющие файлы по этим путям. Вы также можете указать сообщение веб-канала действий.
Если выбрано обязательное, запрос на вытягивание не может быть завершен до следующих условий:
Каждый пользователь, добавленный в качестве рецензента для пути, утверждает изменения.
По крайней мере один человек в каждой группе, добавленной в путь, утверждает изменения.
Количество рецензентов, указанных для каждой группы, добавленной в путь, утверждает изменения.
Выберите "Необязательно" , если вы хотите добавить рецензентов автоматически, но не требуется их утверждение для выполнения запроса на вытягивание.
Вы можете выбрать инициаторов запросов, которые могут утверждать собственные изменения.
Когда все обязательные рецензенты утверждают код, вы можете выполнить запрос на вытягивание.
Обход политик ветви
В некоторых случаях может потребоваться обойти требования политики. Обход разрешений позволяет отправлять изменения в ветвь напрямую или выполнять запросы на вытягивание, которые не удовлетворяют политикам ветви. Вы можете предоставить разрешения на обход пользователю или группе. Вы можете ограничить разрешения обхода для всего проекта, репозитория или одной ветви.
Два разрешения позволяют пользователям обходить политику ветви разными способами:
Обход политик при завершении запросов на вытягивание применяется только к завершению запроса на вытягивание. Пользователи с этим разрешением могут выполнять запросы на вытягивание, даже если запросы на вытягивание не соответствуют политикам.
Обход политик при отправке применяется к отправке из локальных репозиториев и изменений, выполненных в Интернете. Пользователи с этим разрешением могут отправлять изменения непосредственно в защищенные ветви без соблюдения требований политики.
Дополнительные сведения об управлении этими разрешениями см. в разделе "Разрешения Git".
В TFS 2015–TFS 2018 с обновлением 2 разрешение на принудительное применение политики позволяет пользователям с этим разрешением выполнять следующие действия:
При завершении запроса на вытягивание согласитесь переопределить политики и выполнить запрос на вытягивание, даже если текущий набор политик ветви не удовлетворяется.
Отправка непосредственно в ветвь, даже если эта ветвь имеет набор политик ветви. Обратите внимание, что если пользователь с этим разрешением создает push-уведомление, которое переопределяет политику ветви, отправка автоматически обходит политику ветвей без шага или предупреждения о согласии.
Важно!
Используйте осторожность при предоставлении возможности обхода политик, особенно на уровнях репозитория и проекта. Политики являются краеугольным камнем безопасного и соответствующего управления исходным кодом.
Фильтры путей
Несколько политик ветвей предлагают фильтры путей. Если задан фильтр пути, политика применяется только к файлам, которые соответствуют фильтру пути. Если оставить это поле пустым, политика применяется ко всем файлам в ветви.
Можно указать абсолютные пути и подстановочные знаки.
Примеры:
/WebApp/Models/Data.cs
/WebApp/*
*.cs
Можно указать несколько путей, которые используются ; в качестве разделителя.
Пример
/WebApp/Models/Data.cs;ClientApp/Models/Data.cs
Пути, префиксированные с ! префиксом, исключаются, если они в противном случае будут включены.
Пример
/WebApp/*;!/WebApp/Tests/* включает все файлы, /WebApp кроме файлов в /WebApp/Tests
!/WebApp/Tests/* указывает отсутствие файлов, так как ничего не включается в первую очередь
Порядок фильтров является значительным. Фильтры применяются слева направо.
Можно ли отправлять изменения непосредственно в ветви с политиками филиалов?
Вы не можете отправлять изменения непосредственно в ветви с необходимыми политиками ветви, если у вас нет разрешений на обход политик ветвей. Изменения в этих ветвях можно вносить только с помощью запросов на вытягивание. Вы можете отправлять изменения непосредственно в ветви с необязательными политиками ветви, если у них нет обязательных политик ветви.
Что такое автозавершение?
Запросы на вытягивание в ветви с настроенными политиками ветвей имеют кнопку "Задать автоматическое завершение ". Выберите этот параметр , чтобы автоматически завершить запрос на вытягивание после выполнения всех политик. Автозаполнение полезно, если вы не ожидаете никаких проблем с изменениями.
Когда проверяются условия политики ветви?
Политики ветви повторно вычисляют на сервере при отправке изменений владельцам запросов на вытягивание и при голосовании рецензентов. Если политика активирует сборку, состояние сборки устанавливается в ожидании завершения сборки.
Можно ли использовать определения сборки XAML в политиках ветви?
Нет, определения сборки XAML нельзя использовать в политиках ветвей.
Какие подстановочные знаки можно использовать для обязательных рецензентов кода?
Один звездочки * соответствуют любому количеству символов, включая как косую черту / , так и косую черту \. Вопросительные знаки ? соответствуют любому одному символу.
Примеры:
*.sql сопоставляет все файлы с расширением SQL .
/ConsoleApplication/* соответствует всем файлам в папке с именем ConsoleApplication.
/.gitattributes соответствует GITATTRIBUTES-файлу в корне репозитория.
*/.gitignore соответствует любому gitignore-файлу в репозитории.
Учитывается ли регистр требуемых путей рецензента кода?
Нет, политики ветви не учитывает регистр.
Как настроить несколько пользователей в качестве обязательных рецензентов, но требовать утверждения только одного из них?
Вы можете добавить пользователей в группу, а затем добавить ее в качестве рецензента. Затем любой член группы может утвердиться в соответствии с требованиями политики.
У меня есть разрешения политики обхода. Почему по-прежнему отображаются сбои политики в состоянии запроса на вытягивание?
Настроенные политики всегда оцениваются для изменений запроса на вытягивание. Для пользователей, у которых есть разрешения политики обхода, сообщаемое состояние политики является только консультативным. Если пользователь с разрешениями обхода утверждает, состояние сбоя не блокирует завершение запроса на вытягивание.
Почему я не могу выполнить собственные запросы на вытягивание, когда задано сообщение "Разрешить запрашивателям утверждать свои изменения"?
Как политика "Требовать минимальное количество рецензентов" , так и политика автоматического включения рецензентов имеют возможность разрешить запрашивающим пользователям утверждать свои собственные изменения. В каждой политике параметр применяется только к этой политике. Этот параметр не влияет на другую политику.
Например, запрос на вытягивание имеет следующие политики:
Для минимального количества рецензентов требуется по крайней мере один рецензент.
Автоматически включенные рецензенты требуют вас или команду, в которую вы входите в качестве рецензента.
Автоматически включенные рецензентыразрешают запрашивателям утверждать свои собственные изменения .
Требуется минимальное число рецензентов , не имеющих разрешения запрашивающих на утверждение собственных изменений .
В этом случае утверждение удовлетворяет автоматически включенным рецензентам, но не требует минимального количества рецензентов, поэтому вы не сможете выполнить запрос на вытягивание.
Кроме того, могут существовать другие политики, такие как запретить последнему push-запросу утверждать свои собственные изменения, которые не позволяют утверждать собственные изменения, даже если запрашивающие пользователи могут утверждать свои изменения .