Skip to main content

Planen der Erstellung von Issues

Du kannst GitHub Actions verwenden, um regelmäßig ein Issue zu erstellen, z. B. für tägliche Besprechungen oder vierteljährliche Überprüfungen.

Einführung

In diesem Tutorial wird gezeigt, wie sich mit GitHub CLI regelmäßig ein Sachverhalt erstellen lässt. Du kannst beispielsweise für jede Woche ein Issue erstellen, das als Tagesordnung für eine Teambesprechung verwendet werden soll. Weitere Informationen zur GitHub CLI findest du unter Verwenden der GitHub CLI in Workflows.

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

  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: 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
    
  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 jeden Montag um 7:20 Uhr UTC ausgeführt. Weitere Informationen zu geplanten Workflows findest du unter Ereignisse zum Auslösen von Workflows.
    • Ändere den Wert für ASSIGNEES in die Liste der GitHub-Benutzernamen, die du dem Issue zuweisen möchtest.
    • Ändere den Wert für LABELS in die Liste der Bezeichnungen, die du auf das Issue anwenden möchtest.
    • Ändere den Wert für TITLE in den Titel, den das Issue haben soll.
    • Ändere den Wert für BODY 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 PINNED auf true fest. Weitere Informationen zu angehefteten Issues findest du unter Einen Issue an Dein Repository anheften.
    • Wenn das von diesem Workflow generierte vorherige Issue immer geschlossen werden soll, wenn ein neues Issue erstellt wird, lege CLOSE_PREVIOUS auf true fest. Der Workflow schließt das jüngste Issue, das die im Feld labels definierten Bezeichnungen enthält. Um zu vermeiden, dass das falsche Issue geschlossen wird, verwende eine eindeutige Bezeichnung oder eine eindeutige Kombination aus Bezeichnungen.
  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 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 PINNED auf true festgelegt hast, heftet der Workflow das Issue an dein Repository an. Wenn du CLOSE_PREVIOUS 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 findest du unter Anzeigen des Ausführungsverlaufs eines Workflows.

Nächste Schritte