关于 GITHUB_TOKEN
密码
GitHub 会自动创建 GITHUB_TOKEN
密码以在工作流程中使用。 您可以使用 GITHUB_TOKEN
在工作流程运行中进行身份验证。
当您启用 GitHub Actions 时,GitHub 在您的仓库中安装 GitHub 应用程序。 GITHUB_TOKEN
密码是一种 GitHub 应用程序 安装访问令牌。 您可以使用安装访问令牌代表仓库中安装的 GitHub 应用程序 进行身份验证。 令牌的权限仅限于包含您的工作流程的仓库。 更多信息请参阅“GITHUB_TOKEN
的权限”。
在每个作业开始之前, GitHub 将为作业提取安装访问令牌。 令牌在作业完成后过期。
令牌在 github.token
上下文中也可用。 更多信息请参阅“GitHub Actions 的上下文和表达式语法”。
在工作流程中使用 GITHUB_TOKEN
要使用 GITHUB_TOKEN
密码,必须在工作流程文件中引用它。 使用令牌可能包括将令牌作为输入传递给需要该令牌的操作,或进行经过身份验证的 GitHub API 调用。
使用仓库的 GITHUB_TOKEN
代表 GitHub Actions 应用程序执行任务时,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 提交哈希是: _${{ github.sha }}_"
}'
GITHUB_TOKEN
的权限
有关 GitHub 应用程序 可通过各种权限访问的 API 端点的信息,请参阅“GitHub 应用程序 权限”。
权限 | 访问类型 | 通过复刻的仓库访问 |
---|---|---|
操作 | 读/写 | 读取 |
检查 | 读/写 | 读取 |
内容 | 读/写 | 读取 |
部署 | 读/写 | 读取 |
议题 | 读/写 | 读取 |
元数据 | 读取 | 读取 |
包 | 读/写 | 读取 |
拉取请求 | 读/写 | 读取 |
仓库项目 | 读/写 | 读取 |
状态 | 读/写 | 读取 |
如果您需要的令牌需要 GITHUB_TOKEN
中未提供的权限,您可以创建个人访问令牌并将其设置为仓库中的密码: