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