Topic: Suggestion : accès aux dépôts SVN par HTTPS
Accès aux dépôts Subversion par HTTPS
Pourquoi ?
L'avantage d'un accès HTTPS par rapport à un accès SVN+SSH est son côté passe-partout. On se retrouve trop souvent du mauvais côté d'un firewall (boulot, établissement scolaire, ...) qui ne laisse pas passer les précieux paquets SSH. C'est frustrant ©.
Pourquoi HTTPS au lieu de HTTP ?
L'ennui avec l'implémentation de l'accès SVN au-dessus d'Apache, c'est que ça utilise la couche WebDAV, qui utilise elle-même des méthodes HTTP que les firewalls les plus ch##### bloqueront également (exemple : méthode WebDAV "PROPFIND" qui ne passe pas). HTTPS, à ma connaissance, passe partout.
Tu peux pas demander à ton admin de laisser passer les flux dont tu as besoin pour travailler ?
« Malheureux, surtout pas, je veux juste les flux pour contribuer à mon projet » ;)
Tu peux pas demander à ton admin de laisser passer les flux que tu veux ?
Nan, je déconne, même dans Sliders, les admins refusent ça :D
Anecdote
J'ai eu l'occasion de passer un an dans une licence professionnelle dédiée aux logiciels libres. Comme nous avions les droits root et la possibilité d'attaquer le reste du réseau (d'ailleurs entre 12h et 14h, on distinguait 3 camps : les "Je lis des webcomics", les "Je joue à Frozen Bubble", et les "Je teste l'ARP poisoning"), la passerelle qui reliait notre réseau de hippies au réseau de l'établissement n'était pas vraiment laxiste. Je ne pouvais donc pas faire le moindre check out sur un serveur SVN si celui-ci n'était pas en HTTPS. Ironiquement, la licence-dédiée-aux-logiciels-libres ne permettait pas de taffer sur son logiciel libre entre midi et deux (mais c'était bien chouette quand même).
Comment ?
Techniquement, il faut un serveur Apache avec mod_dav_svn, qui repose sur mod_dav (WebDAV), auquel s'ajoutent les joyeusetés relatives à SSL (mod_ssl et clés).
Le SVN Book décrit assez bien la procédure dans son chapitre 6 «Server Configuration», section "httpd, the Apache HTTP server". Suffisamment bien en tout cas pour que je n'aie pas conservé d'autres signets sur le sujet.
Exemple de configuration pour _un_ projet (je n'ai pas testé l'automatisation pour des centaines de projets).
<Location /projet>
DAV svn
# chemin du depot
SVNPath /srv/svn/projet
Require valid-user
AuthType Basic
AuthName "SVN Projet"
# chemin du fichier decrivant les permissions
AuthUserFile svn/svn-access-projet
#optionnel : gestion plus fine des droits des utilisateurs sur les dossiers
AuthzSVNAccessFile svn/svn-policy-projet
SVNPathAuthz on
</Location>
Bon, désolé de ne pas être exhaustif sur le plan technique mais je ne sais pas tout de votre mixture interne. Quelques histoires de droit sont à prévoir pour un accès simultané avec SSH et HTTPS. Si vous cherchez un précédent, le projet KDE propose un accès SVN+SSH ou HTTPS au choix (mais pas simultanément pour un même compte je crois).
Voilou, voilou, c'était la suggestion du jour :)
'n+1' trivial tasks are expected to be accomplished in the same time as 'n' tasks.
Logg's Rebuttal to Gray's Law:
'n+1' trivial tasks take twice as long as 'n' trivial tasks.