👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

使用 GITHUB_TOKEN 进行身份验证

GitHub 提供一个令牌,可用于代表 GitHub 操作 进行身份验证。

GitHub 操作 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud 和 GitHub One。 GitHub 操作 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 更多信息请参阅“GitHub 的产品”。

本文内容

对仓库具有 write 权限的任何人都可以创建、读取和使用密码。

关于 GITHUB_TOKEN 密码

GitHub 会自动创建 GITHUB_TOKEN 密码以在工作流程中使用。 您可以使用 GITHUB_TOKEN 在工作流程运行中进行身份验证。

当您启用 GitHub 操作 时,GitHub 在您的仓库中安装 GitHub 应用程序。 GITHUB_TOKEN 密码是一种 GitHub 应用程序 安装访问令牌。 您可以使用安装访问令牌代表仓库中安装的 GitHub 应用程序 进行身份验证。 令牌的权限仅限于包含您的工作流程的仓库。 更多信息请参阅“GITHUB_TOKEN 的权限”。

Before each job begins, GitHub fetches an installation access token for the job. The token expires when the job is finished.

令牌在 github.token 上下文中也可用。 更多信息请参阅“GitHub 操作 的上下文和表达式语法”。

在工作流程中使用 GITHUB_TOKEN

要使用 GITHUB_TOKEN 密码,必须在工作流程文件中引用它。 使用令牌可能包括将令牌作为输入传递给需要该令牌的操作,或进行经过身份验证的 GitHub API 调用。

使用仓库的 GITHUB_TOKEN 代表 GitHub 操作 应用程序执行任务时,GITHUB_TOKEN 触发的事件不会创建新的工作流程运行。 这可以防止意外创建递归工作流程运行。 例如,如果工作流程运行使用仓库的 GITHUB_TOKEN 推送代码,则即使仓库包含配置为在 push 事件发生时运行的工作流程,新工作流程也不会运行。

GITHUB_TOKEN 作为输入传递的示例

此示例工作流程使用贴标器操作,需要 GITHUB_TOKEN 作为 repo-token 输入参数的值:

name: Pull request labeler
on:
- pull_request
jobs:
  triage:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/labeler@v2
      with:
        repo-token: ${{ secrets.GITHUB_TOKEN }}

调用 REST API 的示例

您可以使用 GITHUB_TOKEN 进行经过验证的 API 调用。 此示例工作流程使用 GitHub REST API 创建议题:

name: Create issue on commit
on:
- push
jobs:
  create_commit:
    runs-on: ubuntu-latest
    steps:
    - name: Create issue using REST API
      run: |
        curl --request POST \
        --url https://api.github.com/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 }}_."
          }'

GITHUB_TOKEN 的权限

For information about the API endpoints GitHub 应用程序 can access with each permission, see "GitHub 应用程序 Permissions."

权限访问类型通过复刻的仓库访问
操作读/写读取
检查读/写读取
内容读/写读取
部署读/写读取
issues读/写读取
元数据读取读取
读/写读取
拉取请求读/写读取
仓库项目读/写读取
状态读/写读取

如果您需要的令牌需要 GITHUB_TOKEN 中未提供的权限,您可以创建个人访问令牌并将其设置为仓库中的密码:

  1. 使用或创建具有该仓库适当权限的令牌。 For more information, see "Creating a personal access token."
  2. 添加令牌作为工作流程仓库中的密码,然后使用 ${{ secrets.SECRET_NAME }} 语法进行引用。 更多信息请参阅“创建和使用加密密码”。

问问别人

找不到要找的内容?

联系我们