Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Creates a deploy key and clones the repository.
#!/usr/bin/env bash
read -r -d '' usage << EOM
Usage:
gh-deploy-clone user/repo [ENVIRONMENT]
EOM
[ -z "$1" ] && echo && echo "$usage" && echo && exit 1
repo="$1"
repo_name="${repo#*/}"
env=$([ -n "$2" ] && echo "$2_" || echo)
key="github_$env$repo_name"
key_path="$HOME/.ssh/$key.rsa"
cat >> "$HOME/.ssh/config" << EOM
Host $repo_name.github.com
HostName github.com
User git
IdentityFile $key_path
IdentitiesOnly yes
EOM
ssh-keygen -f "$key_path" -N '' -t rsa -C "$key"
echo
echo
echo Add the deploy key below to
echo "https://github.com/$repo/settings/keys"
echo and press enter to clone the repo.
echo
echo
cat "$key_path.pub"
echo
echo
read -p "Press enter to continue..." </dev/tty
git clone "git@$repo_name.github.com:$repo.git"
@blvz

This comment has been minimized.

Copy link
Owner Author

commented Aug 26, 2017

Install:

curl https://gist.githubusercontent.com/blvz/8eeebacae11011c25fc79eff12f49ae9/raw/6f2f7f3709a0fe852d8a3a5bb125325e3ffbc7d8/gh-deploy-clone.sh > /usr/local/bin/gh-deploy-clone
chmod +x /usr/local/bin/gh-deploy-clone
@acangiano

This comment has been minimized.

Copy link

commented Apr 28, 2018

Nicely done! Thank you, Rafael.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.