Skip to main content

Fermeture des problèmes inactifs

Vous pouvez utiliser GitHub Actions pour commenter ou clôturer les questions qui sont restées inactives pendant un certain temps.

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

  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. 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 ».

  3. 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 }}
    
  4. 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’action actions/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’action actions/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 par days-before-issue-stale.
    • Modifiez la valeur du commentaire stale-issue-message que vous souhaitez ajouter aux problèmes étiquetés par l’action actions/stale.
    • Modifiez la valeur du commentaire close-issue-message que vous souhaitez ajouter aux problèmes fermés par l’action actions/stale.
  5. 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’action actions/stale.
  • Visitez GitHub pour trouver des exemples de workflow utilisant cette action.