Gitorious是否有用于CIA提交通知的钩子?

8
由于我的免费账户空间即将用完(是的,我正在考虑升级),所以我正在GitHub上设置新的git存储库,并在Gitorious上查看(另请参见GitHub vs Gitorious)。GitHub的一个很棒的功能是提交后挂钩,可以让我通知(同样伟大的)CIA network……但是,我一直无法找到Gitorious是否支持这样的挂钩。因此,我想询问有关在托管在Gitorious上的git存储库中显示提交消息的最佳实践。更新:使用第二机制触发CIA提交消息的解决方案不是我要寻找的。

1
还发现有人在谷歌群组上提出了这个问题,但没有答案:http://groups.google.com/group/gitorious/browse_thread/thread/3cf48f0f8631cf8a - Egon Willighagen
1
KDE 也在面临相同的问题,并似乎已经找到了一种定制的解决方案:http://techbase.kde.org/Projects/MovetoGit#Post_Update_hooks - Egon Willighagen
5个回答

5

Gitorious即将支持Web Hook。它目前正在gitorious.org上运行,但没有UI来添加到您的存储库中;原因是提交数据的JSON表示仍可能发生一两个更改,因此应将其配置为beta功能。

如果有人想编写集成代码(处理gitorious的Web Hook请求),请发送电子邮件至support@gitorious.org,我们将为您的存储库设置集成。


请问您能否添加一些关于这个钩子支持的进一步信息的URL链接? - Egon Willighagen
JSON负载生成的示例(和历史记录)位于http://www.postbin.org/wqpx3l。 - zmalltalker
2
那是2010年3月。现在已经是2012年了,我仍然没有看到这样的功能! - Daniel C. Sobral

3
KDE项目在这个帖子中也有类似的问题,并提出了一个有趣的替代方案:

它不一定要在gitorious.org机器上运行。至少对于电子邮件/CIA/RSS或其他报告而言是如此。

我们以前在办公室中使用的旧的git-p4钩子就是这样工作的:
p4机器发送带有修订号的UDP数据包。另一台机器捕获该数据包并进行导入。(该值被丢弃)

我们可以做同样的事情:

  • gitorious.org机器发送带有更改的分支及其新的SHA-1UDP数据包。
  • 另一台机器获取并生成提交日志。
    最坏的情况是由于丢失UDP数据包而遗漏某些人。

正如我所说,这适用于报告——任何由post-receive钩子运行的东西。
对于需要pre-receive钩子(实际上是pre-update,但Git中的名称是错误的)的任何内容,它都必须在他们的服务器上运行。


你的评论中的“你”是指谁? - Egon Willighagen
@Egon:抱歉,那是我最初回答中的第一个错误编辑。我指的是KDE项目。 - VonC

2

我的当前解决方案是设置一个本地仓库(称为CIA),并总是通过一个小的shell脚本进行推送:

#!/bin/bash
set -e
git push origin master
git push cia master

在本地CIA存储库中,我安装了http://cia.vc/clients/git/ciabot.bash来向CIA发送电子邮件。

我猜第一次推送应该是先拉取? - Egon Willighagen
不,我总是将相同的提交推送到两个不同的存储库,一个是我想要代码的gitorious(origin)存储库,另一个是我的本地存储库(CIA),当我推送时会发送电子邮件。 - maxy

2

不要直接推送到Gitorious,而是推送到一个本地仓库,你需要在它的post-receive hook中配置,使其可以将所有内容推送到你的Gitorious仓库并通知CIA。


我该如何配置本地仓库? - Egon Willighagen
1
将您的CIA通知放在更新钩子中(@maxy放了一个链接:http://cia.vc/clients/git/ciabot.bash)。在post-update钩子中,放置“git push --mirror Gitorious/url”(或git push --all,以适合情况为准)。 - Andrew Aylett

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接