Skip to main content

Résolution des problèmes liés aux vérifications de statut requises

Résolvez les erreurs courantes et débloquez la fusion ou le push vers des branches protégées en résolvant les problèmes liés aux vérifications d’état requises.

Qui peut utiliser cette fonctionnalité ?

Les branches protégées sont disponibles dans les référentiels publics avec GitHub Free et GitHub Free pour les organisations. Les branches protégées sont également disponibles dans des référentiels publics et privés avec GitHub Pro, GitHub Team, GitHub Enterprise Cloud et GitHub Enterprise Server.Consultez « plans de GitHub ».

Utilisez ces vérifications lorsqu’une vérification d’état requise empêche la fusion ou le push vers une branche protégée. Consultez « Status checks ».

Si les vérifications d’état requises n’ont pas réussi, le push vers une branche protégée renvoie une erreur similaire à celle-ci.

remote: error: GH006: Protected branch update failed for refs/heads/main.
remote: error: Required status check "ci-build" is failing

Remarque

Les pull requests qui sont à jour et qui passent les vérifications de statut requises peuvent être fusionnées localement et poussées vers la branche protégée. Vous pouvez le faire sans exécuter de vérifications de statut sur le commit de fusion lui-même.

La vérification requise doit réussir par rapport au dernier commit SHA

Vérifiez les points suivants si une vérification requise bloque toujours une pull request.

  • Les vérifications requises doivent réussir sur le dernier SHA du commit. Les vérifications issues de commits antérieurs ne satisfont pas à l’exigence.
  • Les états de vérification réussi sont success, skippedet neutral. Consultez « Status checks ».

Conflits entre le commit principal et le commit de fusion de test

Utilisez la zone des contrôles d’état de la pull request pour identifier quel commit doit réussir les contrôles.

Source de vérification de l’étatQu’est-ce qui doit passer ?Ce que vous pouvez voir
Le commit de fusion de test a un statutLe commit de fusion de testShowing checks for the merge commit
Le commit de fusion de test n’a aucun statutLe commit de têteVérifie le dernier commit de HEAD

Consultez « Points de terminaison d’API REST pour les pull requests ».

Gestion des vérifications omises mais requises

CauseRésultatGuide pratique pour corriger ou vérifier
Un flux de travail est ignoré par le filtrage des chemins, le filtrage des branches ou un message de commitLes vérifications associées restent dans l’état « En attente » et bloquent la fusionÉvitez d’exiger des flux de travail qui peuvent être ignorés.
Une tâche est ignorée en raison d’une conditionLe travail signale « Réussite »Consultez « Utilisation de conditions pour contrôler l’exécution des travaux ».
Un travail dépend d’un travail ayant échouéLe travail dépendant est ignoré et peut ne pas bloquer la fusionUtilisez always() avec needs pour les vérifications requises qui dépendent d’autres tâches. Consultez « Utilisation de tâches dans un flux de travail ».

Exemple

Ce flux de travail nécessite un job build réussi, mais ne s’exécute que lorsqu’une pull request modifie des fichiers dans scripts.

name: ci
on:
  pull_request:
    paths:
      - 'scripts/**'
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [12.x, 14.x, 16.x]
    steps:
    - uses: actions/checkout@v6
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

Une pull request qui modifie uniquement un fichier à la racine du référentiel ne déclenchera pas ce flux de travail. Si build est nécessaire, la requête de tirage est bloquée avec le message « En attente que l’état soit signalé. »

Vérifications d’état avec GitHub Actions et file d’attente de fusion

Si une file d’attente de fusion nécessite une GitHub Actions vérification, déclenchez le flux de travail avec l’événement merge_group .

Remarque

Si votre référentiel utilise GitHub Actions pour effectuer des vérifications requises sur les demandes de tirage dans votre référentiel, vous devez mettre à jour les workflows pour inclure l’événement merge_group en tant que déclencheur supplémentaire. Autrement, les vérifications d’état ne seront pas déclenchées lorsque vous ajouterez une demande de tirage à une file d’attente de fusion. La fusion échouera, car la vérification d’état requise ne sera pas signalée. L’événement merge_group est distinct des événements pull_request et push.

Exemple de configuration de déclencheur :

on:
  pull_request:
  merge_group:

Consultez « Événements qui déclenchent des flux de travail ».

Vérifications d’état nécessaires à partir de sources inattendues

Une branche protégée peut également nécessiter une vérification d’état à partir d’un élément spécifique GitHub App. Si vous voyez un message similaire à ce qui suit, vérifiez que la case à cocher répertoriée dans la zone de fusion a été définie par l’application attendue.

Required status check "build" was not set by the expected GitHub App.