Github状态示例

时间:2016-10-25 10:03:27

标签: git github jenkins github-api

我正在尝试使用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"
} 

3 个答案:

答案 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范围创建令牌。