Utilizar el CLI de GitHub en los flujos de trabajo

Puedes hacer scripts con el CLI de GitHub en los flujos de trabajo de GitHub Actions.

Para aprender más sobre el CLI de GitHub, consulta la sección "Acerca del CLI de GitHub".

El CLI de GitHub está preinstalado en todos los ejecutores hospedados en GitHub. Para cada paso que utilice el CLI de GitHub, debes configurar una variable de ambiente llamada GITHUB_TOKEN para un token con los alcances requeridos.

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

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 }}

También puedes ejecutar llamadas de la API a través de CLI de GitHub. Por ejemplo, este flujo de trabajo utiliza primero el subcomando de gh api para consultar la API de GraphQL 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, utiliza el subcomando gh issue create para crear una propuesta que contenga 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 >> $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 }}

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.