Try a fix for #5224
Signed-off-by: Ricky Elrod <codeblock@fedoraproject.org>
This commit is contained in:
parent
5fde38c3d2
commit
8c1f314fbc
1 changed files with 37 additions and 0 deletions
|
@ -1,2 +1,39 @@
|
||||||
Alias /cgit-data /usr/share/cgit
|
Alias /cgit-data /usr/share/cgit
|
||||||
|
|
||||||
|
# This code is copied from the regular /git cloning code. Since our cgit
|
||||||
|
# https clones don't seem to support push, we should be able to get away with
|
||||||
|
# copying a very similar config as for /git.
|
||||||
|
|
||||||
|
# Begin http git clone
|
||||||
|
# First, deny write access
|
||||||
|
RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
|
||||||
|
RewriteCond %{REQUEST_URI} /git-receive-pack$
|
||||||
|
RewriteRule ^/cgit/ - [E=AUTHREQUIRED:yes]
|
||||||
|
<Location /cgit>
|
||||||
|
<RequireAll>
|
||||||
|
Require not env AUTHREQUIRED
|
||||||
|
Require all granted
|
||||||
|
</RequireAll>
|
||||||
|
Options -Indexes +ExecCGI
|
||||||
|
</Location>
|
||||||
|
|
||||||
|
# Next up, determine which user owns this repo
|
||||||
|
SetEnvIf Request_URI ^/cgit/([a-zA-Z0-9]*)/.* GIT_PROJECT_ROOT=/home/fedora/$1/public_git
|
||||||
|
Header set X-GitProject "%{GIT_PROJECT_ROOT}e"
|
||||||
|
|
||||||
|
# Let's serve objects and packs directly from apache, very performant!
|
||||||
|
AliasMatch ^/cgit/([a-zA-Z0-9]*)/public_git/([a-zA-Z0-9]*)\.git(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /home/fedora/$1/public_git/$2.git/$3
|
||||||
|
AliasMatch ^/cgit/([a-zA-Z0-9]*)/public_git/([a-zA-Z0-9]*)\.git(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /home/fedora/$1/public_git/$2.git/$3
|
||||||
|
|
||||||
|
# And now for the magic, let's run the git cgi script
|
||||||
|
ScriptAliasMatch \
|
||||||
|
"(?x)^/cgit/([a-zA-Z0-9]*)/public_git/(.*/(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))$" \
|
||||||
|
/usr/libexec/git-core/git-http-backend/$2
|
||||||
|
# End http git clone
|
||||||
|
|
||||||
ScriptAlias /cgit /var/www/cgi-bin/cgit
|
ScriptAlias /cgit /var/www/cgi-bin/cgit
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue