Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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

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

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

GitHub CLI は、GitHub でホストされるすべてのランナーにプレインストールされます。 GitHub CLI を使う各ステップで、GITHUB_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:
          GITHUB_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:
          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 }}