Skip to main content

Устранение неполадок правил

Узнайте, как устранять неполадки с наборами правил при участии в репозитории.

Кто может использовать эту функцию?

Наборы правил доступны в общедоступных репозиториях с GitHub Free и GitHub Free для организаций, а также в общедоступных и частных репозиториях с GitHub Pro, GitHub Teamи GitHub Enterprise Cloud. Дополнительные сведения см. в разделе "Планы GitHub".

Наборы правил push-уведомлений доступны для плана GitHub Enterprise Cloud во внутренних и частных репозиториях, вилках репозиториев с включенными наборами push-правил и организациями в организации.

Устранение неполадок с наборами правил

Если вы не можете выполнить действие в репозитории и хотите знать, почему, можно просмотреть активные наборы правил, предназначенные для ветви или тега, с которыми вы работаете. Дополнительные сведения см. в разделе Управление наборами правил для репозитория.

В зависимости от того, какие правила активны, может потребоваться изменить журнал фиксаций локально, прежде чем отправлять фиксации в удаленную ветвь. Например, если ветвь требует подписывания фиксаций, вы можете обновить параметры подписывания, а затем использовать интерактивную перебазу в локальной ветви для перезаписи журнала 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_requestopened, , synchronize``reopened
pull_request_targetopened, , synchronize``reopened
merge_groupchecks_requested

Дополнительные сведения см. в разделе События, инициирующие рабочие процессы.

Рабочие процессы набора правил не выполняются в событиях, инициируемых этим набором GITHUB_TOKEN. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.

Блокировка создания репозитория

Обязательный рабочий процесс может блокировать создание репозитория, так как рабочий процесс не может запускаться в репозитории, который инициализирован. Чтобы обойти это, набор правил должен иметь значение "Оценка" в качестве состояния принудительного применения, или кто-то с разрешениями обхода должен создать репозиторий и обойти защиту ветви.

Дополнительные сведения о состоянии применения и режиме оценки см. в разделе Создание наборов правил для репозитория.

Дополнительные сведения об обходе разрешений см. в разделе Сведения о защищенных ветвях.

Целевые объекты ветви в наборе правил

Убедитесь, что рабочий процесс набора правил не предназначен для всех ветвей в репозитории. Оно должно быть предназначено только для ветвей, в которых все изменения в ветви выполняются запросами на вытягивание.

Поддерживаемый каталог

Убедитесь, что файл рабочего процесса существует в каталоге .github/workflows . Если вы хотите запустить рабочий процесс набора правил для pull_request событий в репозитории, который не является исходным репозиторием, можно выполнить одно из следующих действий:

Использование триггера merge_group

Если репозиторий использует GitHub Actions для выполнения необходимых проверка или если требуется рабочий процесс с помощью наборов правил организации на запросы на вытягивание в репозитории, необходимо обновить рабочие процессы, чтобы включить merge_group событие в качестве дополнительного триггера. В противном случае проверки состояния не будут активированы при добавлении запроса на вытягивание в очередь слияния. Слияние завершится ошибкой, так как обязательная проверка состояния не будет сообщаться. Событие merge_group отличается от pull_request событий и push событий.

Разрешения исходного репозитория

Убедитесь, что для разрешений исходного репозитория задано значение "Доступный из репозиториев в ORGANIZATION NAME организации".

Дополнительные сведения см. в разделе Управление параметрами GitHub Actions для репозитория.

Параметры конфиденциальности исходного репозитория

Убедитесь, что файл рабочего процесса набора правил находится в исходном репозитории с теми же или менее строгими параметрами конфиденциальности, чем репозитории, в которые вы хотите запустить его. В частности, общедоступный рабочий процесс может выполняться в любом репозитории в организации, внутренний рабочий процесс может выполняться во внутренних и частных репозиториях, а частный рабочий процесс может выполняться в частных репозиториях. Дополнительные сведения см. в разделе Сведения о рабочих процессах.

Разрешения для создания нового репозитория

Чтобы создать новый репозиторий при настройке рабочего процесса набора правил, убедитесь, что у вас есть разрешения обхода для набора правил. Дополнительные сведения см. в разделе Создание наборов правил для репозитория.

Аналитика правил

GitHub не регистрирует аналитические сведения о правилах журнала до объединения запроса на вытягивание или попытки слияния.

Параллелизм

Убедитесь, что рабочий cancel-in-progress процесс набора правил не использует параметр параллелизма. Дополнительные сведения о параллелизме см. в разделе Управление параллелизмом рабочих процессов и заданий.