企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
通过钩子扩展,GitHub托管的版本库可以和外部应用实现整合。整合的接口完全开放,开发者可以访问GitHub的开源项目 [github/github-services](https://github.com/github/github-services) 开发新的应用整合脚本。目前GitHub已经支持超过50个外部应用的整合,在这里恕不一一列举,仅以helloworld项目为例,介绍几个常见应用的整合。 ## 3.4.1\. 邮件通知功能 配置邮件通知,可以实现新提交推送至版本库时,发送通知邮件。在版本库的管理界面,选择“Service Hooks”中的Email进入邮件通知配置界面,如图3-15所示。配置界面很简单,写上邮件地址,选择激活即可。为了便于整个团队都能收到通知邮件,可以将收件地址设置为一个邮件列表。如果选择“Send From Author”,邮件的发件者显示为提交者的邮件地址,否则发件者为noreply@github.com。 [![../images/hooks-email.png](http://www.worldhello.net/gotgithub/images/hooks-email.png)](https://box.kancloud.cn/2015-07-09_559de2e849ad3.png) 图3-15:邮件通知功能配置 邮件通知配置生效后,当有新提交推送到版本库时,会发出通知邮件,如图3-16所示。 [![../images/mail-in-gg.png](http://www.worldhello.net/gotgithub/images/mail-in-gg.png)](https://box.kancloud.cn/2015-07-09_559de2ed4b765.png) 图3-16:提交触发邮件通知 ## 3.4.2\. 和Redmine整合 Redmine是一个开源的项目管理平台,用于项目的需求管理和缺陷跟踪。Redmine可以和多种版本库(包括Git)整合,可以直接通过Web界面浏览Git提交,还实现了提交和问题的关联。 Redmine需要周期性地扫描版本库,以便更新内置数据库及建立提交和问题的关联。通常是以计划任务(crontab)的方式实现版本库的周期性扫描,这导致Redmine中版本库更新会存在一定的延迟。GitHub提供的Redmine整合的钩子脚本能够在GitHub版本库更新后,通过WebService触发Redmine主动扫描Git版本库获取更新。 GitHub提供的Redmine整合的配置界面如图3-17所示。 [![../images/hooks-redmine.png](http://www.worldhello.net/gotgithub/images/hooks-redmine.png)](https://box.kancloud.cn/2015-07-09_559de2f228e87.png) 图3-17:与Redmine整合 图3-17中的地址是Redmine部署的URL地址,项目ID是Redmine中的相关项目(如果不填写则更新所有项目),而“Api Key”并非GitHub项目中配置的Api Key,而是Redmine中为版本库更新配置的全局Api Key。相应的Redmine配置界面如图3-18所示。 [![../images/redmine-api-key.png](http://www.worldhello.net/gotgithub/images/redmine-api-key.png)](https://box.kancloud.cn/2015-07-09_559de2f391765.png) 图3-18:Redmine中的API Key配置