Необходимые компоненты
Примечание.
Пользовательские правила защиты развертывания в настоящее время находятся в public preview и подвергаются изменению.
Общие сведения о правилах защиты развертывания см. в разделе Развертывание с помощью GitHub Actions.
Создание настраиваемого правила защиты развертывания с помощью GitHub Apps
- 
Создайте GitHub App. Дополнительные сведения см. в разделе Регистрация приложения GitHub. Настройте GitHub App следующим образом.
- При необходимости в текстовом поле URL-адреса обратного вызова в разделе "Идентификация и авторизация пользователей" введите URL-адрес обратного вызова. Дополнительные сведения см. в разделе Сведения о URL-адресе обратного вызова авторизации пользователя.
 - В разделе "Разрешения" выберите разрешения репозитория.
 - Справа от пункта "Действия", щелкните раскрывающееся меню и выберите Access: Только для чтения.

 - Справа от пункта "Развертывания", щелкните раскрывающееся меню и выберите Access: Чтение и запись.

 - В разделе "Подписка на события" выберите правило защиты развертывания.

 
 - 
Установите настраиваемое правило защиты развертывания в репозиториях и включите его для использования. Дополнительные сведения см. в разделе Настройка пользовательских правил защиты развертывания.
 
Утверждение или отклонение развертываний
Когда рабочий процесс достигнет задания, ссылающегося на среду с включенным пользовательским правилом защиты развертывания, GitHub отправляет POST запрос на URL-адрес, который настроен, содержащий deployment_protection_rule полезные данные. Вы можете написать правило защиты развертывания, чтобы автоматически отправлять запросы REST API, утверждающие или отклоняющие развертывание на основе полезных deployment_protection_rule данных. Настройте запросы REST API следующим образом.
- 
Проверьте входящий
POSTзапрос. Дополнительные сведения см. в разделе Проверка доставки веб-перехватчика. - 
Используйте веб-маркер JSON для проверки подлинности в виде GitHub App. Дополнительные сведения см. в разделе Проверка подлинности в качестве приложения GitHub.
 - 
Используя идентификатор установки из полезных
deployment_protection_ruleданных веб-перехватчика, создайте маркер установки. Дополнительные сведения см. в разделе Сведения о проверке подлинности с помощью приложения GitHub.curl --request POST \ --url "http(s)://HOSTNAME/api/v3/app/installations/INSTALLATION_ID/ACCESS_TOKENS" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer {jwt}" \ --header "Content-Type: application/json" \ --data \ '{ \ "repository_ids": [321], \ "permissions": { \ "deployments": "write" \ } \ }' - 
При необходимости, чтобы добавить отчет о состоянии, не выполняя никаких других действий в GitHub, отправьте
POSTзапрос/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_ruleв . В тексте запроса опуститеstateэлемент . Дополнительные сведения см. в разделе Конечные точки REST API для выполнения рабочих процессов. Отчет о состоянии можно опубликовать в одном развертывании до 10 раз. Отчеты о состоянии поддерживают форматирование Markdown и могут содержать до 1024 символов. - 
Чтобы утвердить или отклонить запрос, отправьте
POSTзапрос/repos/OWNER/REPO/actions/runs/RUN_ID/deployment_protection_ruleв . В тексте запроса задайтеstateдля свойства значениеapprovedилиrejected. Дополнительные сведения см. в разделе Конечные точки REST API для выполнения рабочих процессов. - 
При необходимости запросите состояние утверждения рабочего процесса, отправив
GETзапрос/repos/OWNER/REPOSITORY_ID/actions/runs/RUN_ID/approvalsв . Дополнительные сведения см. в разделе Конечные точки REST API для выполнения рабочих процессов. - 
При необходимости просмотрите развертывание на GitHub. Дополнительные сведения см. в разделе Проверка развертываний.