我使用octokit for ruby尝试为公共回购创建webhook通知。我无法从文档中了解这是否可行,以下是我引用的文档:https://developer.github.com/v3/repos/hooks/#create-a-hook 是否只允许为您所属的项目创建webhook?我希望以编程方式通知github上的某些公共回购。 我尝试使用此代码创建一个webhook并获得404:
github_client = Octokit::Client.new(:access_token => github_access_key)
github_client.create_hook(
'github/ghfw-build-extra',
'web',
{
:url => "http://testsite.com/github_webhook_event_handler",
:content_type => 'json',
:insecure_url => '1'
},
{
:events => ['push'],
:active => true
}
)
我得到的错误是:
Octokit :: NotFound:POST https://api.github.com/repos/github/ghfw-build-extra/hooks:404 - Not Found //请参阅:https://developer.github.com/v3 来自/Users/bboy/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/octokit-4.2.0/lib/octokit/response/raise_error.rb:16:in`on_complete' ;
答案 0 :(得分:0)
你应该能够在公共仓库上创建一个钩子,但是the code确实提到了:
# Create a hook
#
# Requires authenticated client.
因此,在调用该方法之前,请确保您已通过身份验证。
此外,相同的代码作为示例提到了配置
# {
# :url => 'http://something.com/webhook',
# :content_type => 'json'
# },
在您的情况下,testsite.com/github_webhook_event_handler
可能应为http://testsite.com/github_webhook_event_handler
。
答案 1 :(得分:0)
至少使用github UI,如果您没有写入/管理员访问权限,则无法为公共项目添加webhook。我假设使用API
会发生同样的情况