Примечание: Требуемые рабочие процессы в настоящее время находятся в бета-версии и могут быть изменены.
Общие сведения
Вы можете настроить рабочий процесс, который должен выполняться в репозиториях организации для всех запросов на вытягивание, открытых в ветви по умолчанию. Необходимые рабочие процессы позволяют реализовать политики CI/CD для всей организации, которые применяются к текущим и будущим репозиториям. Требуемый рабочий процесс активируется событиями запроса на вытягивание и отображается как обязательная проверка состояния, которая блокирует возможность объединения запроса на вытягивание до тех пор, пока требуемый рабочий процесс не будет успешно выполнен.
Обязательные рабочие процессы не совпадают с повторно используемыми рабочими процессами. Повторно используемые рабочие процессы могут вызываться другим рабочим процессом. Требуемые рабочие процессы применяются в репозиториях владельцем организации.
Предварительные требования
Прежде чем настраивать необходимый рабочий процесс, обратите внимание на следующие предварительные требования.
- GitHub Actions должен быть включен для репозитория в параметрах организации, чтобы выполнять необходимые рабочие процессы. После включения на уровне организации необходимые рабочие процессы будут выполняться, даже если GitHub Actions отключен в параметрах репозитория. Дополнительные сведения об управлении GitHub Actions в репозиториях организации см. в разделе Отключение или ограничение GitHub Actions для вашей организации.
- Необходимые рабочие процессы доступны для организаций и только в репозиториях, где план организации поддерживает обязательные проверки состояния. Если обязательные проверки состояния не поддерживаются, рабочий процесс будет по-прежнему выполняться, но он не будет обязательной проверкой и не будет блокировать слияние. Дополнительные сведения о поддержке обязательных проверок состояния см. в разделе Сведения о защищенных ветвях.
- Ветвь репозитория по умолчанию должна соответствовать параметру ветви по умолчанию организации, чтобы требуемые рабочие процессы запускались в качестве обязательных проверок состояния. Если имена ветвей по умолчанию не совпадают, рабочий процесс по-прежнему будет выполняться, но это не будет обязательной проверкой. Дополнительные сведения об управлении именами ветвей по умолчанию см. в разделах Управление именем ветви по умолчанию для репозиториев в организации и Изменение ветви по умолчанию.
- Для выполнения необходимых рабочих процессов исходный репозиторий запроса на вытягивание должен находиться в той же организации, что и целевой репозиторий. GitHub будет источником требуемого рабочего процесса из фиксации HEAD ветви по умолчанию из репозитория, содержащего рабочий процесс.
- Секреты, используемые в требуемом рабочем процессе, должны создаваться на уровне организации или в целевых репозиториях.
- Секреты в исходном репозитории не будут извлекаться при выполнении рабочего процесса в целевом репозитории.
Ограничения и поведение исходного репозитория
Обратите внимание на следующие ограничения и поведение исходного репозитория и рабочего процесса:
-
Требуемые рабочие процессы могут храниться в любой папке репозитория и не ограничены папкой
.github/workflows
, как обычные рабочие процессы. Если требуемый рабочий процесс вызывает повторно используемый рабочий процесс, повторно используемый рабочий процесс должен храниться в папке.github/workflows
. При вызове повторно используемого рабочего процесса требуемый рабочий процесс должен использовать полный путь и ссылку на повторно используемый рабочий процесс. Например,{owner}/{repo}/.github/workflows/{filename}@{ref}
. -
Если требуемый рабочий процесс содержится в частном , необходимо убедиться, что рабочие процессы в репозитории доступны другим репозиториям в вашей организации. Дополнительные сведения см. в разделах Управление параметрами GitHub Actions для репозитория.
-
Рабочие процессы, хранящиеся в общедоступном репозитории, можно настроить в качестве обязательных рабочих процессов для любого репозитория в организации. Рабочие процессы, хранящиеся в частном репозитории, можно настроить только как необходимые рабочие процессы для других частных репозиториев в организации.
-
CodeQL не поддерживается в требуемых рабочих процессах, так как CodeQL требует настройки на уровне репозитория. Сведения о настройке сканирования кода см. в разделе Настройка проверки кода для репозитория.
-
Чтобы отправить в ветвь, где необходимые рабочие процессы применяются на уровне организации, создайте запрос на вытягивание, чтобы внести необходимые изменения. Вы не можете отправлять напрямую в ветви с необходимыми принудительно выполняемыми рабочими процессами.
-
Если вы хотите разрешить прямые отправки для определенного репозитория, необходимо удалить репозиторий как целевой из соответствующих требуемых рабочих процессов.
-
На требуемые рабочие процессы можно ссылаться с помощью любой ветви, тега или SHA фиксации из репозитория, содержащего файл рабочего процесса.
Ограничения и поведение целевого репозитория
Обратите внимание на следующие ограничения и поведение для целевых репозиториев.
- При настройке требуемого рабочего процесса для выполнения во всех или выбранных репозиториях видимость репозитория, содержащего требуемый рабочий процесс, повлияет на то, в каких репозиториях в организации выполняется рабочий процесс. Необходимые рабочие процессы, хранящиеся в общедоступных репозиториях, будут выполняться во всех репозиториях. Требуемые рабочие процессы, хранящиеся в частных репозиториях, будут выполняться только в других частных репозиториях.
- Необходимые рабочие процессы нельзя настроить для запуска в репозитории, в который создается рабочий процесс. Рекомендуется создать отдельный репозиторий для хранения необходимых рабочих процессов.
- При настройке требуемого рабочего процесса для выполнения во всех или выбранных репозиториях необходимые рабочие процессы не будут выполняться в репозиториях, где действия отключены в параметрах организации.
Просмотр запусков рабочих процессов для необходимых рабочих процессов
После выполнения требуемого рабочего процесса хотя бы один раз в репозитории можно просмотреть его запуски на вкладке "Действия" этого репозитория. Чтобы внести изменения в рабочие процессы, настроенные в соответствии с требованиями организации, необходимо обратиться к владельцу организации. Чтобы внести изменения в требуемый рабочий процесс, любой пользователь с разрешениями на запись для репозитория, содержащего требуемый рабочий процесс, может внести в него изменения.
-
На GitHub.com перейдите на главную страницу репозитория. 1. Щелкните Действия под именем репозитория.
-
На левой боковой панели можно просмотреть запуски рабочих процессов для обязательных рабочих процессов в разделе "Обязательные рабочие процессы".
Добавление требуемого рабочего процесса в организацию
Владельцы организации могут настраивать необходимые рабочие процессы в своей организации. Дополнительные сведения см. в разделе Отключение или ограничение GitHub Actions для вашей организации.