# GitlabCommentSyncForZentaoPMS **Repository Path**: web3d/GitlabCommentSyncForZentaoPMS ## Basic Information - **Project Name**: GitlabCommentSyncForZentaoPMS - **Description**: 禅道适配Gitlab 的 push webhook,用于同步代码提交日志、并按禅道的关联规则进行关联;如task#98、bug#201 禅道最近这几个api变化比较大,代码可能需要自行适配 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://www.cnblogs.com/x3d/p/zentao-gitlab-commit-sync.html - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 5 - **Created**: 2019-12-08 - **Last Updated**: 2023-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 禅道适配Gitlab的Git Commit 日志同步功能 * 基于禅道开源版本(在12.4系列版本下测试通过,由于禅道相关代码重构,老的版本不再做兼容),并未使用其官方推荐的Client 扫描模式,而是在其代码中找到了一个apiSync方法,覆盖其 git/apiSync 动作; * 并通过使用独立入口的方式回避其原有的鉴权机制,而通过 Gitlab 的 Hooks Secret Token来鉴权。 * 首先基于Gitlab中日志提交用户的用户名与禅道中定义的"源代码账号"进行匹配;若匹配不到再按Gitlab的用户名与禅道的用户名进行匹配;若还匹配不到,就寄希望于两边的email进行账号匹配,所以请保证禅道中的账号有指定"源代码账号"字段 ## 使用方法 1. 将代码解压到禅道项目目录 2. 生成一段随机字符串作为Secret Token,配置到 ```module/git/ext/config/gitlab_sync.php``` 文件中,```$config->git->gitlabToken = 'your token'```; 3. 在禅道的"组织"=>"权限",找到guest账户进去,勾选"接口:同步git日志"项保存 4. 登录Gitlab进行相应配置,Admin area/System Hooks/,Url: ```https://yourdomain/webhook/gitlab.php```,Secret Token:填入前面生成的Token; 5. 在Gitlab System Hooks 页面下方,点击测试按钮进行测试,看看通信是否正常 6. 也可以基于单个项目进行设置和测试 7. 提交代码,Commit Message 中注意加上 ```task#12```、```bug#45``` 格式的内容,然后推送代码,去检查禅道项目管理系统中相应任务或Bug是否生成一条“历史记录” ## 参考 * https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#push-events * https://www.zentao.net/book/zentaopmshelp/207.html