Fork or sync a repo, or clone a user or org on GitHub to GitHub
Project description
superfork
Fork or sync a repo or user/organization's repos on GitHub to GitHub
Features
- From the command line, you want to fork a repo to a account you control on GitHub
Let's say your GitHub username is mona and you want to fork the repo willf/superfork to your account
superfork mona willf/superfork
- From the command line, you want to sync or fork all of the repos of a user or organization to an account you control on GitHub
Let's say your GitHub username is mona and you want to sync all of the repos of the user willf to your account
superfork mona willf
You can specify multiple users or organizations to sync
superfork mona willf willf2 willf/superfork
Note: To avoid overwhelming GitHub (and thus hitting API limits), this program will only attempt to fork a repo every 30 seconds. If you are syncing a large number of repos, it may take a while to complete.
THe command has the following options:
--sync: Sync when repository already exists (default)--no-sync: Don't sync when repository already exists--include-private: Include private repositories (of course, you need to be able to access the private repos)--include-forks: Include repositories which were originally forked (default: don't include)--include-dot-github: Include .github repository if found (default: don't include)--dry-run: Don't actually do anything, but check status of repositories--without-sleeping: Don't sleep between requests (default: sleep 30 seconds between fork requests)
Only use --without-sleeping if you just have a few forks to do, otherwise you may hit GitHub (undocumented) API limits.
Installation
This can installed using pipx or uv:
$ pipx install superfork
or
$ uv tool install superfork
Usage
$ superfork --help
Usage: superfork [OPTIONS] TO [SOURCE]...
[TO]: destination user or organization
[SOURCE]: source user or organization, or repository (one or more)
A valid GITHUB_TOKEN must be set in the environment, or in a .env file in
the current directory, or in a .env file in the user's home directory.
To get a GITHUB_TOKEN, see https://docs.github.com/en/authentication
Options:
--sync / --no-sync Sync when repository already exists [default: sync]
--include-private Include private repositories
--include-forks Include repositories which were originally forked
--include-dot-github Include .github repository if found
--dry-run Do not actually do anything, but check status of repositories
--without-sleeping Do not sleep between requests
--help Show this message and exit.
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file superfork-0.0.4.tar.gz.
File metadata
- Download URL: superfork-0.0.4.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e89963ea1049b92baf8a0f97466eb8fcc6e2c6375bb04247e65b8e92a63f0809
|
|
| MD5 |
bd9e0c600558857b2fde21c5b50b49c8
|
|
| BLAKE2b-256 |
2a90142ae0a363b6950b462f37c669fdf6cbb7ba593b9dc334a08eb2f9064caf
|
File details
Details for the file superfork-0.0.4-py3-none-any.whl.
File metadata
- Download URL: superfork-0.0.4-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5a4233d7ed85127e42b312d533f08833e6697fae45bfaee398632dba3be0f2b
|
|
| MD5 |
6cb6e94d8aaacde07d49e01982afffb1
|
|
| BLAKE2b-256 |
9586c0bd3d41fa53c1801ad16119a9aeb9b278c669bf3004245cf528ca9780a7
|