创建GitHub.com Hook

时间:2013-04-19 15:34:43

标签: github github-api github-services

我正在尝试使用

上的create hook api创建一个钩子

http://developer.github.com/v3/repos/hooks/#create-a-hook

但是当我尝试发帖时,我得到301,所以我确信我做错了......

有几个问题......

1)如果github是私有的,我怎么知道我可以为该repo创建一个钩子?我确信我需要通过POST进行身份验证,但是如何进行身份验证?

2)以下curl语句是否是如何创建钩子的有效示例?

 curl -v -H "Content-Type: application/json" -X POST -d "{ "name": "cia", 
 "active": true, "events": [ "push" ], "config": { 
 "url": "http://requestb.in/######", "content_type": "json" } }"
  http://github.com/repos/#####/#####/hooks

出于安全考虑,我已经用#####替换了某些元素......

3)如果以上内容不正确,请问我是否有一个有效示例的片段为名为“cia”的webhook创建一个钩子?

1 个答案:

答案 0 :(得分:6)

curl -usigmavirus24 -v -H "Content-Type: application/json" -X POST -d '{"name": "cia", "active": true, "events": ["push"], "config": {"url": "...", "content_type": "json"}}' https://api.github.com/repos/sigmavirus24/reponame/hooks

是正确的curl命令。您要发布到的网址必须为https://api.github.com/:endpoint,其中:endpoint在这种情况下为repos/username/reponame/hooks。您还需要在JSON正文周围使用'作为curl命令,否则您将获得"{ "之类的字符串与namecia等命令的输出相连接,activeevents

curl还需要-u :username选项,因此它会告诉curl它必须进行身份验证并要求您输入密码。

如果您不介意密码在您的bash历史记录中(您应该这样做),您也可以-u username:password。或者甚至更好,您可以使用username:password格式对您的凭据进行base64编码,然后将其作为标题发送,如下所示:Authentication: Basic <base64-encoded-credentials