Retour aux mises à jour
New releaseSep 7, 2026

git-dumper v1.0.9

Un outil pour extraire un dépôt git d'un site web

Partager

git-dumper

Un outil pour extraire un dépôt git d'un site web.

Installation

Cela peut être installé facilement avec pip :

pip install git-dumper

Utilisation

usage: git-dumper [options] URL DIR

Dump a git repository from a website.

positional arguments:
  URL                   url
  DIR                   output directory

optional arguments:
  -h, --help            show this help message and exit
  --proxy PROXY         use the specified proxy
  -j JOBS, --jobs JOBS  number of simultaneous requests
  -r RETRY, --retry RETRY
                        number of request attempts before giving up
  -t TIMEOUT, --timeout TIMEOUT
                        maximum time in seconds before giving up
  -u USER_AGENT, --user-agent USER_AGENT
                        user-agent to use for requests
  -H HEADER, --header HEADER
                        additional http headers, e.g `NAME=VALUE`
  --client-cert-p12 CLIENT_CERT_P12
                        client certificate in PKCS#12 format
  --client-cert-p12-password CLIENT_CERT_P12_PASSWORD
                        password for the client certificate
  -b BRANCH, --branch BRANCH
                        additional branch name to check for (repeatable)

Exemple

git-dumper http://website.com/.git ~/website

Avertissement

Utilisez ce logiciel à vos propres risques !

Vous devez savoir que si le dépôt que vous téléchargez est contrôlé par un attaquant, cela pourrait conduire à une exécution de code à distance sur votre machine.

Compiler à partir des sources

Installez simplement les dépendances avec pip :

pip install -r requirements.txt

Ensuite, utilisez simplement :

./git_dumper.py http://website.com/.git ~/website

Comment ça marche ?

L'outil vérifiera d'abord si le listage des répertoires est disponible. Si c'est le cas, il téléchargera récursivement le répertoire .git (ce que vous feriez avec wget).

Si le listage des répertoires n'est pas disponible, il utilisera plusieurs méthodes pour trouver autant de fichiers que possible. Étape par étape, git-dumper va :

  • Récupérer tous les fichiers communs (.gitignore, .git/HEAD, .git/index, etc.) ;
  • Trouver autant de refs que possible (comme refs/heads/master, refs/remotes/origin/HEAD, etc.) en analysant .git/HEAD, .git/logs/HEAD, .git/config, .git/packed-refs et ainsi de suite ;
  • Trouver autant d'objets (sha1) que possible en analysant .git/packed-refs, .git/index, .git/refs/* et .git/logs/* ;
  • Récupérer tous les objets récursivement, en analysant chaque commit pour trouver ses parents ;
  • Exécuter git checkout . pour récupérer l'arbre de travail actuel

Catégories