Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2023-09-12. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Выполнение запросов API с проверкой подлинности с помощью приложения GitHub в рабочем процессе GitHub Actions

You can use an installation access token from a GitHub App to make authenticated API requests in a GitHub Actions workflow. You can also pass the token to a custom action to enable the action to make authenticated API requests.

Сведения о проверке подлинности GitHub Actions

Если необходимо выполнить запросы API с проверкой подлинности в рабочем процессе GitHub Actions или выполнить пользовательское действие, требующее маркера, следует использовать встроенный GITHUB_TOKEN , если это возможно. GITHUB_TOKEN Однако доступ к ресурсам может получить только в репозитории рабочего процесса. Если вам нужно получить доступ к дополнительным ресурсам, таким как ресурсы в организации или другом репозитории, можно использовать GitHub App. Дополнительные сведения о том, почему можно использовать GitHub App на personal access token, см. в разделе "Создание приложений GitHub".

Проверка подлинности с помощью GitHub App

Чтобы использовать GitHub App для выполнения запросов API с проверкой подлинности, необходимо зарегистрировать GitHub App, сохранить учетные данные приложения и установить приложение. После этого вы можете использовать приложение для создания маркера доступа к установке, который можно использовать для выполнения запросов API с проверкой подлинности в рабочем процессе GitHub Actions. Маркер доступа к установке также можно передать пользовательскому действию, требующего маркера.

  1. Зарегистрируйте GitHub App. Предоставьте GitHub App регистрации необходимых разрешений для доступа к нужным ресурсам. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Регистрация приложения GitHub](/apps/creating-github-apps/setting-up-a-github-app/choosing-permissions-for-a-github-app)".

  2. Сохраните идентификатор приложения GitHub App в виде секрета GitHub Actions. Идентификатор приложения можно найти на странице параметров приложения. Идентификатор приложения отличается от идентификатора клиента. Дополнительные сведения о переходе на страницу параметров для GitHub Appсм. в разделе "Изменение регистрации приложения GitHub". Дополнительные сведения о хранении секретов см. в разделе "Использование секретов в GitHub Actions".

  3. Создайте закрытый ключ для приложения. Храните содержимое получившегося файла как секрет. (Храните все содержимое файла, включая -----BEGIN RSA PRIVATE KEY----- и -----END RSA PRIVATE KEY-----.) Дополнительные сведения см. в разделе "Управление закрытыми ключами для приложений GitHub".

  4. Установите GitHub App в учетной записи пользователя или организации и предоставьте ему доступ к любым репозиториям, к которым требуется получить доступ к рабочему процессу. Дополнительные сведения см. в разделе «AUTOTITLE».

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

    Для этого можно использовать действие GitHub, как показано в следующем примере. Если вы предпочитаете не использовать это действие, можно вилировать и изменить actions/create-github-app-token действие или создать скрипт, чтобы рабочий процесс создавал маркер установки вручную. Дополнительные сведения см. в разделе «AUTOTITLE».

    В следующем примере рабочий процесс использует actions/create-github-app-token действие для создания маркера доступа к установке. Затем рабочий процесс использует маркер для выполнения запроса API через GitHub CLI.

    В следующем рабочем процессе замените APP_ID имя секрета, в котором хранится идентификатор приложения. Замените APP_PRIVATE_KEY именем секрета, в котором хранится закрытый ключ приложения.

YAML
on:
  workflow_dispatch:
jobs:
  demo_app_authentication:
    runs-on: ubuntu-latest
    steps:
      - name: Generate a token
        id: generate_token
        uses: actions/create-github-app-token@v1
        with:
          app_id: ${{ secrets.APP_ID }}
          private_key: ${{ secrets.APP_PRIVATE_KEY }}

      - name: Use the token
        env:
          GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}
        run: |
          gh api octocat