5

我希望将远程 git 存储库与 RTC 服务器集成,方法是使用他们的 RESTful 接口附加到 gitweb 的链接,以进行与特定任务关联的提交。

理想情况下,这将通过 git 服务器上的 post-receive 挂钩来完成,但 git 运行的处理用户不允许用户帐户向 RTC 进行身份验证。

我能想到的最好的解决方案是以某种方式传递一个身份验证令牌(以 cookies.txt 的形式从 RTC 获得)以及 git push (但不让它成为提交的一部分)。

另一种方法是在每个客户端存储库上设置一个 post-push 挂钩,但这有其自身的问题(包括没有这样的挂钩)。

4

1 回答 1

6

使用 git 2.10 及更高版本,您可以使用git --push-option <string>将给定的字符串值传递给服务器,服务器将它们传递给 pre-receive 和 post-receive 钩子。git 推送文档

git push --push-option=...命令行给出的推送选项的数量可以从环境变量GIT_PUSH_OPTION_COUNT中读取,选项本身在GIT_PUSH_OPTION_0, GIT_PUSH_OPTION_1,...​ 如果协商不使用推送选项阶段,不会设置环境变量。如果客户端选择使用推送选项,但不传输任何选项,则计数变量将设置为零,GIT_PUSH_OPTION_COUNT=0。git 钩子文档

于 2017-01-24T21:40:29.817 回答