Hinweis
Auf GitHub gehostete Runner werden aktuell nicht auf GitHub Enterprise Server unterstützt.
Einführung
In diesem Tutorial wird gezeigt, wie sich mit GitHub CLI regelmäßig ein Sachverhalt erstellen lässt. Sie können beispielsweise jede Woche ein Thema erstellen, das als Agenda für eine Teambesprechung verwendet wird. Weitere Informationen zur GitHub CLI findest du unter AUTOTITLE.
Im Tutorial erstellen Sie zunächst eine Workflowdatei, die die GitHub CLI 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_WORKFLOWdurch 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: Weekly Team Sync on: schedule: - cron: 20 07 * * 1 jobs: create_issue: name: Create team sync issue runs-on: ubuntu-latest permissions: issues: write steps: - name: Create team sync issue run: | if [[ $CLOSE_PREVIOUS == true ]]; then previous_issue_number=$(gh issue list \ --label "$LABELS" \ --json number \ --jq '.[0].number') if [[ -n $previous_issue_number ]]; then gh issue close "$previous_issue_number" gh issue unpin "$previous_issue_number" fi fi new_issue_url=$(gh issue create \ --title "$TITLE" \ --assignee "$ASSIGNEES" \ --label "$LABELS" \ --body "$BODY") if [[ $PINNED == true ]]; then gh issue pin "$new_issue_url" fi env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_REPO: ${{ github.repository }} TITLE: Team sync ASSIGNEES: monalisa,doctocat,hubot LABELS: weekly sync,docs-team BODY: | ### Agenda - [ ] Start the recording - [ ] Check-ins - [ ] Discussion points - [ ] Post the recording ### Discussion Points Add things to discuss below - [Work this week](https://github.com/orgs/github/projects/3) PINNED: false CLOSE_PREVIOUS: falsename: Weekly Team Sync on: schedule: - cron: 20 07 * * 1 jobs: create_issue: name: Create team sync issue runs-on: ubuntu-latest permissions: issues: write steps: - name: Create team sync issue run: | if [[ $CLOSE_PREVIOUS == true ]]; then previous_issue_number=$(gh issue list \ --label "$LABELS" \ --json number \ --jq '.[0].number') if [[ -n $previous_issue_number ]]; then gh issue close "$previous_issue_number" gh issue unpin "$previous_issue_number" fi fi new_issue_url=$(gh issue create \ --title "$TITLE" \ --assignee "$ASSIGNEES" \ --label "$LABELS" \ --body "$BODY") if [[ $PINNED == true ]]; then gh issue pin "$new_issue_url" fi env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_REPO: ${{ github.repository }} TITLE: Team sync ASSIGNEES: monalisa,doctocat,hubot LABELS: weekly sync,docs-team BODY: | ### Agenda - [ ] Start the recording - [ ] Check-ins - [ ] Discussion points - [ ] Post the recording ### Discussion Points Add things to discuss below - [Work this week](https://github.com/orgs/github/projects/3) PINNED: false CLOSE_PREVIOUS: false -
Passe die Parameter in deiner Workflowdatei an:
- Ändere den Wert für , um festzulegen, wann dieser Workflow ausgeführt werden soll. Im obigen Beispiel wird der Workflow jeden Montag um 7:20 Uhr UTC ausgeführt. Weitere Informationen zu geplanten Workflows findest du unter AUTOTITLE.
- Ändere den Wert für die Liste der GitHub-Benutzernamen, die du dem Issue zuweisen möchtest.
- Ändere den Wert für in die Liste der Bezeichnungen, die du auf das Issue anwenden möchtest.
- Ändere den Wert für in den Titel, den das Issue haben soll.
- Ändere den Wert für in den Text, der im Issuetext angezeigt werden soll. Mit dem Zeichen kannst du einen mehrzeiligen Wert für diesen Parameter verwenden.
- Wenn du dieses Issue in deinem Repository anheften möchtest, lege auf fest. Weitere Informationen zu angehefteten Issues findest du unter AUTOTITLE.
- Wenn das von diesem Workflow generierte vorherige Issue immer geschlossen werden soll, wenn ein neues Issue erstellt wird, lege auf fest. Der Workflow schließt das jüngste Issue, das die im Feld definierten Bezeichnungen enthält. Um zu vermeiden, dass das falsche Issue geschlossen wird, verwende eine eindeutige Bezeichnung oder eine eindeutige Kombination aus Bezeichnungen.
-
Committe deine Workflowdatei in den Standardbranch deines Repositorys. Weitere Informationen finden Sie unter Neue Dateien erstellen.
Erwartete Ergebnisse
Basierend auf dem Parameter (z. B. jeden Montag um 7:20 Uhr UTC) erstellt dein Workflow ein neues Issue mit den zugewiesenen Personen, Bezeichnungen, dem Titel und dem Textkörper, die bzw. den du angegeben hast. Wenn du auf festgelegt hast, heftet der Workflow das Issue an dein Repository an. Wenn du auf TRUE festgelegt hast, schließt der Workflow das jüngste Issue mit den entsprechenden Bezeichnungen.
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 finden Sie unter AUTOTITLE.
Nächste Schritte
- Weitere Informationen zu weiteren Aktionen, die Sie mit den GitHub CLI erledigen können, z. B. mithilfe einer Problemvorlage, finden Sie in der Dokumentation.
- Durchsuchen Sie GitHub Marketplace nach Aktionen im Zusammenhang mit geplanten Problemen.