我正在尝试使用github状态,但documentation不够清楚
我们说我的回购项目是https://github.com/politrons/proyectV
他们在文档中声称它应该是
的帖子POST /repos/:owner/:repo/statuses/:sha
身体
{
"state": "success",
"target_url": "https://example.com/build/status",
"description": "The build succeeded!",
"context": "continuous-integration/jenkins"
}
所以在我的情况下我正在尝试
POST https://github.com/repos/politrons/proyectV/statuses/1
With Body
{
"state": "success",
"target_url": "https://example.com/build/status",
"description": "The build succeeded!",
"context": "continuous-integration/jenkins"
}
但github返回404。
知道我做错了什么吗?关于这个的一些卷曲例子会很棒!!
编辑:
我在分支Test-status上创建一个pull请求,当我尝试
时 curl -v -X GET "https://api.github.com/repos/politrons/proyectV/pulls/1"
我收到了很多关于json的信息。然后我获取标题的sha信息并发送此POST命令
curl --request POST --data '{"state": "success", "description": "It works!", "target_url": "http://localhost"}' https://api.github.com/repos/politrons/projectV/statuses/5f4927adcfdc238ba8f46442b737d8ab912cc6ee
但接着我
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
答案 0 :(得分:2)
" 1"不太可能是您的存储库中的提交SHA - 请注意状态是在提交上设置的,而不是在pull请求上设置的,所以如果您想在pull请求上设置状态,您实际上想要设置它在拉动请求的头部提交。
使用API获取拉取请求(假设它的拉取请求" 1"):
GET /repos/politrons/proyectV/pulls/1
在curl
:
curl -X GET https://api.github.com/repos/politrons/proyectV/pulls/1
允许我们获得头部SHA:
"head": {
"label": "new-topic",
"ref": "new-topic",
"sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
...
}
您实际设置状态的是:
POST /repos/politrons/proyectV/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e
在curl
:
curl -X POST -H 'Content-Type: application/json' --data '{"state": "success", ...}' https://<token>:x-oauth-basic@api.github.com/repos/politrons/proyectV/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e
答案 1 :(得分:0)
有同样的问题,尝试后反复出现JSON解析错误,变化不大。
导入json 数据= { “ state”:“待定”, “上下文”:“ Testing Automation BVT”, }
“ curl -H'授权:令牌AUTHCODE'--data'” + json.dumps(data)+“'-X POST https://github.com/api/v3/repos/repo_name/statuses/shaValue”
这对我有用。需要传递json.dumps数据作为参数。
答案 2 :(得分:0)
如果您的令牌没有设置状态的权限,GitHub将返回a="Toto"
b=a
a.upcase!
。确保使用404 Not Found
范围创建令牌。