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
-
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.
-
Erstelle in deinem Repository eine Datei namens
.github/workflows/YOUR_WORKFLOW.yml
, und ersetzeYOUR_WORKFLOW
durch einen Namen deiner Wahl. Dies ist eine Workflowdatei. Weitere Informationen zum Erstellen neuer Dateien auf GitHub findest du unter Neue Dateien erstellen. -
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 }}
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 }}
-
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 Aktionactions/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 Aktionactions/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 durchdays-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 Aktionactions/stale
beschriftet werden. - Ändere den Wert für
close-issue-message
in den Kommentar, der Issues hinzugefügt werden soll, die durch die Aktionactions/stale
geschlossen werden.
- Ändere den Wert für
-
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.
Note
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 Aktionactions/stale
. - Durchsuche GitHub nach Beispielen für Workflows, die diese Aktion verwenden.