Skip to main content

Использование GITHUB_TOKEN для проверки подлинности в рабочих процессах

Узнайте, как использовать GITHUB_TOKEN проверку подлинности от имени GitHub Actions.

В этом руководстве вы узнаете, как использовать GITHUB_TOKEN проверку подлинности в рабочих процессах GitHub Actions, включая примеры передачи маркера в действия, отправку запросов API и настройку разрешений для безопасной автоматизации.

Справочные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.

Использование GITHUB_TOKEN в рабочем процессе

Вы можете использовать GITHUB_TOKEN стандартный синтаксис для ссылки секретов: ${{ secrets.GITHUB_TOKEN }}. Примеры использования GITHUB_TOKEN маркера в качестве входных данных в действие или его использование для выполнения запроса API данных GitHub .

Внимание

Действие может получить доступ к GITHUB_TOKEN``github.token контексту, даже если рабочий процесс явно не передает GITHUB_TOKEN действие. Из соображений безопасности рекомендуется всегда предоставлять действиям минимальный необходимый доступ путем ограничения разрешений, предоставленных GITHUB_TOKEN. Дополнительные сведения см. в разделе Синтаксис рабочего процесса для GitHub Actions.

Пример 1. Передача GITHUB_TOKEN в качестве входных данных

В этом примере рабочий процесс использует интерфейс командной строки GitHub, для которого требуется GITHUB_TOKEN значение входного GH_TOKEN параметра:

YAML
name: Open new issue
on: workflow_dispatch

jobs:
  open-issue:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
    steps:
      - run: |
          gh issue --repo ${{ github.repository }} \
            create --title "Issue title" --body "Issue body"
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Пример 2. Вызов REST API

          `GITHUB_TOKEN` можно использовать для выполнения вызовов API, прошедших проверку подлинности. В этом примере рабочего процесса создается проблема с помощью REST API GitHub:
name: Create issue on commit

on: [ push ]

jobs:
  create_issue:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Create issue using REST API
        run: |
          curl --request POST \
          --url http(s)://HOSTNAME/api/v3/repos/${{ github.repository }}/issues \
          --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
          --header 'content-type: application/json' \
          --data '{
            "title": "Automated issue for commit: ${{ github.sha }}",
            "body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
            }' \
          --fail

Изменение разрешений для GITHUB_TOKEN

          `permissions` Используйте ключ в файле рабочего процесса, чтобы изменить разрешения для `GITHUB_TOKEN` всего рабочего процесса или отдельных заданий. Это позволяет настроить минимально необходимые разрешения для рабочего процесса или задания. Из соображений безопасности рекомендуется предоставлять `GITHUB_TOKEN` минимальный необходимый доступ.

Список разрешений, доступных для использования и их параметризованных имен, см. в разделе Управление личными маркерами доступа.

Два примера рабочего процесса, приведенные ранее в этой статье, показывают ключ, permissions используемый на уровне задания.

Предоставление дополнительных разрешений

Если вам нужен маркер, требующий разрешений, недоступных в приложении GITHUB_TOKEN, создайте GitHub App и создайте маркер доступа к установке в рабочем процессе. Дополнительные сведения см. в разделе Создание аутентифицированных запросов API с помощью приложения GitHub в рабочем процессе GitHub Actions. Кроме того, можно создать personal access token, сохранить его в качестве секрета в репозитории и использовать маркер в рабочем процессе с синтаксисом ${{ secrets.SECRET_NAME }} . Дополнительные сведения см. в разделе [AUTOTITLE и Управление личными маркерами доступа](/actions/security-guides/using-secrets-in-github-actions).

Следующие шаги

  •         [AUTOTITLE](/actions/concepts/security/github_token)
    
  •         [AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#permissions)