Skip to main content

Schließen inaktiver Issues

Du kannst GitHub Actions verwenden, um Issues zu kommentieren oder zu schließen, die für einen bestimmten Zeitraum inaktiv waren.

Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.

Einführung

In diesem Tutorial erfährst du, wie du die Aktion actions/stale verwendest, um Issues, die für einen bestimmten Zeitraum inaktiv waren, zu kommentieren und zu schließen. Du kannst beispielsweise kommentieren, wenn ein Problem 30 Tage lang inaktiv war, um Teilnehmer dazu zu veranlassen, aktiv zu werden. Wenn sich dann nach 14 Tagen nichts getan hat, kannst du das Problem schließen.

In diesem Tutorial erstellst du zunächst eine Workflowdatei, die die actions/stale-Aktion verwendet. Im Anschluss passt du den Workflow an deine Anforderungen an.

Erstellen des Workflows

  1. Wähle ein Repository aus, in dem du diesen Projektverwaltungsworkflow anwenden möchtest. Du kannst ein vorhandenes Repository verwenden, auf das du Schreibzugriff hast, oder du kannst ein neues Repository erstellen. Weitere Informationen zum Erstellen eines Repositorys findest du unter Ein neues Repository erstellen.

  2. Erstelle in deinem Repository eine Datei namens .github/workflows/YOUR_WORKFLOW.yml, und ersetze YOUR_WORKFLOW durch einen Namen deiner Wahl. Dies ist eine Workflowdatei. Weitere Informationen zum Erstellen neuer Dateien auf GitHub findest du unter Neue Dateien erstellen.

  3. Kopiere den folgenden YAML-Inhalt in deine Workflowdatei.

    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. Passe die Parameter in deiner Workflowdatei an:

    • Ändere den Wert für on.schedule, um festzulegen, wann dieser Workflow ausgeführt werden soll. Im obigen Beispiel wird der Workflow täglich um 1:30 Uhr (UTC) ausgeführt. Weitere Informationen zu geplanten Workflows findest du unter Ereignisse zum Auslösen von Workflows.
    • Ändere den Wert für days-before-issue-stale in die Anzahl von Tagen ohne Aktivität, nach der die Aktion actions/stale ein Issue beschriften soll. Wenn diese Aktion niemals Issues beschriften soll, lege diesen Wert auf -1 fest.
    • Ändere den Wert für days-before-issue-close in die Anzahl von Tagen ohne Aktivität, nach der die Aktion actions/stale ein Issue schließen soll. Wenn diese Aktion niemals Issues schließen soll, lege diesen Wert auf -1 fest.
    • Ändere den Wert für stale-issue-label in die Bezeichnung, die auf Issues angewendet werden soll, die für den durch days-before-issue-stale angegebenen Zeitraum inaktiv waren.
    • Ändere den Wert für stale-issue-message in den Kommentar, der Issues hinzugefügt werden soll, die durch die Aktion actions/stale beschriftet werden.
    • Ändere den Wert für close-issue-message in den Kommentar, der Issues hinzugefügt werden soll, die durch die Aktion actions/stale geschlossen werden.
  5. Committe deine Workflowdatei in den Standardbranch deines Repositorys. Weitere Informationen findest du unter Neue Dateien erstellen.

Erwartete Ergebnisse

Basierend auf dem Parameter schedule (z. B. jeden Tag um 1:30 Uhr UTC), sucht dein Workflow nach Issues, die für den angegebenen Zeitraum inaktiv waren, und fügt den angegebenen Kommentar und die angegebene Bezeichnung hinzu. Darüber hinaus schließt dein Workflow alle zuvor beschrifteten Probleme, wenn für den angegebenen Zeitraum keine weitere Aktivität stattgefunden hat.

Hinweis: Das Ereignis schedule kann sich in Phasen mit einer hohen Auslastung durch GitHub Actions-Workflowausführungen verzögern. Eine hohe Last ist unter anderem zu Beginn jeder Stunde zu verzeichnen. Wenn die Auslastung ausreichend hoch ist, werden einige Aufträge in der Warteschlange möglicherweise gelöscht. Um die Wahrscheinlichkeit einer Verzögerung zu verringern, kannst du deinen Workflow so planen, dass er zu einer anderen Uhrzeit ausgeführt wird.

Du kannst den Verlauf der Workflowausführungen anzeigen, um zu ermitteln, ob dieser Workflow regelmäßig ausgeführt wird. Weitere Informationen findest du unter Anzeigen des Ausführungsverlaufs eines Workflows.

Dieser Workflow beschriftet und/oder schließt immer nur 30 Probleme gleichzeitig, um die Überschreitung einer Ratenbegrenzung zu vermeiden. Dies kann mithilfe der Einstellung operations-per-run konfiguriert werden. Weitere Informationen findest du in der Dokumentation zur Aktion actions/stale.

Nächste Schritte

  • Informationen zu weiteren Möglichkeiten mit der Aktion actions/stale (etwa Schließen inaktiver Pull Requests, Ignorieren von Issues mit bestimmten Bezeichnungen oder Meilensteinen oder Beschränken der Überprüfung von Issues auf Issues mit bestimmten Bezeichnungen) findest du in der Dokumentation zur Aktion actions/stale.
  • Durchsuche GitHub nach Beispielen für Workflows, die diese Aktion verwenden.