Skip to main content

ワークフローで GitHub CLI を使用する

GitHub Actions ワークフローでは、GitHub CLI を使用してスクリプトを作成できます。

メモ

GitHub CLI の詳細については、「GitHub CLI について」を参照してください。

GitHub CLI は、GitHub でホストされるすべてのランナーにプレインストールされます。 GitHub CLI を使う各ステップで、GH_TOKEN という環境変数に必要なスコープを持つトークンを設定する必要があります。

任意の GitHub CLI コマンドを実行できます。 たとえば、このワークフローでは、gh issue comment サブコマンドを使って、issue が開かれるときにコメントを追加します。

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.GITHUB_TOKEN }} ISSUE: ${{ github.event.issue.html_url }} 

GitHub CLI を使って API 呼び出しを実行することもできます。 たとえば、このワークフローでは、最初に gh api サブコマンドを使って GraphQL API のクエリを実行し、結果を解析します。 次に、後のステップでアクセスできる環境変数に結果を格納します。 2 番目のステップでは、gh issue create サブコマンドを使って、最初のステップの情報を含む issue を作成します。

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: GH_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: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}