# Verwenden GitHub CLI in Workflows

Du kannst mit GitHub CLI in GitHub Actions-Workflows skripten.

> \[!NOTE]
> Weitere Informationen zur GitHub CLI findest du unter [Informationen zu GitHub CLI](/de/enterprise-server@3.22/github-cli/github-cli/about-github-cli).

Die GitHub CLI ist auf allen GitHub-gehosteten Runnern vorinstalliert. Für jeden Schritt, der die GitHub CLI verwendet, musst du eine Umgebungsvariable namens `GH_TOKEN` auf ein Token mit den erforderlichen Geltungsbereichen festlegen.

Du kannst alle GitHub CLI-Befehle ausführen. Dieser Workflow verwendet beispielsweise den `gh issue comment`-Unterbefehl, um einen Kommentar hinzuzufügen, wenn ein Issue geöffnet wird.

```yaml copy
name: Comment when opened
on:
  issues:
    types:
      - opened
jobs:
  comment:
    runs-on: ubuntu-latest
    steps:
      - run: gh issue comment $ISSUE --body "Thank you for opening this issue!"
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          ISSUE: ${{ github.event.issue.html_url }}
```

Du kannst API-Aufrufe auch über GitHub CLI ausführen. Dieser Workflow verwendet beispielsweise zuerst den `gh api`-Unterbefehl, um die GraphQL-API abzufragen und das Ergebnis zu analysieren. Anschließend speichert er das Ergebnis in einer Umgebungsvariablen, auf die er in einem späteren Schritt zugreifen kann. Im zweiten Schritt wird der `gh issue create`-Unterbefehl verwendet, um ein Issue zu erstellen, das die Informationen aus dem ersten Schritt enthält.

```yaml copy
name: Report remaining open issues
on:
  schedule:
    # Daily at 8:20 UTC
    - cron: '20 8 * * *'
jobs:
  track_pr:
    runs-on: ubuntu-latest
    steps:
      - run: |
          numOpenIssues="$(gh api graphql -F owner=$OWNER -F name=$REPO -f query='
            query($name: String!, $owner: String!) {
              repository(owner: $owner, name: $name) {
                issues(states:OPEN){
                  totalCount
                }
              }
            }
          ' --jq '.data.repository.issues.totalCount')"

          echo 'NUM_OPEN_ISSUES='$numOpenIssues >> $GITHUB_ENV
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          OWNER: ${{ github.repository_owner }}
          REPO: ${{ github.event.repository.name }}
      - run: |
          gh issue create --title "Issue report" --body "$NUM_OPEN_ISSUES issues remaining" --repo $GITHUB_REPOSITORY
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```