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 CLI в рабочих процессах GitHub Actions.

Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

GitHub CLI предустановлен на всех средствах выполнения, размещенных на GitHub. Для каждого шага, использующего GitHub CLI, необходимо задать для переменной среды GITHUB_TOKEN маркер с необходимыми областями.

Вы можете выполнить любую команду GitHub CLI. Например, этот рабочий процесс использует подкоманду gh issue comment для добавления примечания при открытии проблемы.

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

Вы также можете выполнять вызовы API с помощью GitHub CLI. Например, этот рабочий процесс сначала использует подкоманду gh api для запроса API GraphQL и анализа результата. Затем он сохраняет результат в переменной среды, к которой он может получить доступ на следующем шаге. На втором шаге используется подкоманда gh issue create для создания проблемы, содержащей сведения с первого шага.

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