控制新的gitolite存储库名称

时间:2012-09-25 22:12:46

标签: hook gitolite

我想在我的gitolite安装中添加一个钩子,这样如果推送conf/gitolite.conf文件并包含一个名称不符合我的命名约定的新存储库,则推送将失败。

这可以在不破坏gitolite内部的情况下完成吗?

我正在使用gitolite 1.5.4。

2 个答案:

答案 0 :(得分:3)

另一方面,如果您正在谈论不信任 admin 以使用正确的命名约定创建回购名称,那么您有多种解决方案和替代方案。

(1)是否足以警告他,以便他可以登录到服务器,删除有问题的回购,并再次修复配置?

如果是这样,请使用PRE_CREATE或POST_CREATE触发器(请参阅gitolite docs中的triggers.html)。检查参数2,测试它,并在需要时打印出嘈杂的消息。

(2)如果警告不充分,并且您需要彻底终止它,请使用PRE_CREATE触发器,除非它必须在perl中。使用src / lib / Gitolite / Triggers / AutoCreate.pm作为模型,除了你必须检查$ _ [1](第二个参数)。

(3)你是管理员,也许是"主要"一?如果是,请参阅委托(请参阅gitolite文档中的deleg.html)。这会有更多限制(例如,如果允许他添加密钥,他只需添加一个带有您的名称的新密钥,从而绕过限制。

答案 1 :(得分:0)

首先,升级到最新的Gitolite(两年多前是1.5.4)

其次,Gitolite的“内部”功能允许限制基于命名的回购的创建被称为“野生回购”(“通配回购”),或“用户创建的回购”

如果Gitolite V2 or G2(不确定V1)和Gitolite V3 or g3可用。

  

wildrepos功能允许您使用正则表达式模式指定访问控制规则,因此您可以通过配置文件中的一组规则为许多实际的repos提供服务。
  正则表达式模式中还可以包含CREATOR一词,允许您参数化创建回购的用户名。