如何使用gitolite中的智能HTTP获得细粒度的ACL?
这是什么意思是:如果我使用SSH限制了某些用户的某些用户,并且如果我尝试克隆限制的存储库,Gitolite表示:
:Fatal R any (some_username) is denied.
Please make sure the repository exists".
如何通过使用智能HTTP来实现上述ACL?
如果可能
gitolite 与智能HTTP兼容,如我在2012年或这里提到的。
您需要做的就是设置这4行:
SetEnv GIT_PROJECT_ROOT @H@/repositories
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv GITOLITE_HTTP_HOME @H@
ScriptAlias /hgit/ /path/to/gitolite/sbin/gitolite-shell/
SetEnv GIT_HTTP_BACKEND "/path/to/git/libexec/git-core/git-http-backend"
这样,以 /hgit
开始的路径的任何URL都会首先查询Gitolite(通过其src/gitolite-shell
Perl脚本(
git clone http://myserver/hgit/myrepo.git
您需要将其与一种通过身份验证基本提供商之一(文件,LDAP,DBM,...(进行身份验证的方法
在我的httpd.conf中,我使用ldap。
AuthName "LDAP authentication for ITSVC Smart HTTP Git repositories"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPBindDN "@LDAP_BINDDN@"
AuthLDAPBindPassword @LDAP_PASSWORD@
AuthLDAPURL @LDAP_URL@
AuthLDAPGroupAttribute member
您将用其实际值替换占位符字符串@xxx@
。