创建GitHub.com钩子



我正在尝试使用在

上找到的create hook api创建一个钩子

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

但是当我试图发布时,我得到了301,所以我确信我做错了…

有几个问题…

1) github如何知道我可以为该回购创建一个钩子,如果它是私有的?我确信我需要使用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创建一个钩子吗?

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命令。你发布的URL必须是https://api.github.com/:endpoint,在这种情况下,:endpointrepos/username/reponame/hooks。您还需要在curl命令的JSON主体周围使用' s,否则您将获得"{ "之类的字符串与name, cia, active, events等命令的输出连接。

另外,-u :username选项对于curl是必需的,因此它将告诉curl必须进行身份验证,并要求您提供密码。

如果你不介意你的密码在你的bash历史记录(你应该),你也可以做-u username:password。或者更好的是,您可以以username:password的形式对凭证进行base64编码,然后将其作为标头发送,如:Authentication: Basic <base64-encoded-credentials .

最新更新