В этом руководстве вы узнаете, как использовать 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 параметра:
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 }}
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)