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/stale
pour commenter et fermer les problèmes qui ont été inactifs pendant une certaine période. Par exemple, vous pouvez commenter si un problème a été inactif pendant 30 jours pour inviter les participants à prendre des mesures. Ensuite, si aucune activité supplémentaire ne se produit dans les 14 jours, vous pouvez fermer le problème.
Dans le tutoriel, vous allez d’abord créer un fichier de workflow qui utilise l’action actions/stale
. 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 ».
-
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: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v5 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v5 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
-
Personnalisez les paramètres dans votre fichier de workflow :
- Modifiez la valeur de
on.schedule
pour déterminer quand vous souhaitez que ce workflow s’exécute. Dans l’exemple ci-dessus, le workflow s’exécute tous les jours à 1 h 30 UTC. Pour plus d’informations sur les workflows planifiés, consultez « Événements qui déclenchent des flux de travail ». - Modifiez la valeur de
days-before-issue-stale
pour le nombre de jours sans activité avant que l’actionactions/stale
n’étiquette un problème. Si vous ne souhaitez jamais que cette action étiquette les problèmes, définissez cette valeur sur-1
. - Modifiez la valeur de
days-before-issue-close
pour le nombre de jours sans activité avant que l’actionactions/stale
ne ferme un problème. Si vous ne souhaitez jamais que cette action ferme les problèmes, définissez cette valeur sur-1
. - Modifiez la valeur de l’étiquette
stale-issue-label
que vous souhaitez appliquer aux problèmes qui ont été inactifs pendant la durée spécifiée pardays-before-issue-stale
. - Modifiez la valeur du commentaire
stale-issue-message
que vous souhaitez ajouter aux problèmes étiquetés par l’actionactions/stale
. - Modifiez la valeur du commentaire
close-issue-message
que vous souhaitez ajouter aux problèmes fermés par l’actionactions/stale
.
- Modifiez la valeur de
-
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 ».
Résultats attendus
En fonction du paramètre schedule
(par exemple, tous les jours à 1 h 30 UTC), votre workflow trouve les problèmes inactifs pendant la période spécifiée et ajoute le commentaire et l’étiquette spécifiés. De plus, votre workflow ferme les problèmes précédemment étiquetés si aucune activité supplémentaire n’a eu lieu pendant la période spécifiée.
Remarque : L’événement schedule
peut être retardé pendant les périodes où les charges des exécutions de workflows GitHub Actions sont élevées. Les périodes de charges élevées incluent le début de chaque heure. Si la charge est suffisamment élevée, certains travaux en file d’attente peuvent être supprimés. Pour réduire le risque de retard, planifiez l’exécution de votre workflow à un autre moment dans l’heure.
Vous pouvez consulter l’historique de vos exécutions de workflow pour afficher régulièrement cette exécution de workflow. Pour plus d’informations, consultez « Affichage de l’historique des exécutions de workflows ».
Ce workflow étiquette et/ou ferme uniquement 30 problèmes à la fois afin d’éviter de dépasser une limite de débit. Vous pouvez configurer cela avec le paramètre operations-per-run
. Pour plus d’informations, consultez la documentation de l’actionactions/stale
.
Étapes suivantes
- Pour en savoir plus sur les choses supplémentaires que vous pouvez faire avec l’action
actions/stale
, comme fermer les demandes de tirage inactives, ignorer les problèmes liés à certaines étiquettes ou certains jalons, ou uniquement vérifier les problèmes avec certaines étiquettes, consultez la documentation de l’actionactions/stale
. - Visitez GitHub pour trouver des exemples de workflow utilisant cette action.