Remarque : 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
-
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 ».
-
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), ou créer un projet (classique). Pour plus d’informations sur la création d’un projet, consultez « Création d’un project (classic) ».
-
Dans votre dépôt, créez un fichier nommé
.github/workflows/YOUR_WORKFLOW.yml
, enYOUR_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 ». -
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"] })
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"] })
-
Personnalisez les paramètres dans votre fichier de workflow :
-
Dans
github.event.project_card.column_id == '12345678'
, remplacez12345678
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 pourhttps://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 colonne12345678
ou87654321
. Les colonnes peuvent se trouver sur des projets (classiques) différents. -
Remplacez la valeur de
name
dans la fonctiongithub.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 ».
-
-
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.
- Ouvrez un problème dans votre référentiel. Pour plus d’informations, consultez « Création d’un problème ».
- Étiquetez le problème avec l’étiquette que vous souhaitez supprimer du workflow. Pour plus d’informations, consultez « Gestion des étiquettes ».
- 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) ».
- 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 ».
- 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
- Pour en savoir plus sur d’autres choses que vous pouvez faire avec l’action
actions/github-script
, consultez la documentation sur l’actionactions/github-script
. - Visitez GitHub pour trouver des exemples de workflow utilisant cette action.