如何使用gh cli通过dispatch触发github actions

4

我有一个操作,其中包含以下yaml:

on:
  workflow_dispatch:
    inputs:
      BuildTarget:
        description: "Targets to rebuild. Set to all to rebuild everything."
        required: false
        default: ""

我可以使用以下方法触发它:
gh api /repos/:owner/:repo/actions/workflows/build_dev.yml/dispatches -F ref=":branch"

但是我似乎无法弄清楚如何从命令行界面将输入传递到操作中。

我尝试过:

gh api /repos/:owner/:repo/actions/workflows/build_dev.yml/dispatches -F ref=":branch" -F BuildTarget=all

这提示信息告诉我们:"BuildTarget"不是一个允许的关键字。(HTTP 422)

尝试以下操作:

gh api /repos/:owner/:repo/actions/workflows/build_dev.yml/dispatches -F ref=":branch" -F inputs='{ "BuildTarget": "all" }'

给我一个错误提示:对于“properties/inputs”,“{ \”BuildTarget\“:\”all\“}”不是对象。(HTTP 422)

您有没有想过如何从cli调用此api并将输入属性传递到工作流程中?

2个回答

3
您可以使用--input -直接发送原始正文以从标准输入读取:
gh api /repos/:owner/:repo/actions/workflows/build_dev.yml/dispatches \
   --input - <<< '{"ref":"master","inputs":{"BuildTarget":"all"}}'

结账,请查看this documentation


1
太棒了,非常感谢,解决了问题 :) - Wil
文档链接:https://docs.github.com/cn/rest/actions/workflows https://docs.github.com/cn/rest/repos/repos#create-a-repository-dispatch-event - 张馆长

1

如果您没有任何要传递的输入并且只是运行工作流程,则可以使用:

gh api /repos/joshjohanning-org/bash-testing/actions/workflows # get id
gh api -X POST /repos/joshjohanning-org/bash-testing/actions/workflows/19595110/dispatches -f ref='main'

否则,如果您需要输入,请使用@Bertrand Martel在此帖子中的示例。

或者使用gh workflow run

gh workflow run -R joshjohanning-org/bash-testing blank.yml 
echo '{"name":"scully", "greeting":"hello"}' | gh workflow run -R joshjohanning-org/bash-testing blank.yml --json

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接