Estou tentando usar o git-http-backend no apache. Eu quero um repositório legível publicamente, mas algum usuário autenticado pode empurrar. Eu tenho a seguinte configuração:
SetEnv GIT_PROJECT_ROOT /home/username/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER $REDIRECT_REMOTE_USER
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
RewriteCond %{QUERY_STRING} service=git-receive-pack [OR]
RewriteCond %{REQUEST_URI} /git-receive-pack$
RewriteRule ^/git/ - [E=AUTHREQUIRED:yes]
<LocationMatch "^/git/">
Order Deny,Allow
Deny from env=AUTHREQUIRED
AuthType Basic
AuthName "Git Access"
AuthUserFile /home/username/.htpasswd
AuthGroupFile /home/username/.htgroup
Require group committers
Satisfy Any
</LocationMatch>
Meu repositório pode ser clonado anonimamente, mas não há autenticação durante o envio, qualquer um parece ser capaz de enviar para o repositório. Eu tentei habilitar http.recievepack
para false
no repositório, mas mesmo a clonagem falha com um erro 403.
Como resolvo o problema?
Tags git apache-2.4