Github 已经开发了 github-services hook 来将提交推送到其他服务,如 bugzilla、campfire、basecamp ..
是否可以使用相同的 github-services Hook 将我的应用程序数据推送到其他服务?如果是,我该如何整合 github-services到我的 Rails 应用程序。
有什么帮助吗?有什么建议吗?
更新 我可以将 github-services hook 源代码作为 Sinatra 应用程序集成到我的 Rails 应用程序中吗?我如何从我的应用程序触发器中调用其他服务(bugzilla、campfire、basecam、twitter) Hook ?
例如,当一个用户在其他用户的墙上发帖时,消息应该发送到其他服务,如 bugzilla、campfire、basecamp、twitter ...
最佳答案
Post-Receive Url 是执行此类通知的最简单的钩子(Hook)。每当对存储库执行 push
时,它都会触发对预配置 Url 的 POST
。
你可以从这个 Github.help page on testing web hooks开始 以了解所发布内容的格式以及服务的 react 方式。这要归功于一项非常有用的服务:PostBin .
这个帮助页面给出了一个简单的例子,说明在 Sinatra 服务器上必须实现什么来解析 POSTed JSON:
post '/' do
push = JSON.parse(params[:payload])
"I got some JSON: #{push.inspect}"
end
这个 gist 更进一步,展示了一些非常基本的 JSON 数据提取。
如果你想更进一步,你可以配置,通过GitHub API , 一些 additional hooks 收听更多事件(新问题、新分支、下载...)。
关于ruby-on-rails - 我可以使用 github-services hook 将我的提要发布到其他服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598454/