Skip to content

Instantly share code, notes, and snippets.

@creazy231
Forked from blvz/gh-deploy-clone.sh
Last active August 23, 2023 23:15
Show Gist options
  • Save creazy231/0dc8ecffeb21bafdc5cd7d8c740dc716 to your computer and use it in GitHub Desktop.
Save creazy231/0dc8ecffeb21bafdc5cd7d8c740dc716 to your computer and use it in GitHub Desktop.
Creates a deploy key and clones the repository.
#!/usr/bin/env bash
# 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
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"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment