I'm trying to setup a git server with:
http-access to be able to clone repositories like this:
git clone
http://mygitserver/repository
have a web interface (gitweb), if possible with restrictions per user
control access based on LDAP accounts
So far I have gitweb up and running; when I access
http://gitserver/
it asks ldap login and when I provide this; it shows all repositories (even gitolite-admin repository... not so good)
When I try to clone, I get the error:
fatal: http://gitserver/<reponame>.git/info/refs not valid: is this a git repository?
I dug into it and I found out that the gitolite-suexec-wrapper.sh does not receive the LDAP username; so gitolite cannot grant access since the username is empty... any ideas?
here is my configuration:
my apache configuration file looks like the one here: http://gitolite.com/gitolite/g2/ggshb.html. The most interesting part is this:
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
/srv/www/bin/gitolite-suexec-wrapper.sh/$1
for one or another reason the parameter $1 is not passed or is empty.... in the apache log I get these lines:
10.1.86.100 - - [22/Jan/2014:18:09:52 +0100] "GET /git/<reponame>.git/info/refs?service=git-upload-pack HTTP/1.1" 401 - "-" "git/1.8.4"
601 10.1.86.100 - - [22/Jan/2014:18:09:57 +0100] "GET /git/<reponame>.git/info/refs?service=git-upload-pack HTTP/1.1" 401 - "-" "git/1.8.4"
602 10.1.86.100 - chris.maes [22/Jan/2014:18:09:57 +0100] "GET /git/<reponame>.git/info/refs?service=git-upload-pack HTTP/1.1" 200 120 "-" "git/1.8.4"
oh yes; my environment: Opensuse 13.1 gitolite 2.3.1 git 1.8.4
The two solutions are:
1/ Apache + ldap, calling
gitolite-shell
(gitolie V3)2/ Or GitLab, which had LDAP authentication: "setting up gitlab LDAP-authentication without special gitlab user"
See the config
gitlab.yml
ldap section.