GitHub Actions:必须具有管理员权限才能触发workflow_dispatch?

问题描述 投票:0回答:2

使用 github API,我尝试使用以下方法手动启动工作流程:

  curl \
  -X POST \
  -H "Accept: application/vnd.github+json" \ 
  -H "Authorization: MY_TOKEN" \
  https://api.github.com/repos/djpr-data/djprdashdata/actions/workflows/refresh-data.yaml/dispatches 

但我不断收到身份验证错误:

{
  "message": "Must have admin rights to Repository.",
  "documentation_url": "https://docs.github.com/rest/reference/actions#create-a-workflow-dispatch-event"
}

这似乎是与这个问题类似的问题。但我的 PAT 令牌已选择所有

admin
repo
范围。我还将存储库的用户帐户设置为
admin
,并且我已将工作流调度添加到工作流 yaml 文件中。

  workflow_dispatch:
    inputs:
      tags:
        description:
          "run from cmdline"

我一直在关注 https://docs.github.com/en/rest/actions/workflows#create-a-workflow-dispatch-event 上的文档,并且使用 API 检索所有以前的工作流程没有任何问题工作机会。我还尝试了

runs
jobs
端点,但得到了相同的错误。所以我现在不确定我还能做什么。还有其他地方需要设置权限吗?

谢谢

github github-actions github-api
2个回答
4
投票

这是一条糟糕的错误消息,告诉您您的请求格式不正确。如果您想将 PAT 作为标头传递,则需要在其前面添加

token
前缀,如 docs 中所述:

-H "Authorization: token MY_TOKEN"

但是,一旦解决了这个问题,您还会收到错误,因为您没有传递所需的

ref
有效负载。假设您的默认分支是
main
,这是正确的curl命令:

> export MY_TOKEN=gha_abcdef
> curl \
  -X POST \
  -H "Accept: application/vnd.github+json" \ 
  -H "Authorization: token $MY_TOKEN" \
  -d '{"ref": "main"}' \
  https://api.github.com/repos/djpr-data/djprdashdata/actions/workflows/refresh-data.yaml/dispatches

0
投票

我还尝试触发 Github 操作发送事件工作流程(原始级别的工作流程发送事件),最后我知道 PAT 令牌需要拥有像这样的权限 “对操作和工作流程的读写访问权限” “读取代码和元数据的访问权限(内容权限选项卡)”,它通过添加承载和令牌来工作,下面的链接会有所帮助。

https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event--code-samples

© www.soinside.com 2019 - 2024. All rights reserved.