文件更改时如何在github仓库中设置钩子?

时间:2019-05-03 11:26:26

标签: git github

我的团队使用GitHub托管远程git存储库。 我想通知每个团队成员对特定文件所做的更改。我该如何实现?

我查看了GitHub事件挂钩,但似乎只有某些事件发生时,它们才能将HTTP消息发送到给定主机。 https://developer.github.com/v3/activity/events/types/#pushevent。 因此,这种方法需要设置太复杂的消息处理服务。

我还查看了git hooks,它们看起来很有前途,但有一定的局限性:

  • 绑定到本地仓库,不要提交,即需要将它们手动添加到远程主机
  • 以shell脚本的形式编写,即只能执行此主机上允许的操作。

通知类型可以是任何东西,但电子邮件可能是最简单的。

用例示例:通过电子邮件通知每个团队成员在公共项目的master分支中带有错误代码的公共文件已被更新。 如果无法从GitHub存储库中获取收件人列表,则可以对其进行硬编码。

1 个答案:

答案 0 :(得分:1)

如果您使用github.com进行托管,则没有安装钩子的方法。您必须使用webhooks。如果您使用的是GitHub Enterprise Server(本地版本),则可以使用pre-receive钩子,但是它们并不是理想的选择。您确实需要一个post-receive钩子,因为某些原因可能会拒绝推送,并且您不想不必要地通知其他人。

但是,有smee.io服务,它允许您将Web钩子指向特定的端点并在您控制的服务器上运行客户端以接收这些钩子。您可以将GitHub Webhooks指向此处,然后让一个客户端在收到响应时将电子邮件发送给您想要的任何人。默认的smee客户端代理到本地端口,但是您可以修改它以运行给定命令。