Remarque
Pour plus d’informations sur CLI, consultez À propos de CLI.
L’ CLI est préinstallé sur tous les exécuteurs hébergés par . Pour chaque étape qui utilise l’ CLI, vous devez définir une variable d’environnement appelée GH_TOKEN
sur un jeton avec les étendues requises.
Vous pouvez exécuter n’importe quelle commande de l’ CLI. Par exemple, ce workflow utilise la sous-commande gh issue comment
pour ajouter un commentaire lorsqu’un problème est ouvert.
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 }}
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 }}
Vous pouvez également exécuter des appels d’API via l’ CLI. Par exemple, ce workflow utilise d’abord la sous-commande gh api
pour interroger l’API GraphQL et analyser le résultat. Ensuite, il stocke le résultat dans une variable d’environnement auquel il peut accéder dans une étape ultérieure. Dans la deuxième étape, il utilise la sous-commande gh issue create
pour créer un problème contenant les informations de la première étape.
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 }}
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 }}