Skip to main content

Utilizar el CLI de en los flujos de trabajo

Nota:

Para más información sobre CLI, consulta Acerca del CLI de .

El CLI está preinstalado en todos los ejecutores hospedados en . Para cada paso en el se use CLI, debe establecer una variable de entorno llamada GH_TOKEN em un token con los ámbitos necesarios.

Puedes ejecutar cualquier comando del CLI. Por ejemplo, este flujo de trabajo usa el subcomando gh issue comment para agregar un comentario cuando se abre una incidencia.

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:
          GH_TOKEN: ${{ secrets._TOKEN }}
          ISSUE: ${{ .event.issue.html_url }}

También puedes ejecutar llamadas de la API a través de CLI. Por ejemplo, este flujo de trabajo usa primero el subcomando gh api para consultar GraphQL API y analizar el resultado. Entonces, almacenará el resultado en una variable de ambiente a la que pueda acceder en un paso posterior. En el segundo paso, usa el subcomando gh issue create para crear una incidencia que contiene la información del primer paso.

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 >> $_ENV
        env:
          GH_TOKEN: ${{ secrets._TOKEN }}
          OWNER: ${{ .repository_owner }}
          REPO: ${{ .event.repository.name }}
      - run: |
          gh issue create --title "Issue report" --body "$NUM_OPEN_ISSUES issues remaining" --repo $_REPOSITORY
        env:
          GH_TOKEN: ${{ secrets._TOKEN }}