Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-06-03. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

自动令牌身份验证

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

注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。

关于 GITHUB_TOKEN 密� �

在每个工作流程运行开始时,GitHub 会自动创建唯一的 GITHUB_TOKEN 密� �以在工作流程中使用。 您可以使用 GITHUB_TOKEN 在工作流程运行中进行身份验证。

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

在每个作业开始之前, GitHub 将为作业提取安装访问令牌。 The GITHUB_TOKEN expires when a job finishes or after a maximum of 24 hours.

令牌在 github.token 上下文中也可用。 更多信息请参阅“上下文”。

在工作流程中使用 GITHUB_TOKEN

您可以使用� �准语法引用密钥以使用 GITHUB_TOKEN${{ secrets.GITHUB_TOKEN }}。 使用 GITHUB_TOKEN 的示例包括将令牌作为操作的输入,或使用它来建立验证的 GitHub Enterprise Server API 请求。

When you use the repository's GITHUB_TOKEN to perform tasks, events triggered by the GITHUB_TOKEN will not create a new workflow run. 这可以防止意外创建递归工作流程运行。 例如,如果工作流程运行使用仓库的 GITHUB_TOKEN 推送代� �,则即使仓库包含配置为在 push 事件发生时运行的工作流程,新工作流程也不会运行。

示例 1:将 GITHUB_TOKEN 作为输入� 递

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

YAML
name: Pull request labeler
on: [ pull_request_target ]

jobs:
  triage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/labeler@v3
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

例2:调用 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 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 提交的散列为:_${{ github.sha }}_.”
            }' \
          --fail

GITHUB_TOKEN 的权限

有关 GitHub 应用程序 可通过各种权限访问的 API 端点的信息,请参阅“GitHub 应用程序 权限”。

作用域访问类型通过复刻的仓库访问
操作读/写读取
检查读/写读取
内容读/写读取
部署读/写读取
议题读/写读取
元数据读取读取
读/写读取
pull-requests读/写读取
repository-projects读/写读取
状态读/写读取

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

  1. 使用或创建具有该仓库适当权限的令牌。 更多信息请参阅“创建个人访问令牌”。
  2. 添� 令牌作为工作流程仓库中的密� �,然后使用 ${{ secrets.SECRET_NAME }} 语法进行引用。 更多信息请参阅“创建和使用� 密密� �”。

延伸阅读