J’ai récemment choisi de migrer mes projets Git privés de Stash vers GitLab. Voilà une bonne occasion de remettre à plat mon système de backup Git qui consiste actuellement en un simple rsync des répertoires Git vers un serveur distant. Pas très pratique et surtout pas adapté…

J’ai trouvé cet article expliquant comment réaliser le backup d’un «bare» dépôt, ce qui est justement le cas de mes dépôts GitLab. Le seul hic, c’est qu’il faut le faire pour chaque dépôt et le refaire lorsqu’on ajoute un dépôt. Pas l’idéal..

J’ai donc pris un moment pour écrire un script Python qui permette de scanner les projets d’un serveur grâce à l’API REST de GitLab et de réaliser un clône de chacun de ces projets, tout en étant fortement configurable pour convenir aux besoins de tout le monde.

Ce script se nomme GitLabBackup et est disponible librement sur mon GitHub pour tous ceux qui cherchent une solution de backup à leur GitLab.

Enjoy ;)