Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Службы Azure DevOps
Проверки состояния применяют стандарты качества путем блокировки слияний до прохождения тестов, проверки безопасности очищаются или другие условия. Azure DevOps Службы и внешние средства после проверки состояния с помощью API состояния PR.
Чтобы требовать проверку состояния в качестве политики ветвей, создайте политику в разделе "Состояние", чтобы проверить , и укажите жанр и имя проверки в формате genre/name. Затем запрос на вытягивание блокирует слияние до тех пор, пока отчеты succeededпроверки не будут выполнены.
Значения состояния и поведение слияния
Когда проверка состояния выводит результат в запрос на вытягивание, он сообщает одно из следующих значений:
| Ценность | Поведение с обязательной политикой | Поведение с необязательной политикой |
|---|---|---|
succeeded |
✓ Разблокирует политику | Информационный |
failed |
✗ Объединения блоков | Информационный |
error |
✗ Объединения блоков | Информационный |
pending |
⏳ Блоки слияния (ожидающий результат) | Информационный |
notApplicable |
✓ Требование политики обхода | Информационный |
notSet |
⏳ Обрабатывается как ожидающий | Информационный |
Note
Если для требуемой политики задано значение Apply по умолчанию, вы можете удалить notApplicable требование политики для конкретного PR без изменения конфигурации политики. Это полезно, если проверка не применима к определенному изменению.
Общие инструкции по добавлению политики проверки состояния см. в разделе "Настройка политики ветви" для внешней службы. Дополнительные параметры политики, включая авторизованные ограничения идентификации и параметры применимости политики, см. в разделе "Настройка и расширение рабочих процессов запроса на вытягивание" с состоянием запроса на вытягивание.
Проверка состояния Azure DevOps первой стороны
Ниже приведены только проверки состояния, опубликованные в собственном коде Azure DevOps Services. Каждая проверка использует фиксированное значение жанра , поэтому можно настроить политику ветви до или после публикации первого состояния службы. Все остальные проверки состояния приходят из внешних служб через API состояния PR.
Расширенная безопасность GitHub для Azure DevOps
Эти проверки состояния требуют включения расширенной безопасности GitHub для включения Azure DevOps в репозитории. Проверки оценивают уязвимости безопасности, обнаруженные при сканировании кода (CodeQL), проверке зависимостей и проверке секретов.
| Жанр | Имя. | Состояние проверка | Description |
|---|---|---|---|
AdvancedSecurity |
AllHighAndCritical |
AdvancedSecurity/AllHighAndCritical |
Блокирует слияние, если в репозитории существует любая неразрешенная критически важная уязвимость или уязвимость с высоким уровнем серьезности из любого типа сканирования (код, зависимость или секрет). Требуется политика проверки сборки с включенными задачами конвейера расширенной безопасности. |
AdvancedSecurity |
NewHighAndCritical |
AdvancedSecurity/NewHighAndCritical |
Блокирует слияние при появлении запроса на вытягивание новых критических или критических уязвимостей с высоким уровнем серьезности из любого типа сканирования. Существующие уязвимости репозитория не блокируют слияние. Требуется политика проверки сборки с задачами конвейера расширенной безопасности для сканирования ветви PR. |
Note
Обе AdvancedSecurity проверки состояния требуют политики проверки сборки и задач расширенной проверки безопасности, настроенных для Wait for Processing: true обеспечения соответствия состояниям последних результатов сканирования. Для проверки зависимостей или сканирования кода (CodeQL) включите Wait for ProcessingAdvancedSecurity-Publish задачу. Для сканирования кода также включите его в AdvancedSecurity-CodeQL-Analyze задаче. Оба проверки отображаются в раскрывающемся списке "Состояние", чтобы проверить первый успешный запуск конвейера с помощью расширенной проверки безопасности.
Tip
Если репозиторий имеет неразрешенные оповещения, начните с AdvancedSecurity/NewHighAndCritical того, чтобы избежать блокировки всех запросов на вытягивание немедленно. Миграция на AdvancedSecurity/AllHighAndCritical после устранения невыполненной работы оповещений.
Инструкции по настройке см. в разделе "Настройка проверок состояния запроса на вытягивание".
Important
Оставьте дополнительные параметры по умолчанию при настройке политики проверки состояния. Изменение авторизованного удостоверения или требование идентификатора итерации предотвращает правильное размещение проверок состояния.
покрытие кода Azure Pipelines
Azure Pipelines автоматически отправляет проверку состояния покрытия кода, когда конвейер публикует результаты покрытия кода для запроса на вытягивание. Жанр — это имя конвейера, поэтому точное genre/name значение зависит от того, как вы назвали конвейер.
| Жанр | Имя. | Состояние проверка | Description |
|---|---|---|---|
{pipeline-name} |
codecoverage |
{pipeline-name}/codecoverage |
Сообщает процент покрытия диффа для строк, измененных в запросе на вытягивание. Рекомендации по умолчанию; не блокирует слияние, если только не настроена в качестве обязательной политики ветви с минимальным пороговым значением покрытия. |
Порог передачи по умолчанию составляет 70% охвата. Чтобы настроить пороговое значение и другие параметры, добавьте azurepipelines-coverage.yml файл в корневой каталог репозитория:
coverage:
status:
comments: on
diff:
target: 80
Замените 80 нужным минимальным процентом охвата.
Инструкции по настройке см. в разделе "Принудительное применение защиты ветви" с помощью политики покрытия кода.
Tip
Жанр является производным от отображаемого имени конвейера в Azure Pipelines; оно не является отдельно настраиваемым значением. Например, конвейер с именем CI — Main используется CI - Main/codecoverage в качестве состояния для проверки значения. Проверки состояния отображаются только в раскрывающемся списке после того, как служба опубликовала хотя бы одно состояние в запрос на вытягивание. Для новых интеграции, которые еще не выполнялись, введите genre/name значение непосредственно в поле.
Пользовательские и внешние проверки состояния
Любая служба, использующая API состояния PR , может отправлять проверку состояния в запросы на вытягивание. Чтобы опубликовать проверку состояния через REST API, вызывающему удостоверению требуется разрешение на запросы на вытягивание в репозитории.
Когда служба публикует состояние, его genre/name отображается в раскрывающемся списке "Состояние" для проверки при добавлении политики. Для новых служб, которые еще не размещены, введите значение напрямую genre/name .
Общие шаблоны интеграции
| Тип интеграции | Description | Examples |
|---|---|---|
| Сборка и тестирование серверов | Внешние средства CI, которые после передачи или сбоя результатов после выполнения тестов в ветви PR. | Дженкинс, GitLab CI, CircleCI, Travis CI |
| Анализ качества кода | Статические средства анализа, которые сканируют код на наличие ошибок, уязвимостей и запах кода. | SonarQube, SonarCloud |
| Сканеры безопасности | Не Microsoft сканеры уязвимостей, которые публикуют результаты после сканирования изменений PR. Также поддерживает результаты формата SARIF. | Snyk, Checkmarx, WhiteSource (Mend), Microsoft Security DevOps |
| Соответствие требованиям и политика | Средства применения политик, которые проверяют лицензирование, стандарты кода, нормативные требования или готовность к развертыванию. | Пользовательские средства проверки соответствия требованиям, шлюзы развертывания, сканеры лицензий |
| GitHub Actions | Проверка рабочих процессов GitHub Actions отображается в Azure DevOps PR при подключении репозитория к GitHub. Сведения о конфигурации см. в Azure DevOps GitHub интеграции. | Любой рабочий процесс GitHub Actions может публиковать состояние |
| Утверждения и ворота | Службы, требующие ручного или автоматического утверждения перед разрешением слиянием. | ServiceNow, пользовательские службы утверждения через REST API |
Параметры конфигурации политики
При добавлении политики проверки состояния можно настроить следующее:
- Требование политики: задайте политику по мере необходимости (блоки объединяются, если проверка не проходит) или необязательный (только информационный).
- Авторизованное удостоверение: ограничить, какие учетные записи могут публиковать значения состояния, удовлетворяющие политике. Оставьте пустым, чтобы разрешить любую учетную запись.
- Условия сброса: укажите, сбрасывается ли состояние при отправке новой фиксации. По умолчанию принудительная отправка новой фиксации сбрасывает необходимые проверки состояния в ожидание, заставляя их оценивать последний код. Чтобы разрешить сохранение состояния в фиксациях, отключите состояние сброса всякий раз при наличии новых изменений.
-
Применимость политики. Выберите, применяется ли политика немедленно (применить по умолчанию) или только после публикации первого состояния (условно).
-
Применяется по умолчанию: блоки политики объединяются до публикации
succeededсостояния. Вы можете опубликовать,notApplicableчтобы обойти требование для конкретного PR. - Условный: политика становится активной только после того, как проверка публикует свое первое состояние.
-
Применяется по умолчанию: блоки политики объединяются до публикации
- Фильтр пути. Ограничение политики на PR, которые изменяют файлы в определенных путях (необязательно).
Чтобы реализовать настраиваемую проверку состояния, см. следующие сведения:
- Настройте и расширяйте рабочие процессы pull request с помощью статуса pull request
- Создайте сервер статусов pull-запросов с помощью Node.js
- Использование Функций Azure для создания пользовательских политик ветвей