gpt4 book ai didi

github - 使用 POST 请求触发 Github Action (Github REST API)

转载 作者:行者123 更新时间:2023-12-05 01:07:06 25 4
gpt4 key购买 nike

我有一个托管在 GitHub 组织中的私有(private) GitHub 存储库。该 repo 包含一个带有 workflow_dispatch 选项的 GitHub Action(参见 GitHub Documentation)。

Action YAML 文件摘录:

on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

我可以从 GitHub 操作选项卡成功触发此操作。

但是,我希望能够通过对 GitHub API 的 POST 请求来触发此操作。这应该可以使用 GitHub API 实现。相关 API 端点似乎是 /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches,如 Documentation .

文档进一步指出:

You must authenticate using an access token with the repo scope to use this endpoint.

因此,在“开发者设置”→“个人访问 token ”下的我的个人帐户设置中,我创建了一个 token 并授予对所有“repo”项目以及“工作流程”项目的访问权限。

我已经测试了通过使用 curl 以及 Postman 发出 POST 请求来触发 GitHub Action .为此,我根据 GitHub Documentation :

  • accept:application/vnd.github.v3+json(根据 GitHub 推荐)
  • owner:GitHub 组织的名称
  • repo:仓库名称
  • workflow_id:使用 GitHub Action YAML 文件的完整文件名(包括结尾,.yml),因为我不确定在哪里可以找到 ID .
  • ref:main,因为我认为这是指相关的存储库分支(?),并且 repo 只有一个 main 分支和 Action 驻留在那里

使用 Documentation 中的 curl 示例(但添加身份验证):

curl -X POST -H "Accept: application/vnd.github.v3+json" \
-u GITHUBUSERNAME:GITHUBPERSONALACCESSTOKEN \
https://api.github.com/repos/ORGNAME/REPONAME/actions/workflows/YMLFILE/dispatches \
-d '{"ref":"main"}'

我得到以下结果:

{
"message": "Problems parsing JSON",
"documentation_url": "https://docs.github.com/rest/reference/actions#create-a-workflow-dispatch-event"
}

我还测试了从 Postman 发出 POST 请求(通过导入上面的 curl 语句)。这会产生完全相同的结果。

  1. 我是否需要以不同方式配置此过程的 GitHub 端?
  2. 我的 curl 语句错了吗?
  3. 有什么方法可以检查“问题[atic] JSON”以了解发生了什么?

最佳答案

按照这条指令 https://goobar.dev/manually-trigger-a-github-actions-workflow/你可能大部分都是正确的

尝试在 LINUX 上运行它curl -H "Accept: application/vnd.github+json"-H "Authorization: token your-token"--request POST --data '{"event_type": "do-something"}' https:///api.github.com/repos/yourname/yourrepo/dispatches

在 Windows 上:cURL POST 命令在 Windows 命令提示符下不起作用,因为使用了单引号,请参阅 https://github.com/spring-guides/gs-accessing-data-rest/issues/11

关于github - 使用 POST 请求触发 Github Action (Github REST API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67876177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com