首页 > 解决方案 > 将 github 操作与 python 请求库一起使用时出现 404 错误

问题描述

我正在尝试使用 python 启动 GitHub 操作工作流。

在我的 GitHub 存储库中,我有一个yml以手动触发器开头的文件:

on:
  repository_dispatch:
    types: [build]

我在 github>settings>developer settings>personal access tokens 中创建了一个令牌。为了保密,我们假设这个问题中的令牌号是:'123'。

我想使用请求库在 python 脚本中启动工作流,所以我编写了以下代码:

token = '1234'
headers = {'Authorization' : 'token ' + token }
data = {"event_type": "build"}
r = requests.post("http://api.github.com/repos/myorganizationname/repositoryname/dispatches", headers = headers,data= data)

我收到以下状态码:

 r.status_code
404

我不确定我是在正确的地方写授权还是写错了,有人可以在这里帮助我吗?

标签: pythonrequestgithub-actions

解决方案


设置令牌授权时,请注意token必须全部小写:

headers = {'Authorization' : 'token ' + token }

(可以在这里找到更多信息:https ://developer.github.com/v3/auth/ )

您可以使用以下方法测试您的令牌curl

curl -H 'Authorization: token 1234' ...

所以,这段代码应该可以工作:

token = '1234'
headers = {'Authorization' : 'token ' + token }
data = {"event_type": "build"}
r = requests.post("http://api.github.com/repos/myorganizationname/repositoryname/dispatches", headers=headers, data=data)

就像一个建议:

为了让事情变得更简单,您可以尝试 PyGithub 库:

from github import Github

github_token = '1234'
g = Github(github_token)
g.get_user("your_username").get_repo("your_repository").create_repository_dispatch("build")

更多信息:https ://pygithub.readthedocs.io/en/latest/github_objects/Repository.html?highlight=dispatch#github.Repository.Repository.create_repository_dispatch


推荐阅读