-
Notifications
You must be signed in to change notification settings - Fork 0
gh-dl is a GitHub archiving client.
License
esote/gh-dl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
gh-dl is a GitHub archiving client. It takes a list of names, which may be users, organizations, or repositories, to create a compressed archive of the result. ./gh-gl [-aqsv] [-l level] [-t duration] [-x repos] name... The -a option specifies to use oauth2 & ssh authentication to clone private repos. This requires two steps in GitHub: first, generate a new personal access token with the "repo" scope, then add an SSH key. The personal access token allows discovering private repos, and the SSH key is used to clone them. When entering the personal access token on the commandline, echoing is disabled. The -l option specifies the gzip compression level -2 <= l <= 9. -2 for Huffman coding, -1 for a reasonable default level, otherwise 0 (none) <= l <= 9 (best). The -t option specifies the timeout when cloning the git repo. The -s option specifies to recursively clone submodules. The -q option specifies to print nothing but fatal errors. The -v option prints more things, such as download progress and rate limit counts. The -x option specifies a comma-separated list of repositories to exclude. If the client is interrupted, it will leave a folder in the /tmp directory. Example execution on the "esote" user, the "git" organization, and the "golang/lint" repository, with authentication, and a 30s timeout (meaning large repos are skipped). $ gh-dl -a -t 30s esote git golang/lint Personal access token: found 7 repos for git found 75 repos for esote error: git/git: context deadline exceeded downloaded 82/83 repos archive created: gh-dl-1610939687.tar.gz
About
gh-dl is a GitHub archiving client.