5

在我的 gitolite.conf 我可以设置

repo    COOL_REPOSITORY
        RW+     =   me
        R       =   @all

这给了我写权限,所有其他注册用户都可以读我的存储库。现在我的问题是,我可以向所有人授予读取权限,而不仅仅是我通过将他们的 ssh 密钥存储在我的 keydir 中而注册的用户吗?

4

2 回答 2

2

您可以从 http VirtualHost 配置中调用 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 密钥:它只是一个授权层

但仍然通过 http 调用 gitolite 确保您保持其他 Gitolite 功能处于活动状态,例如:

  • 审计跟踪(在.gitolite/logs:你仍然知道至少哪个 IP 地址克隆/拉/推你的仓库)
  • 控制访问(如果您需要随时删除@all规则)

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

于 2013-05-26T13:11:28.970 回答
2

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

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

于 2013-05-26T12:12:02.720 回答