Skip to content

Instantly share code, notes, and snippets.

@blvz
Last active June 3, 2025 05:00
Show Gist options
  • Save blvz/8eeebacae11011c25fc79eff12f49ae9 to your computer and use it in GitHub Desktop.
Save blvz/8eeebacae11011c25fc79eff12f49ae9 to your computer and use it in GitHub Desktop.

Revisions

  1. blvz revised this gist Aug 26, 2017. No changes.
  2. blvz created this gist Aug 26, 2017.
    41 changes: 41 additions & 0 deletions gh-deploy-clone.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    #!/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"