{"meta":{"title":"Устранение неполадок с обязательными проверками состояния","intro":"Устраните распространенные ошибки и разблокируйте слияние или отправку в защищенные ветви путем устранения неполадок, необходимых проверок состояния.","product":"Запросы на включение внесенных изменений","breadcrumbs":[{"href":"/ru/pull-requests","title":"Запросы на включение внесенных изменений"},{"href":"/ru/pull-requests/how-tos","title":"How-tos"},{"href":"/ru/pull-requests/how-tos/merge-and-close-pull-requests","title":"Слияние и закрытие"},{"href":"/ru/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-required-status-checks","title":"Устранение неполадок с проверками состояния"}],"documentType":"article"},"body":"# Устранение неполадок с обязательными проверками состояния\n\nУстраните распространенные ошибки и разблокируйте слияние или отправку в защищенные ветви путем устранения неполадок, необходимых проверок состояния.\n\nИспользуйте эти проверки, когда обязательные блоки проверки состояния объединяются или отправляется в защищенную ветвь. См [. раздел AUTOTITLE](/ru/pull-requests/reference/status-checks).\n\n* Проверка состояния должна успешно завершиться в выбранном репозитории за последние семь дней.\n* Если проверка и состояние фиксации имеют одинаковое имя, оба должны передаваться при необходимости. См [. раздел AUTOTITLE](/ru/rest/checks).\n* Если защита ветви требует, чтобы ваша ветвь была up-to-date, объединить или перебазировать базовую ветвь в свою ветвь. См. раздел \\[AUTOTITLE и [Сведения о защищенных ветвях](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-status-checks-before-merging)]\\(/get-started/using-git/about-git-rebase).\n\nЕсли необходимые проверки состояния не прошли, отправка в защищенную ветвь возвращает ошибку, аналогичную этой.\n\n```shell\nremote: error: GH006: Protected branch update failed for refs/heads/main.\nremote: error: Required status check \"ci-build\" is failing\n```\n\n> \\[!NOTE]\n> Запросы на вытягивание, которые являются актуальными и передают обязательная проверка состояния, можно объединить локально и отправить в защищенная ветвь. Это можно сделать, не выполняя проверки состояния самой фиксации слияния.\n\n## Требуется проверка, необходимая для успешного выполнения последней фиксации SHA\n\nПроверьте следующее, если требуется проверка по-прежнему блокирует запрос на вытягивание.\n\n* Необходимые проверки должны пройти последнюю фиксацию SHA. Проверки из предыдущих фиксаций не соответствуют требованиям.\n* Состояния успешной проверки: `success`и `skipped``neutral`. См [. раздел AUTOTITLE](/ru/pull-requests/reference/status-checks).\n\n## Конфликты между головной фиксацией и тестовой фиксацией слияния\n\nИспользуйте флажок состояния запроса на вытягивание, чтобы определить, какая фиксация должна пройти.\n\n| Источник проверки состояния                  | Что необходимо передать   | Что вы можете увидеть                       |\n| -------------------------------------------- | ------------------------- | ------------------------------------------- |\n| Проверка фиксации слияния имеет состояние    | Тестовая фиксация слияния | `Showing checks for the merge commit`       |\n| Проверка фиксации слияния не имеет состояния | Фиксация головы           | Проверяет наличие последней фиксации головы |\n\nСм [. раздел AUTOTITLE](/ru/rest/pulls/pulls#get-a-pull-request).\n\n## Обработка пропущенных, но обязательных проверок\n\n| Причина                                                                                                                                                                                                                                                                                                                                                                                                    | Result                                                                 | Исправление или проверка                                                                                                                                                                                           |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Рабочий процесс пропускается путем [фильтрации путей](/ru/actions/reference/workflows-and-actions/workflow-syntax#onpushpull_requestpull_request_targetpathspaths-ignore), [фильтрации ветвей](/ru/actions/reference/workflows-and-actions/workflow-syntax#onpull_requestpull_request_targetbranchesbranches-ignore) или [сообщения фиксации](/ru/actions/how-tos/manage-workflow-runs/skip-workflow-runs) | Связанные проверки остаются в состоянии \"Ожидание\" и блокируют слияние | Избегайте необходимости пропускать рабочие процессы.                                                                                                                                                               |\n| Задание пропускается условным                                                                                                                                                                                                                                                                                                                                                                              | Задание сообщает \"Успешно\"                                             | См [. раздел AUTOTITLE](/ru/actions/how-tos/write-workflows/choose-when-workflows-run/control-jobs-with-conditions).                                                                                               |\n| Задание зависит от неудачного задания                                                                                                                                                                                                                                                                                                                                                                      | Зависимое задание пропускается и не может блокировать слияние          | Используется `always()` для `needs` обязательных проверок, зависящих от других заданий. См [. раздел AUTOTITLE](/ru/actions/how-tos/write-workflows/choose-what-workflows-do/use-jobs#defining-prerequisite-jobs). |\n\n### Пример\n\nДля этого рабочего процесса требуется успешное `build` задание, но выполняется только при изменении файлов `scripts`запроса на вытягивание.\n\n```yaml\nname: ci\non:\n  pull_request:\n    paths:\n      - 'scripts/**'\njobs:\n  build:\n    runs-on: ubuntu-latest\n    strategy:\n      matrix:\n        node-version: [12.x, 14.x, 16.x]\n    steps:\n    - uses: actions/checkout@v6\n    - name: Use Node.js ${{ matrix.node-version }}\n      uses: actions/setup-node@v7\n      with:\n        node-version: ${{ matrix.node-version }}\n        cache: 'npm'\n    - run: npm ci\n    - run: npm run build --if-present\n    - run: npm test\n```\n\nЗапрос на вытягивание, который изменяет только файл в корневом каталоге репозитория, не активирует этот рабочий процесс. Если `build` это необходимо, запрос на вытягивание блокируется с сообщением \"Ожидание сообщения о состоянии\".\n\n### Проверка состояния с GitHub Actions очередью слияния\n\nЕсли для очереди слияния требуется GitHub Actions проверка, активируйте рабочий процесс с событием `merge_group` .\n\n> \\[!NOTE]\n> Если репозиторий использует GitHub Actions для выполнения обязательных проверок на запросы на вытягивание в репозитории, необходимо обновить рабочие процессы, чтобы включить `merge_group` событие в качестве дополнительного триггера. В противном случае проверки состояния не будут активированы при добавлении запроса на вытягивание в очередь слияния. Слияние завершится ошибкой, так как обязательная проверка состояния не будет сообщаться. Событие `merge_group` отличается от `pull_request` событий и `push` событий.\n\nПример конфигурации триггера:\n\n```yaml\non:\n  pull_request:\n  merge_group:\n```\n\nСм [. раздел AUTOTITLE](/ru/actions/reference/workflows-and-actions/events-that-trigger-workflows#merge_group).\n\n## Обязательные проверки состояния из непредвиденных источников\n\nЗащищенная ветвь также может требовать проверку состояния от определенного GitHub App. Если вы видите сообщение, аналогичное приведенному ниже, убедитесь, что флажок, указанный в поле слияния, был установлен ожидаемым приложением.\n\n```text\nRequired status check \"build\" was not set by the expected GitHub App.\n```"}