Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Verwenden der GitHub CLI in Workflows

Du kannst ein Skript GitHub CLI in GitHub Actions-Workflows erstellen.

Weitere Informationen zu GitHub CLI findest du unter Informationen zu 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 GITHUB_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
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:
          GITHUB_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
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:
          GITHUB_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:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}