Description • Parameters • Requirements • How To Use • Logging • Limitations • Contributing • Project Architecture • License
Git-multiclone download multiple repositories at once! This tool provides clone selected or all user/stars repositories from Github (from 'Repositories' and 'Stars' pages).
Provides the following options:
Usage:
git-multiclone <option|long-option>
Examples:
git-multiclone --help
Options:
--help show this message
--sort sort repositories list
--select-all select all available repositories
--tor <port_number> set the tor port number
git-multiclone uses external utilities to be installed before running:
It's simple - for install:
./setup.sh install
For remove:
./setup.sh uninstall
- symlink to
bin/git-multiclone
is placed in/usr/local/bin
- man page is placed in
/usr/local/man/man8
Then an example of starting the tool:
./bin/git-multiclone
If you want to use a connection via the tor network, use the
--tor
parameter and set the port number as the value.
git-multiclone allows you to download selected or all repositories of any user registered on the github. User repositories can be viewed from the browser level by selecting:
In addition, this tool allows you to download any repository marked with an start. From the user's account level, you can view such repositories by going to:
The standard page size in github is 30. We can extend this value to a maximum of 100 - this value is also used by git-multiclone when checking available repositories (also to limit calls to api). In addition to the username settings, you will be asked to enter the number of pages - you can check this value in the following way:
If you are asked for the number of pages it will be best to set their maximum number - in this case 28.
After running the script, the log/
directory is created and in it the following files with logs:
<script_name>.<date>.log
- all_logger()
function calls are saved in itstdout.log
- a standard output and errors from the_init_cmd()
function are written in it. If you want to redirect the output from command, use the following structure:your_command >>"$_log_stdout" 2>&1 &
The main limit is the maximum number of requests allowed by the github service from one IP address (this limit is canceled after a given time). If you want to check the values:
curl -Iks https://api.github.com/ | grep "X-RateLimit.*:"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 17
X-RateLimit-Reset: 1520291624
Of course, one way to circumvent this limitation is to use the connection through the network nodes of the tor.
See CONTRIBUTING.md.
|-- LICENSE.md # GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
|-- README.md # this simple documentation
|-- CONTRIBUTING.md # principles of project support
|-- .gitignore # ignore untracked files
|-- .travis.yml # continuous integration with Travis CI
|-- setup.sh # install git-multiclone on the system
|-- bin
|-- git-multiclone # main script (init)
|-- doc # includes documentation, images and manuals
|-- man8
|-- git-multiclone.8 # man page for git-multiclone
|-- lib # libraries, external functions
|-- log # contains logs, created after init
|-- src # includes external project files
|-- helpers # contains core functions
|-- import # appends the contents of the lib directory
|-- __init__ # contains the __main__ function
|-- settings # contains git-multiclone settings
|-- tmp # contains temporary files (mktemp)
GPLv3 : http://www.gnu.org/licenses/
Free software, Yeah!