Skip to main content

Suppression d’une étiquette lorsqu’une carte est ajoutée à une colonne de projet (classique)

Vous pouvez utiliser GitHub Actions pour supprimer automatiquement une étiquette quand un problème ou une demande de tirage est ajouté à une colonne spécifique d’un projet (classique).

Note

  • Projects, la toute nouvelle expérience de projet, est maintenant disponible. Pour plus d’informations sur Projects, consultez « À propos des Projects ».
  • Vous pouvez uniquement créer un projet (classique) pour une organisation, un référentiel, ou un utilisateur qui a déjà au moins un projet (classique). Si vous ne parvenez pas à créer un projet (classique), créez à la place un projet.

Note

Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.

Introduction

Ce tutoriel montre comment utiliser l’action actions/github-script avec une condition pour supprimer une étiquette des problèmes et des demandes de tirage qui sont ajoutées à une colonne spécifique sur un projet (classique). Par exemple, vous pouvez supprimer l’étiquette needs review lorsque les cartes de projet sont déplacées vers la colonne Done.

Dans le tutoriel, vous allez d’abord créer un fichier de workflow qui utilise l’action actions/github-script. Ensuite, vous personnaliserez le workflow en fonction de vos besoins.

Création du workflow

  1. Choisissez un dépôt où vous souhaitez appliquer ce workflow de gestion de projet. Vous pouvez utiliser un dépôt existant auquel vous avez accès en écriture ou en créer un nouveau. Pour plus d’informations sur la création d’un dépôt, consultez « Création d’un dépôt ».

  2. Choisissez un projet (classique) qui appartient au dépôt. Ce workflow ne peut pas être utilisé avec des projets appartenant à des utilisateurs ou à des organisations. Vous pouvez utiliser un projet (classique) existant, ou vous pouvez créer un nouveau projet (classique). Pour plus d'informations sur la création d'un projet, consultez « Création d’un project (classic). »

  3. Dans votre dépôt, créez un fichier nommé .github/workflows/YOUR_WORKFLOW.yml, en YOUR_WORKFLOW remplaçant par un nom de votre choix. Il s’agit d’un fichier de workflow. Pour plus d’informations sur la création de nouveaux fichiers dans GitHub, consultez « Création de fichiers ».

  4. Copiez le contenu YAML suivant dans votre fichier de workflow.

    YAML
    name: Remove a label
    on:
      project_card:
        types:
          - moved
    jobs:
      remove_label:
        if: github.event.project_card.column_id == '12345678'
        runs-on: ubuntu-latest
        permissions:
          issues: write
          pull-requests: write
        steps:
          - uses: actions/github-script@v6
            with:
              script: |
                // this gets the number at the end of the content URL, which should be the issue/PR number
                const issue_num = context.payload.project_card.content_url.split('/').pop()
                github.rest.issues.removeLabel({
                  issue_number: issue_num,
                  owner: context.repo.owner,
                  repo: context.repo.repo,
                  name: ["needs review"]
                })
    
  5. Personnalisez les paramètres dans votre fichier de workflow :

    • Dans github.event.project_card.column_id == '12345678', remplacez 12345678 par l’ID de la colonne dans laquelle vous souhaitez annuler l’étiquette des problèmes et les demandes de tirage déplacées vers cet emplacement.

      Pour trouver l’ID de colonne, accédez à votre projet (classique). En regard du titre de la colonne, cliquez sur et sur Copier le lien de colonne. L’ID de colonne est le numéro affiché à la fin du lien copié. Par exemple, 24687531 est l’ID de colonne pour https://github.com/octocat/octo-repo/projects/1#column-24687531.

      Si vous souhaitez agir sur plusieurs colonnes, séparez les conditions avec ||. Par exemple, if github.event.project_card.column_id == '12345678' || github.event.project_card.column_id == '87654321' intervient chaque fois qu’une carte de projet est ajoutée à la colonne 12345678 ou 87654321. Les colonnes peuvent se trouver sur des projets (classique) différents.

    • Remplacez la valeur de name dans la fonction github.rest.issues.removeLabel() par le nom de l’étiquette que vous souhaitez supprimer des problèmes ou des demandes de tirage qui sont déplacés vers la ou les colonnes spécifiées. Pour plus d’informations sur les étiquettes, consultez « Gestion des étiquettes ».

  6. Commitez votre fichier de workflow dans la branche par défaut de votre dépôt. Pour plus d’informations, consultez « Création de fichiers ».

Test du workflow

Chaque fois qu’une carte de projet sur un projet (classique) de votre dépôt se déplace, ce workflow s’exécute. Si la carte est un problème ou une demande de tirage et est déplacée dans la colonne que vous avez spécifiée, le workflow supprime l’étiquette spécifiée du problème ou d’une demande de tirage. Les cartes qui sont des notes ne seront pas affectées.

Testez votre workflow en déplaçant un problème de votre projet (classique) vers la colonne cible.

  1. Ouvrez un problème dans votre référentiel. Pour plus d’informations, consultez « Création d’un problème ».
  2. Étiquetez le problème avec l’étiquette que vous souhaitez supprimer du workflow. Pour plus d’informations, consultez « Gestion des étiquettes ».
  3. Ajoutez le problème à la colonne de projet (classique) que vous avez spécifiée dans votre fichier de workflow. Pour plus d’informations, consultez « Ajout de problèmes et de demandes de tirage à un project (classic) ».
  4. Pour afficher l’exécution du workflow qui a été déclenchée en ajoutant le problème au projet, affichez l’historique de vos exécutions de workflow. Pour plus d’informations, consultez « Affichage de l’historique des exécutions de workflows ».
  5. Une fois le workflow terminé, le problème que vous avez ajouté à la colonne de projet doit avoir l’étiquette spécifiée supprimée.

Étapes suivantes