• [^] # Re: Git sur https

    Posté par (site web personnel) . En réponse à la dépêche Sortie de git 2.9. Évalué à 1.

    Ce qui m'embête c'est que soit t'as un vhost comme ceci, avec un hack immonde de ré-écriture de l'en-tête Destination, parce qu'à priori un dev apache a pas voulu corriger ce bug en 2008... : https://bz.apache.org/bugzilla/show_bug.cgi?id=45449

    <VirtualHost *:443>
     ServerAdmin user@example.com
     ServerName git.example.com
     <Directory /var/www/git>
     DAV on
     Options ExecCgi FollowSymLinks
     # Fix dav header
     RequestHeader edit Destination ^https: http: early
     # Gitweb config
     AddHandler cgi-script .cgi
     DirectoryIndex gitweb.cgi
     SetEnv GITWEB_CONFIG gitweb.conf
     AuthType Basic
     AuthName "Git repositories"
     AuthUserFile /var/www/git/.htpasswd
     Require method GET OPTIONS PROPFIND
     <LimitExcept GET OPTIONS PROPFIND>
     Require valid-user
     </LimitExcept>
     </Directory>
    </VirtualHost>
    

    Soit t'es obligé d'avoir un truc comme ça :

    <VirtualHost *:443>
     ServerAdmin user@example.com
     ServerName git.example.com
     DocumentRoot /var/www/git
     <IfModule alias_module>
     AliasMatch "^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$" /var/www/git/1ドル
     AliasMatch "^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$" /var/www/git/1ドル
     ScriptAliasMatch "^/(.*/(HEAD|info/refs|objects/info/[^/]+|git-(upload|receive)-pack))$" /var/www/git/git-http-backend/1ドル
     </IfModule>
     <Directory /var/www/git>
     Options ExecCgi FollowSymLinks
     # Git http backend config
     SetEnv GIT_PROJECT_ROOT /var/www/git
     SetEnv GIT_HTTP_EXPORT_ALL
     # Gitweb config
     AddHandler cgi-script .cgi
     DirectoryIndex gitweb.cgi
     SetEnv GITWEB_CONFIG gitweb.conf
     AuthType Basic
     AuthName "Git repositories"
     AuthUserFile /var/www/git/.htpasswd
     # Allow non push git request
     Require expr "(%{QUERY_STRING} !~ /service=git-receive-pack/) && (%{REQUEST_URI} !~ /git-receive-pack$/)"
     # Allow push for valid user
     Require valid-user
     </Directory>
    </VirtualHost>
    

    Le problème c'est que rien ne te garantis, que un jour quelqu'un autorisera pas a pousser des données via autre chose que git-receive-pack, déjà il y a deux méthodes pour pousser des données...