Skip to main content

Fork a GitHub repo, clone that repo to a local directory, add the upstream remote, create an optional feature branch and checkout that branch

Usage

usage: fork-github-repo [-h] [-c CONFIG] url [branch]

Fork a GitHub repo, clone that repo to a local directory, add the upstream
remote, create an optional feature branch and checkout that branch

positional arguments:
  url                   GitHub URL of the upstream repo to fork
  branch                Name of the feature branch to create

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Filename of the yaml config file (default :
                        ~/.github/fork_github_repo.yaml)

The config file with a default location of
~/.github/fork_github_repo.yaml contains the following settings:

-  github_token : The `GitHub personal access token with the public_repo scope
   allowed.
   https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/
-  repo_dir : The directory path to the directory containing all your cloned
    repos. If this isn't defined, /tmp is used.

The file is YAML formatted and the contents look like this :

github_token: 0123456789abcdef0123456789abcdef01234567
repo_dir: ~/Documents/github.com/example/

Config

The config file with a default location of ~/.github/fork_github_repo.yaml contains the following settings.

  • github_token : The GitHub personal access token with the public_repo scope allowed

  • repo_dir : The directory path to the directory containing all your cloned repos. If this isn’t defined, /tmp is used.

Examples

Fork Spoon-Knife

$ fork-github-repo https://github.com/octocat/Spoon-Knife
Forked https://github.com/octocat/Spoon-Knife to git@github.com:gene1wood/Spoon-Knife.git
Cloned git@github.com:gene1wood/Spoon-Knife.git to /path/to/gene1wood/Spoon-Knife
Remote "upstream" created for https://github.com/octocat/Spoon-Knife
Remote "upstream" fetched

Fork Spoon-Knife and create a feature branch called ‘my-feature’

$ fork-github-repo https://github.com/octocat/Spoon-Knife my-feature
Forked https://github.com/octocat/Spoon-Knife to git@github.com:gene1wood/Spoon-Knife.git
Cloned git@github.com:gene1wood/Spoon-Knife.git to /path/to/gene1wood/Spoon-Knife
Remote "upstream" created for https://github.com/octocat/Spoon-Knife
Remote "upstream" fetched
Branch "my-feature" created
Branch "my-feature" pushed to origin
Tracking branch "origin/my-feature" setup for branch "my-feature"
Branch "my-feature" checked out

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fork-github-repo-1.2.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fork_github_repo-1.2.0-py2-none-any.whl (5.0 kB view details)

Uploaded Python 2

File details

Details for the file fork-github-repo-1.2.0.tar.gz.

File metadata

  • Download URL: fork-github-repo-1.2.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1

File hashes

Hashes for fork-github-repo-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8e905730f5d963df2ddce666127d47e74a7f2de9cb8c115b2e908693f2e45c17
MD5 2480fc1a13b60f7cc3536bb29b1ff82c
BLAKE2b-256 2ce2114d9f0d6c4eed2b270c759b056dc85f0ac5a1b25c45d380ba1e9742cf26

See more details on using hashes here.

File details

Details for the file fork_github_repo-1.2.0-py2-none-any.whl.

File metadata

  • Download URL: fork_github_repo-1.2.0-py2-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15rc1

File hashes

Hashes for fork_github_repo-1.2.0-py2-none-any.whl
Algorithm Hash digest
SHA256 e0dad9a424fbfb18b831f280acf46cdf0e5313165f920f97bea41c00b668a98f
MD5 3893925b6e3c8b72363dd5881fabe07d
BLAKE2b-256 371514b8b5c3f2fcb015ffe1ceaf20df96e6844e662ddde210fb6bdf172edc67

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.1.0

2 files

1.0.1

2 files

1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page