你能在公共回购中使用github添加webhook通知吗?

时间:2016-04-13 06:47:45

标签: ruby git github

我使用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' ;

2 个答案:

答案 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​​

会发生同样的情况