Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Политики ветви помогают командам защитить важные ветви разработки . Политики обеспечивают качество кода и стандарты управления изменениями в команде. В этой статье описывается настройка политик ветви и управление ими. Общие сведения обо всех политиках и параметрах репозитория и веток см. в разделе Параметры и политики репозитория Git.
Ветвь с установленными обязательными политиками не может быть удалена и требует пул-реквестов (PR) для всех изменений.
Предварительные условия
Чтобы задать политики ветви, будьте членом группы безопасности "Администраторы проектов" или иметь уровня репозитория разрешение. Дополнительные сведения см. в разделе "Настройка разрешений репозитория Git".
Если вы хотите использовать Azure DevOps CLI az repos policy commands для управления политиками ветви, выполните действия, описанные в статье "Начало работы с Azure DevOps CLI".
- Чтобы задать политики ветви, будьте членом группы безопасности "Администраторы проектов" или иметь уровня репозитория разрешение. Дополнительные сведения см. в разделе "Настройка разрешений репозитория Git".
Чтобы управлять политиками ветвей, выберите Репозитории>Ветви, чтобы открыть страницу Ветви на веб-портале.
Вы также можете добраться до параметров политики ветви через Параметры проекта>Репозиторий>Политики>Политики ветвей><Имя ветви>.
Отделения с политиками отображают значок политики. Вы можете выбрать значок, чтобы перейти непосредственно к параметрам политики ветви.
Чтобы задать политики ветвей, найдите ветвь, которую вы хотите управлять. Вы можете просмотреть список или найти свою ветвь в поле Поиск по названию ветви в правом верхнем углу.
Щелкните значок "Дополнительные параметры" рядом с ветвью и выберите политики ветви в контекстном меню.
Настройте политики на странице параметров ветви. В следующих разделах приведены описания и инструкции для каждого типа политики.
Azure DevOps CLI можно использовать для перечисления или отображения политик для ветви или репозитория.
Список политик
Чтобы вывести список всех политик в проекте, используйте список политик az repos.
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, id 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.
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 не поддерживаются для Azure DevOps Server.
Требовать минимального числа рецензентов
Проверки кода важны для проектов разработки программного обеспечения. Чтобы гарантировать, что команды просматривают и утверждают PR-ы, вы можете требовать утверждения от определенного количества рецензентов. Базовая политика требует, чтобы указанное число рецензентов одобрило код без отклонений.
Чтобы задать политику в разделе "Политики филиалов", установите минимальное количество рецензентов в значение "Вкл.". Введите необходимое количество рецензентов и выберите любой из следующих параметров:
Выберите "Разрешить инициаторам запросов утверждать свои собственные изменения, чтобы создатель PR мог проголосовать за его утверждение. В противном случае создатель по-прежнему может проголосовать Одобрить по PR, но его голосование не учитывается в отношении минимального количества рецензентов.
Выберите Запретить автору последнего push-запроса утверждать собственные изменения, чтобы обеспечить разделение обязанностей. По умолчанию любой пользователь с правом на push в исходной ветви может как добавлять коммиты, так и голосовать за утверждение PR. Выбор этого параметра означает, что последнее голосование вносящего изменения не учитывается, даже если данный пользователь обычно может утверждать свои собственные изменения.
Выберите «Разрешить завершение, даже если некоторые рецензенты голосуют за ожидание или отклонение», чтобы разрешить завершение PR, даже если некоторые рецензенты голосуют против утверждения. Минимальное число рецензентов все еще должно дать одобрение.
- В разделе " При отправке новых изменений":
- Выберите "Требовать по крайней мере одно одобрение в последней итерации", чтобы потребовать хотя бы одного одобрения за последнее изменение исходной ветви.
- Выберите "Сброс всех голосов утверждения" (не сбрасывает голоса за отклонение или ожидание), чтобы удалить все голоса утверждения, но сохранить голоса за отклонение или ожидание, как только изменяется исходная ветвь.
- Выберите «Сброс всех голосов рецензентов кода», чтобы удалить все голоса рецензентов при каждом изменении исходной ветви, включая голоса за утверждение, отклонение или ожидание.
- В разделе " При отправке новых изменений":
- Выберите Требовать по крайней мере одно утверждение на каждой итерации, чтобы было необходимо как минимум одно одобрение для последнего изменения исходной ветви. Утверждение пользователя не учитывается в отношении предыдущей неутвержденной итерации, отправленной этим пользователем. В результате требуется еще одно утверждение последней итерации другим пользователем.
Функция "Требовать минимум одно утверждение для каждой итерации" доступна в Azure DevOps Server 2022.1 и выше.
- Выберите " Требовать по крайней мере одно утверждение" для последнего итерации , чтобы требовать хотя бы одного голосования за последнее изменение исходной ветви.
- Выберите "Сброс всех голосов утверждения" (не сбрасывает голоса за отклонение или ожидание), чтобы удалить все голоса утверждения, но сохранить голоса за отклонение или ожидание в случае изменения исходной ветви.
- Выберите "Сброс всех голосов рецензента кода", чтобы удалить все голосы рецензента при каждом изменении исходной ветви, включая голоса для утверждения, отклонения или ожидания.
Если все остальные политики пройдены, создатель может завершить PR, когда необходимое число рецензентов одобряет его.
Вы можете управлять количеством необходимых утверждающих для pull-запросов с помощью az repos policy approver-count.
Создать политику подсчета утверждающих.
Чтобы создать политику количества утверждающих, используйте az repos policy approver-count create.
az repos policy approver-count create --allow-downvotes {false, true}
--blocking {false, true}
--branch
--creator-vote-counts {false, true}
--enabled {false, true}
--minimum-approver-count
--repository-id
--reset-on-source-push {false, true}
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Параметры
Параметр |
Описание |
allow-downvotes |
Разрешить отрицательные оценки. Допустимые значения: false , true .
Обязательно. |
blocking |
Блокировать, если правило не выполнено. Допустимые значения: false , true .
Требуется. |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main .
Обязательно. |
creator-vote-counts |
Подсчитывайте голос создателя. Допустимые значения: false , true .
Обязательно. |
enabled |
Активируйте политику. Допустимые значения: false , true .
Необходимо. |
minimum-approver-count |
Минимальное необходимое количество одобрителей. Например: 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 config. |
subscription |
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID> . |
Пример
В следующем примере устанавливается минимальное количество необходимых утверждений 2
для pull-запросов в main
ветке репозитория Fabrikam. Политика позволяет отрицательные голоса, что означает, что запросы на вытягивание могут быть завершены, даже если некоторые рецензенты голосуют против утверждения, при условии, что есть минимальное количество голосов за утверждение. Отправка в исходную ветвь не сбрасывает голоса. Политика также позволяет авторам pull-запросов утверждать собственные pull-запросы.
В этом примере используется конфигурация 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
Обновление политики количества утверждающих
Чтобы обновить политику на количество утверждающих, используйте az repos policy approver-count update.
az repos policy approver-count update --id
[--allow-downvotes {false, true}]
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--creator-vote-counts {false, true}]
[--detect {false, true}]
[--enabled {false, true}]
[--minimum-approver-count]
[--org]
[--project]
[--repository-id]
[--reset-on-source-push {false, true}]
[--subscription]
Параметры
Параметр |
Описание |
id , policy-id |
Идентификатор политики.
Обязательно. |
allow-downvotes |
Разрешить голосовать против. Допустимые значения: false , true . |
blocking |
Заблокировать, если политика не соблюдена. Допустимые значения: false , true . |
branch |
Имя ветви для фильтрации результатов по точному соответствию. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main . |
branch-match-type |
Используйте аргумент branch для применения политики. Если значение равно exact , политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix , политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact , prefix . Значение по умолчанию: exact . |
creator-vote-counts |
Подсчитывайте голос создателя. Допустимые значения: false , true . |
detect |
Автоматически обнаруживать организацию. Допустимые значения: false , true . |
enabled |
Включите политику. Допустимые значения: false , true . |
minimum-approver-count |
Минимальное количество утверждающих. Например: 2 . |
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. |
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 не поддерживаются для Azure DevOps Server.
Проверять наличие связанных рабочих элементов
Для отслеживания управления рабочими элементами можно требовать связи между PR и рабочими элементами. Связывание рабочих элементов обеспечивает больше контекста изменений и гарантирует, что обновления проходят через процесс отслеживания рабочих элементов.
Чтобы задать политику, в разделе Политики веток установите Проверка связанных рабочих элементов в положение Включено. Для этого параметра требуется, чтобы рабочие элементы были связаны с PR, чтобы он мог быть объединён. Настройте параметр необязательное, чтобы предупреждать, когда нет связанных рабочих элементов, но разрешить завершение pull request.
Вы можете использовать Azure CLI az repos policy work-item-connect для создания и обновления политик связывания рабочих элементов для ветви или репозитория.
Создание политики связывания рабочих элементов
Используйте az repos policy work-item-linking create, чтобы создать политику связывания рабочих элементов для репозитория или ветвей.
az repos policy work-item-linking create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Параметры
Параметр |
Описание |
blocking |
Блокировать, если политика не соблюдается. Допустимые значения: false , true .
Требуется. |
branch |
Имя ветви для фильтрации по точному совпадению результатов. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main .
Обязательно. |
enabled |
Включите политику. Допустимые значения: false , true .
Обязательно. |
repository-id |
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --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> . |
Обновление политики связывания рабочих элементов
Используйте az repos policy work-item-linking update , чтобы обновить политику связывания рабочих элементов для репозитория или одной или нескольких ветвей.
az repos policy work-item-linking update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Параметры
Параметр |
Описание |
id , policy-id |
Идентификатор политики.
Необходимо. |
blocking |
Блокировать, если условие не выполнено. Допустимые значения: false , true . |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main . |
branch-match-type |
Используйте аргумент branch , чтобы применить политику. Если значение равно exact , политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix , политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact , prefix . Значение по умолчанию: exact . |
detect |
Автоматическое определение организации. Допустимые значения: false , true . |
enabled |
Включите политику. Допустимые значения: false , true . |
minimum-approver-count |
Минимальное необходимое количество утверждающих. Например: 2 . |
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. |
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 не поддерживаются для Azure DevOps Server.
Проверка политики разрешения комментариев проверяет, разрешены ли все комментарии pr.
Настройте политику разрешения комментариев для вашей ветки, установив параметр Проверка разрешения комментариев в положение Включено. Затем выберите, нужно ли сделать политику обязательной или необязательной.
Для получения дополнительной информации о работе с комментариями к запросу на вытягивание смотрите раздел «Обзор запросов на вытягивание».
Вы можете использовать Azure DevOps CLI az repos policy comment-required для установки и обновления политики разрешения комментариев.
Чтобы создать политику разрешения комментариев, используйте команду az repos policy comment-required create.
az repos policy comment-required create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
Параметры
Параметр |
Описание |
blocking |
Блокировать, если политика не соблюдена. Допустимые значения: false , true .
Обязательное. |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main .
Требуется. |
enabled |
Включите политику. Допустимые значения: false , true .
Обязательно. |
repository-id |
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --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> . |
Чтобы обновить политику обязательных комментариев, используйте az repos policy comment-required update.
az repos policy comment-required update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
Параметры
Параметр |
Описание |
id , policy-id |
Идентификатор политики.
Обязательно. |
blocking |
Блокировать, если политика не соблюдается. Допустимые значения: false , true . |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main . |
branch-match-type |
Используйте аргумент branch для применения политики. Если значение равно exact , политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix , политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact , prefix . Значение по умолчанию: exact . |
detect |
Автоматическое обнаружение организации. Допустимые значения: false , true . |
enabled |
Включите политику. Допустимые значения: 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. |
repository-id |
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID> . |
Пример
В следующем примере идентификатор 6
политики разрешения комментариев в ветви main
репозитория Fabrikam обновляется, чтобы она была блокирующей. Комментарии необходимо разрешить, прежде чем pull-запросы могут быть объединены. В этом примере используется конфигурация 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 не поддерживаются для Azure DevOps Server.
Ограничение типов слияний
Azure Repos имеет несколько стратегий слияния, и по умолчанию все они разрешены. Вы можете поддерживать последовательную историю веток, применяя стратегию слияния для завершения PR.
Установите параметр Ограничить типы слияний в положение Вкл., чтобы ограничить, какие типы слияний допускаются в вашем репозитории.
-
Базовое слияние (без быстрого переадресации) создает фиксацию слияния в целевом объекте, родители которого являются целевыми и исходными ветвями.
-
Слияние Squash создает линейную историю с одной фиксацией в целевой ветви с изменениями из исходной ветви.
Узнайте больше о сквош-слиянии и о том, как оно влияет на историю ветвей.
-
Перебаза и быстрая переадресация создают линейную историю путем повторного размещения исходных фиксаций в целевой ветви без фиксации слияния.
-
Перебаза с фиксацией слияния воспроизводит исходные фиксации в целевом объекте, а также создает фиксацию слияния.
С помощью Azure DevOps CLI az repos policy merge-strategy можно задать и обновить политику стратегии слияния.
Создание политики стратегии слияния
Используйте az repos policy merge-strategy create для создания политики стратегии слияния.
az repos policy merge-strategy create --blocking {false, true}
--branch
--enabled {false, true}
--repository-id
[--allow-no-fast-forward {false, true}]
[--allow-rebase {false, true}]
[--allow-rebase-merge {false, true}]
[--allow-squash {false, true}]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--project]
[--subscription]
[--use-squash-merge {false, true}]
Параметры
Параметр |
Описание |
blocking |
Блокировать, если политика не соблюдена. Допустимые значения: false , true .
Обязательно. |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main .
Обязательно. |
enabled |
Включите политику. Допустимые значения: false , true .
Обязательно. |
repository-id |
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Требуется. |
allow-no-fast-forward |
Базовое слияние без 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 config. |
subscription |
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID> . |
use-squash-merge |
Всегда используйте squash merge. Этот параметр недоступен для других типов слияний. Допустимые значения: false , true .
Примечание.use-squash-merge Не рекомендуется и будет удален в будущем выпуске. Вместо этого используйте --allow-squash . |
Пример
Следующий пример устанавливает требуемую стратегию слияния для запросов на вытягивание в main
ветви репозитория Fabrikam для включения сквош-слияния. В этом примере используется конфигурация 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
Обновление политики стратегии слияния
Используйте az repos policy merge-strategy update для обновления политики стратегии слияния.
az repos policy merge-strategy update --id
[--allow-no-fast-forward {false, true}]
[--allow-rebase {false, true}]
[--allow-rebase-merge {false, true}]
[--allow-squash {false, true}]
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--org]
[--project]
[--repository-id]
[--subscription]
[--use-squash-merge {false, true}]
Параметры
Параметр |
Описание |
id , policy-id |
Идентификатор политики.
Обязательно. |
allow-no-fast-forward |
Базовое слияние без fast-forward. Сохраняет нелинейную историю точно так, как это происходило во время разработки. Допустимые значения: 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 . |
enabled |
Включите политику. Допустимые значения: 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. |
repository-id |
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 . |
subscription |
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID> . |
use-squash-merge |
Всегда ли выполнять squash merge. Этот параметр не работает для других типов слияний. Допустимые значения: false , true . |
Команды Интерфейса командной строки Azure DevOps не поддерживаются для Azure DevOps Server.
Проверка сборки
Вы можете установить политику, требующую от изменений в PR успешной сборки, прежде чем PR может быть завершен.
Политики построения сокращают перерывы и обеспечивают успешное выполнение тестов. Политики сборки полезны даже в том случае, если вы используете непрерывную интеграцию (CI) на ваших ветках разработки, чтобы заблаговременно выявлять проблемы.
Политика проверки сборки ставит в очередь новую сборку, когда создается новый запрос на включение изменений или изменения отправляются в существующий запрос, который направлен на ветвь. Политика сборки оценивает результаты сборки, чтобы определить, можно ли завершить PR.
Внимание
Перед указанием политики проверки сборки укажите конвейер сборки. Если у вас нет конвейера, см. Создать конвейер сборки. Выберите тип сборки, соответствующий типу проекта.
Добавить политику проверки сборки
Нажмите кнопку + рядом с проверкой сборки.
Заполните форму Set build policy:
Выберите конвейер сборки.
При необходимости задайте фильтр пути.
Узнайте больше о путевых фильтрах в политике ветвлений.
В разделе "Триггер" выберите "Автоматически" (при обновлении исходной ветви) или "Вручную".
В разделе "Требование политики" выберите "Обязательный" или "Необязательный". Если выбрано Обязательное, сборки должны завершиться успешно, чтобы завершить PR. Выберите "Необязательно" , чтобы предоставить уведомление о сбое сборки, но по-прежнему разрешить выполнение PR.
Задайте срок действия сборки, чтобы убедиться в том, что обновления в защищенной ветви не прерывают изменения для открытых пул-реквестов.
Немедленно при обновлении <имени> ветви: этот параметр задает состояние политики сборки PR на сбой при обновлении ветви и повторно ставит сборку в очередь. Этот параметр гарантирует успешную сборку изменений в pull request'ах, даже если защищенная ветвь изменяется.
Этот вариант лучше всего подходит для команд, важные ветви которых имеют мало изменений. Командам, работающим в насыщенных ветках разработки, может быть неудобно ждать сборку каждый раз при обновлении ветки.
После <n> часов, если <имя> ветви было обновлено: этот параметр завершает действие текущей политики, если защищенная ветвь обновляется, и актуальная сборка старше, чем указанный порог. Этот параметр представляет собой компромисс между необходимостью всегда или никогда не требовать сборку при обновлении защищённой ветви. Этот выбор уменьшает количество сборок, когда защищенная ветвь имеет частые обновления.
Никогда: обновления защищенной ветви не изменяют состояние политики. Это значение уменьшает количество сборок, но может вызвать проблемы при завершении PR, которые не были обновлены в последнее время.
Введите необязательное отображаемое имя для этой политики сборки. Это название идентифицирует политику на странице Политики ветви. Если отображаемое имя не указано, политика использует название конвейера сборки.
Выберите Сохранить.
Когда владелец PR отправляет изменения, которые успешно создаются, состояние политики обновляется.
Если у вас есть политика сборки “немедленно при обновлении< названия ветки>” или “через <n> часов, если <название ветки> обновлено”, состояние политики обновляется при изменении защищенной ветки, если предыдущая сборка больше не действительна.
Azure DevOps CLI az repos policy build можно использовать для установки и обновления политики проверки сборки.
Создание политики проверки сборки
Используйте az repos policy build create для создания политики проверки сборки.
az repos policy build create --blocking {false, true}
--branch
--build-definition-id
--display-name
--enabled {false, true}
--manual-queue-only {false, true}
--queue-on-source-update-only {false, true}
--repository-id
--valid-duration
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--path-filter]
[--project]
[--subscription]
Параметры
Параметр |
Описание |
blocking |
Блокировать, если политика не соблюдена. Допустимые значения: false , true .
Обязательно. |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main .
Обязательное. |
build-definition-id |
Идентификатор определения сборки.
Необходимо. |
display-name |
Отображаемое имя для этой политики сборки для идентификации политики. Например: Manual queue policy .
Обязательно. |
enabled |
Включите политику. Допустимые значения: false , true .
Требуется. |
manual-queue-only |
Следует ли разрешать только ручную очередь сборок. Допустимые значения: 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-only равен false .
Необходимо. |
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. Политика требует успешной сборки ID определения сборки 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
Обновление политики проверки сборки
Используйте az repos policy build update для обновления политики проверки сборки.
az repos policy build update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--build-definition-id]
[--detect {false, true}]
[--display-name]
[--enabled {false, true}]
[--manual-queue-only {false, true}]
[--org]
[--path-filter]
[--project]
[--queue-on-source-update-only {false, true}]
[--repository-id]
[--subscription]
[--valid-duration]
Параметры
Параметр |
Описание |
id , policy-id |
Идентификатор политики.
Обязательно. |
blocking |
Блокировать, если правила не соблюдены. Допустимые значения: 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 . |
enabled |
Включите политику. Допустимые значения: false , true . |
manual-queue-only |
Следует ли разрешать только ручную очередь сборок. Допустимые значения: 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 не поддерживаются для Azure DevOps Server.
Проверки состояния
Внешние службы могут использовать API состояния PR для публикации подробного состояния на ваши PR. Политика филиала для дополнительных услуг позволяет внешним службам участвовать в рабочем процессе PR и определять требования политики.
Инструкции по настройке этой политики см. в разделе "Настройка политики ветви" для внешней службы.
Автоматическое включение рецензентов кода
Вы можете автоматически добавлять рецензентов в pull-реквесты, которые изменяют файлы в определенных каталогах или файлы, либо во все pull-реквесты в репозитории.
Нажмите кнопку +, расположенную рядом с автоматически включенными рецензентами.
Заполните экран «Добавить новое правило для рецензента».
Добавление пользователей и групп в рецензенты.
Выберите "Необязательно", если вы хотите автоматически добавить рецензентов, но не требовать их утверждения для завершения pull request.
Или выберите "Обязательный", если pull request'ы не могут быть завершены до:
- Каждый пользователь, добавленный в качестве рецензента, утверждает изменения.
- По крайней мере один человек в каждой группе, добавленной в качестве рецензента, утверждает изменения.
- Если требуется только одна группа, минимальное число участников, указанных вами, утверждают изменения.
Укажите файлы и папки, требующие автоматически включенных рецензентов. Оставьте это поле пустым, чтобы вызвать необходимость рецензентов для всех pull requests в ветке.
Выберите "Разрешить утверждать собственные изменения", если владельцы запросов на изменение могут голосовать за утверждение своих собственных запросов чтобы удовлетворить эту политику.
Вы можете указать сообщение ленты активности, которое отображается в pull request.
Выберите Сохранить.
Вы можете использовать Azure DevOps CLI az repos policy required-рецензент , чтобы задать и обновить необходимую политику рецензента.
Создание требуемой политики рецензента
Используйте az repos policy required-reviewer create для создания политики обязательных рецензентов.
az repos policy required-reviewer create --blocking {false, true}
--branch
--enabled {false, true}
--message
--repository-id
--required-reviewer-ids
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--org]
[--path-filter]
[--project]
[--subscription]
Параметры
Параметр |
Описание |
blocking |
Блокировать, если политика не соблюдена. Допустимые значения: false , true .
Требуется. |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main .
Обязательно. |
enabled |
Активируйте политику. Допустимые значения: false , true .
Обязательно. |
message |
Сообщение ленты действий, которое отображается в запросе на вытягивание.
Обязательно. |
repository-id |
Идентификатор репозитория для фильтрации результатов по точному совпадению. Например, --repository-ID e556f204-53c9-4153-9cd9-ef41a11e3345 .
Обязательный. |
required-reviewer-ids |
Адреса электронной почты рецензентов, разделенные ; . Например: [email protected];[email protected] . |
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 [email protected] --output table
ID Name Is Blocking Is Enabled Repository Id Branch
---- ------------------ ------------- ------------ ------------------------------------ ---------------
35 Required reviewers True True d28cd374-e7f0-4b1f-ad60-f349f155d47c refs/heads/main
Обновление требуемой политики рецензента
Используйте az repos policy required-reviewer update для обновления требуемой политики рецензента.
az repos policy required-reviewer update --id
[--blocking {false, true}]
[--branch]
[--branch-match-type {exact, prefix}]
[--detect {false, true}]
[--enabled {false, true}]
[--message]
[--org]
[--path-filter]
[--project]
[--repository-id]
[--required-reviewer-ids]
[--subscription]
Параметры
Параметр |
Описание |
id , policy-id |
Идентификатор политики.
Обязательно. |
blocking |
Блокировать, если правила не выполнены. Допустимые значения: false , true . |
branch |
Имя ветви для фильтрации результатов по точному совпадению. Параметр --repository-id требуется для использования фильтра ветви. Например: --branch main . |
branch-match-type |
Используйте аргумент branch для применения политики. Если значение равно exact , политика применяется к ветви, которая точно соответствует аргументу --branch . Если значение равно prefix , политика применяется ко всем папкам ветви, которые соответствуют префиксу в аргументе --branch . Допустимые значения: exact , prefix . Значение по умолчанию: exact . |
detect |
Автоматическое распознание организации. Допустимые значения: false , true . |
enabled |
Включите политику. Допустимые значения: false , true . |
message |
Сообщение ленты активности, которое отображается в pull-реквесте. |
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 |
Адреса электронной почты рецензентов, разделенные с помощью ; . Например: [email protected];[email protected] . |
subscription |
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s <NAME_OR_ID> . |
Команды Интерфейса командной строки Azure DevOps не поддерживаются для Azure DevOps Server.
Обход политик ветки
В некоторых случаях может потребоваться обойти требования политики. Права на обход ограничений позволяют отправлять изменения в ветвь напрямую или завершать запросы на вытягивание, которые не соответствуют политикам ветви. Вы можете предоставить разрешения обхода пользователю или группе. Можно обойти разрешения для всего проекта, репозитория или одной ветви.
Два разрешения позволяют пользователям обойти политику ветви разными способами:
Обход политик при завершении pull-запросов применяется только к завершению pull-запросов. Пользователи с этим разрешением могут завершать pull-запросы, даже если они не удовлетворяют требованиям политик.
Обход политик при отправке применяется к пушам из локальных репозиториев и внесению изменений через веб. Пользователи с этим разрешением могут отправлять изменения непосредственно в защищенные ветви без соблюдения требований политики.
Дополнительные сведения об управлении этими разрешениями см. в разделе "Разрешения Git".
Внимание
Используйте осторожность при предоставлении возможности обхода политик, особенно на уровне репозитория и проекта. Политики являются краеугольным камнем безопасного и соответствующего управления исходным кодом.
Фильтры путей
Некоторые политики веток предлагают фильтрацию путей. Если задан фильтр пути, политика применяется только к файлам, соответствующим фильтру пути. Оставив это поле пустым, политика применяется ко всем файлам в ветви.
Можно указать абсолютные пути (путь должен начинаться либо с /
, либо с подстановочного знака) и подстановочные знаки.
Примеры:
/WebApp/Models/Data.cs
/WebApp/*
*/Models/Data.cs
*.cs
Можно указать несколько путей, используя ;
в качестве разделителя.
Пример:
/WebApp/Models/Data.cs;/ClientApp/Models/Data.cs
Пути с префиксом !
исключаются, если в противном случае они были бы включены.
Пример:
-
/WebApp/*;!/WebApp/Tests/*
включает все файлы в /WebApp
, за исключением файлов в /WebApp/Tests
-
!/WebApp/Tests/*
указывает, что файлы отсутствуют, поскольку сначала ничего не включено.
Порядок фильтров имеет важное значение. Фильтры применяются слева направо.
Вопросы и ответы
Можно ли отправлять изменения непосредственно в ветви с политиками ветви?
Вы не можете отправлять изменения непосредственно в ветви с обязательными политиками ветви, если у вас нет разрешений на обход политик ветвей. Изменения в этих ветвях можно вносить только с помощью pull requests. Вы можете отправлять изменения непосредственно в ветки с необязательными политиками, если у них нет обязательных политик.
Что такое автозавершение?
Запросы на вытягивание в ветки с настроенными политиками имеют кнопку «Автозавершение». Выберите этот параметр, чтобы автоматически завершить пул-реквест после выполнения всех правил. Автозавершение полезно, если вы не ожидаете никаких проблем с изменениями.
Когда проверяются условия политики ветви?
Политики ветки переоцениваются на сервере, когда владельцы запросов на вытягивание вносят изменения и когда рецензенты голосуют. Если политика активирует сборку, состояние сборки будет ожидать завершения сборки.
Можно ли использовать определения сборки XAML в политиках ветви?
Нет, нельзя использовать определения сборки XAML в политиках ветвей.
Какие подстановочные знаки можно использовать для обязательных рецензентов кода?
Один знак звездочки *
соответствует любому количеству символов, включая как слэши /
, так и обратные слэши \
. Вопросительные знаки ?
соответствуют любому одному символу.
Примеры:
-
*.sql
соответствует всем файлам с расширением .sql .
-
/ConsoleApplication/*
соответствует всем файлам в папке с именем ConsoleApplication.
-
/.gitattributes
соответствует файлу.gitattributes* в корневом каталоге репозитория.
-
*/.gitignore
соответствует любому файлу gitignore в репозитории.
Учитывается ли регистр требуемых путей рецензента кода?
Нет, политики ветви не учитывают регистр.
Вы можете добавить пользователей в группу, а затем добавить группу в качестве рецензента. Затем любой член группы может утвердить выполнение требования политики.
У меня есть разрешения на обход политики. Почему я по-прежнему вижу сбои политики в статусе запроса на вытягивание?
Настроенные политики всегда оцениваются для изменений pull-реквеста. Для пользователей, имеющих разрешения на обход политики, состояние политики, о котором сообщается, является только информационным. Если пользователь с правами на обход одобряет это, статус сбоя не блокирует завершение pull request.
Почему я не могу выполнить собственные запросы на вытягивание, когда установлено «Разрешить запрашивающим утвердить свои изменения»?
Как политика "Требовать минимальное количество рецензентов", так и политика автоматического включения рецензентов имеют возможность разрешить запрашивающим пользователям утвердить свои собственные изменения. В каждой политике параметр применяется только к этой политике. Этот параметр не влияет на другую политику.
Например, для пулл-реквеста установлены следующие политики:
-
Требуется минимальное количество рецензентов требует по крайней мере одного рецензента.
-
Автоматически включенные рецензенты требуют, чтобы вы или команда, в которую вы входите, были рецензентами.
-
Автоматически включенные рецензенты имеют функцию "Разрешить запрашивателям утверждать свои собственные изменения" включенной.
-
Требуется минимальное количество рецензентов, в котором Разрешить запрашивающим утверждать свои изменения не включено.
В этом случае ваше утверждение удовлетворяет автоматически включенным рецензентам, но не требованию минимального количества рецензентов, поэтому вы не можете завершить запрос на вытягивание.
Кроме того, могут существовать и другие политики, например, запрет для последнего вносящего утверждать свои собственные изменения, которые не позволяют утверждать свои изменения, даже если установлено разрешение запрашивающим пользователям утверждать свои собственные изменения.
Что происходит, когда путь в фильтрах путей не начинается ни с /
, ни с подстановочного знака?
Путь в фильтрах путей, который не начинается с /
или подстановочного знака, не имеет эффекта, и фильтр пути оценивается так, как если бы этот путь не был указан. Такой путь не может соответствовать тому, с чем начинается абсолютный /
путь к файлу.
Связанные статьи