注: 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
输入参数的值:
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
中未提供的权限,您可以创建个人访问令牌并将其设置为仓库中的密� �:
- 使用或创建具有该仓库适当权限的令牌。 更多信息请参阅“创建个人访问令牌”。
- 添� 令牌作为工作流程仓库中的密� �,然后使用
${{ secrets.SECRET_NAME }}
语法进行引用。 更多信息请参阅“创建和使用� 密密� �”。