GitHub CLI の詳細については、「GitHub CLI について」を参照してく� さい。
GitHub CLI は、GitHub でホストされるすべてのランナーにプレインストールされます。 GitHub CLI を使う各ステップで、GITHUB_TOKEN
という環境変数に必要なスコープを持つトークンを設定する必要があります。
任意の GitHub CLI コマンドを実行できます。 たとえば、このワークフローでは、gh issue comment
サブコマンドを使って、issue が開かれるときにコメントを追� します。
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 }}
GitHub CLI を使って API 呼び出しを実行することもできます。 たとえば、このワークフローでは、最初に gh api
サブコマンドを使って GraphQL API のクエリを実行し、結果を解析します。 次に、後のステップでアクセスできる環境変数に結果を� �納します。 2 番目のステップでは、gh issue create
サブコマンドを使って、最初のステップの情� �を含む issue を作成します。
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 }}