Устранение неполадок с наборами правил
Если вы не можете выполнить действие в репозитории и хотите знать, почему, можно просмотреть активные наборы правил, предназначенные для ветви или тега, с которыми вы работаете. Дополнительные сведения см. в разделе Управление наборами правил для репозитория.
В зависимости от того, какие правила активны, может потребоваться изменить журнал фиксаций локально, прежде чем отправлять фиксации в удаленную ветвь. Например, если ветвь требует подписывания фиксаций, вы можете обновить параметры подписывания, а затем использовать интерактивную перебазу в локальной ветви для перезаписи журнала Git с подписанными фиксациями. Дополнительные сведения см. в разделе [AUTOTITLE и Доступные правила для наборов правил](/get-started/using-git/using-git-rebase-on-the-command-line).
Если ветвь или тег ориентированы на правила, ограничивающие метаданные фиксаций, фиксации могут быть отклонены, если часть метаданных фиксации не соответствует определенному шаблону. Например, может потребоваться добавить номер проблемы в начало сообщения фиксации или изменить имя новой ветви или тега, который вы пытаетесь отправить в репозиторий. Если фиксации отклонены, появится сообщение о том, что шаблон должен соответствовать соответствующим метаданным. Как и при подписанных фиксациях, может потребоваться выполнить перебазу, чтобы сквашивать фиксации или перезаписывать каждую фиксацию по отдельности. Дополнительные сведения см. в разделе Доступные правила для наборов правил.
При использовании наборов правил push-отправки допускается не более 1000 ссылочных обновлений. Если ваш push-запрос превышает это ограничение, оно будет отклонено. Дополнительные сведения см. в разделе Создание наборов правил для репозитория.
Устранение неполадок рабочих процессов набора правил
Рабочие процессы набора правил можно настроить на уровне организации, чтобы рабочие процессы проходили перед объединением запросов на вытягивание. Дополнительные сведения см. в разделе Создание наборов правил для репозиториев в организации.
Рабочие процессы набора правил для открытых запросов на вытягивание
Если при открытии запроса на вытягивание создается правило, требуемый рабочий процесс не будет выполняться автоматически. Чтобы активировать необходимый рабочий процесс, отправьте новую фиксацию, обновите ветвь или закройте и повторно откройте запрос на вытягивание.
Поддерживаемые события рабочего процесса набора правил
Рабочие процессы набора правил поддерживают использование pull_request``pull_request_target
событий и merge_group
событий. В результате необходимо указать одно или несколько этих событий в on:
разделе рабочего процесса, чтобы рабочий процесс выполнялся набором правил.
Все фильтры, указанные для поддерживаемых событий, игнорируются , например, branches
, branches-ignore
и paths``types
т. д. Рабочий процесс активируется только и всегда активируется по умолчанию типами действий поддерживаемых событий.
Мероприятие | Типы действий по умолчанию |
---|---|
pull_request | opened , , synchronize``reopened |
pull_request_target | opened , , synchronize``reopened |
merge_group | checks_requested |
Дополнительные сведения см. в разделе События, инициирующие рабочие процессы.
Рабочие процессы набора правил не выполняются в событиях, инициируемых этим набором GITHUB_TOKEN
. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
Блокировка создания репозитория
Обязательный рабочий процесс может блокировать создание репозитория, так как рабочий процесс не может запускаться в репозитории, который инициализирован. Чтобы обойти это, набор правил должен иметь значение "Оценка" в качестве состояния принудительного применения, или кто-то с разрешениями обхода должен создать репозиторий и обойти защиту ветви.
Дополнительные сведения о состоянии применения и режиме оценки см. в разделе Создание наборов правил для репозитория.
Дополнительные сведения об обходе разрешений см. в разделе Сведения о защищенных ветвях.
Целевые объекты ветви в наборе правил
Убедитесь, что рабочий процесс набора правил не предназначен для всех ветвей в репозитории. Оно должно быть предназначено только для ветвей, в которых все изменения в ветви выполняются запросами на вытягивание.
Поддерживаемый каталог
Убедитесь, что файл рабочего процесса существует в каталоге .github/workflows
. Если вы хотите запустить рабочий процесс набора правил для pull_request
событий в репозитории, который не является исходным репозиторием, можно выполнить одно из следующих действий:
- Добавьте условный объект в файл рабочего процесса, например.
if: true
Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions. - Отключите действия полностью в исходном репозитории. Дополнительные сведения см. в разделе Управление параметрами GitHub Actions для репозитория.
- Отключите отдельный рабочий процесс в исходном репозитории. Дополнительные сведения см. в разделе Отключение и включение рабочего процесса.
Использование триггера merge_group
Если репозиторий использует GitHub Actions для выполнения необходимых проверка или если требуется рабочий процесс с помощью наборов правил организации на запросы на вытягивание в репозитории, необходимо обновить рабочие процессы, чтобы включить merge_group
событие в качестве дополнительного триггера. В противном случае проверки состояния не будут активированы при добавлении запроса на вытягивание в очередь слияния. Слияние завершится ошибкой, так как обязательная проверка состояния не будет сообщаться. Событие merge_group
отличается от pull_request
событий и push
событий.
Разрешения исходного репозитория
Убедитесь, что для разрешений исходного репозитория задано значение "Доступный из репозиториев в ORGANIZATION NAME
организации".
Дополнительные сведения см. в разделе Управление параметрами GitHub Actions для репозитория.
Параметры конфиденциальности исходного репозитория
Убедитесь, что файл рабочего процесса набора правил находится в исходном репозитории с теми же или менее строгими параметрами конфиденциальности, чем репозитории, в которые вы хотите запустить его. В частности, общедоступный рабочий процесс может выполняться в любом репозитории в организации, внутренний рабочий процесс может выполняться во внутренних и частных репозиториях, а частный рабочий процесс может выполняться в частных репозиториях. Дополнительные сведения см. в разделе Сведения о рабочих процессах.
Разрешения для создания нового репозитория
Чтобы создать новый репозиторий при настройке рабочего процесса набора правил, убедитесь, что у вас есть разрешения обхода для набора правил. Дополнительные сведения см. в разделе Создание наборов правил для репозитория.
Аналитика правил
GitHub не регистрирует аналитические сведения о правилах журнала до объединения запроса на вытягивание или попытки слияния.
Параллелизм
Убедитесь, что рабочий cancel-in-progress
процесс набора правил не использует параметр параллелизма. Дополнительные сведения о параллелизме см. в разделе Управление параллелизмом рабочих процессов и заданий.