A tool to dump a git repository from a website
Project description
git-dumper
A tool to dump a git repository from a website.
Install
This can be installed easily with pip:
pip install git-dumper
Usage
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`
Example
git-dumper http://website.com/.git ~/website
Disclaimer
Use this software at your own risk!
You should know that if the repository you are downloading is controlled by an attacker, this could lead to remote code execution on your machine.
Build from source
Simply install the dependencies with pip:
pip install -r requirements.txt
Then, simply use:
./git_dumper.py http://website.com/.git ~/website
How does it work?
The tool will first check if directory listing is available. If it is, then it will just recursively download the .git directory (what you would do with wget
).
If directory listing is not available, it will use several methods to find as many files as possible. Step by step, git-dumper will:
- Fetch all common files (
.gitignore
,.git/HEAD
,.git/index
, etc.); - Find as many refs as possible (such as
refs/heads/master
,refs/remotes/origin/HEAD
, etc.) by analyzing.git/HEAD
,.git/logs/HEAD
,.git/config
,.git/packed-refs
and so on; - Find as many objects (sha1) as possible by analyzing
.git/packed-refs
,.git/index
,.git/refs/*
and.git/logs/*
; - Fetch all objects recursively, analyzing each commits to find their parents;
- Run
git checkout .
to recover the current working tree
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file git-dumper-1.0.6.tar.gz
.
File metadata
- Download URL: git-dumper-1.0.6.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ec8f579cea9d2715a193dda6dffa63ab2609c7d20722d4e404d91a22e4f7c94 |
|
MD5 | c8c3b724e9e8385b0f8cc97a31673dfa |
|
BLAKE2b-256 | dfab26d1e02203cc6f5b88e5245592579ea574cab3d814aa0e14d55f9d414e55 |
File details
Details for the file git_dumper-1.0.6-py3-none-any.whl
.
File metadata
- Download URL: git_dumper-1.0.6-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d06555be795cc3833f945a83e04ad24175b4326f74545205cc25291c01e6b598 |
|
MD5 | 7a021187cf58166f372950037c854fd2 |
|
BLAKE2b-256 | 6e420ae080380158550a5dcf92ca4f3e32f36ed2bb6008da72c5e6691a4ea9e7 |