如何使用gitolite为每个人提供读取权限

时间:2013-05-26 11:12:54

标签: git gitolite

在我的gitolite.conf中我可以设置

repo    COOL_REPOSITORY
        RW+     =   me
        R       =   @all

这为我提供了写入权限,并且所有其他注册用户都具有对我的存储库的读取权限。现在我的问题是,我是否可以通过将我们的ssh-key存储在我的keydir中来向所有人提供读取权限?

2 个答案:

答案 0 :(得分:2)

Gitolite使用ssh,我认为不应该使用ssh来访问未注册的用户。

Git实现了git-daemon和git-http-backend,分别允许通过git://或http://协议进行匿名访问。

答案 1 :(得分:2)

您可以从http VirtualHost配置like I do in my project调用gitolite。

# GitHttp on @PORT_HTTP_HGIT@
Listen @PORT_HTTP_HGIT@
<VirtualHost @FQN@:@PORT_HTTP_HGIT@>
  ServerName @FQN@
  ServerAlias @HOSTNAME@
  SetEnv GIT_PROJECT_ROOT @H@/repositories
  SetEnv GIT_HTTP_EXPORT_ALL
  SetEnv GITOLITE_HTTP_HOME @H@
  ScriptAlias /hgit/ @H@/sbin/gitolite-shell/
  SetEnv GIT_HTTP_BACKEND "@H@/usr/local/apps/git/libexec/git-core/git-http-backend"
  <Location /hgit>
    ...

Gitolite不要求用户注册ssh密钥:它只是authorization layer

但仍然通过http调用gitolite确保您保持其他Gitolite功能活跃,例如:

  • 审计跟踪(在.gitolite/logs中:您至少知道哪个IP地址确实克隆/拉/推回您的回购)
  • 控制访问权限(如果您需要随时删除@all规则)

直接使用git-daemon或直接http访问,而根本不使用Gitolite,意味着放弃任何控制访问。