Skip to content

Instantly share code, notes, and snippets.

@mkhon
Last active May 7, 2020 13:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mkhon/cb6286057b19022c2eadaca4a66e9694 to your computer and use it in GitHub Desktop.
Save mkhon/cb6286057b19022c2eadaca4a66e9694 to your computer and use it in GitHub Desktop.
Import private git repo to github
#!/bin/sh
set -e
SOURCE_BASE=${SOURCE_BASE:-git@bitbucket.org:mkhon}
# Example: REPO_PREFIX=orgs/my-org
REPO_PREFIX=${REPO_PREFIX:-user}
import_repo()
{
repo="$1"
git_url=`curl -s -H "Authorization: token $GITHUB_TOKEN " --data "{\"name\": \"$repo\", \"private\": true}" https://api.github.com/$REPO_PREFIX/repos | jq -r .ssh_url`
if [ ! -d "$repo" ]; then
git clone --bare "$SOURCE_BASE/$repo.git"
fi
pushd "$repo"
git remote set-url origin "$git_url"
git push --mirror
popd
}
if [ -z "$GITHUB_TOKEN" ]; then
echo 1>&2 "Please set GITHUB_TOKEN environment variable (github personal authentication token)"
exit 1
fi
for r in "$@"; do
import_repo "$r"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment