我试图添加一个CD部署步骤到我们的Github行动。作为其中的一部分,我需要一个Github访问令牌,它能够检查提交PR的用户是否是特定团队的成员。
GITHUB_TOKEN
似乎是在Github动作中获得的机制,但它似乎没有权限访问此API或不冒充用户,因为当我在一个动作中使用它来尝试测试这种方法:
- name: Check team membership
run: |
curl
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}"
https://api.github.com/orgs/fabriq-cloud/teams/fabriq/members
我得到404:
{
"message": "Not Found",
"documentation_url": "https://docs.github.com/rest/reference/teams#list-team-members"
}
当本地具有相同用户的PAT时,这将返回团队成员列表。
是否有一种方法可以获得一个GITHUB_TOKEN,它可以模拟用户提交的PR,范围很窄,以检查该用户是否是团队的成员?
GITHUB_TOKEN
secret基本上是GitHub应用程序安装访问令牌,它的权限仅限于包含您的工作流的存储库,因为应用程序可以访问单个repo。
尝试生成一个单独的令牌(选择read:org
范围),将其设置为您的repo的Actions Secret,然后使用这个新的Secret访问您的工作流中的Teams API。
read:org
scope:只读访问组织成员、组织项目和团队成员。
附加引用:
- 自动令牌认证官方文档
- GitHub Actions中的GITHUB_TOKEN:如何工作,更改权限,自定义(dev.to)