コマンドラインでGitHubのリポジトリを公開もプライベートも作成したくなりました。
ブラウザでGitHubを開いて作成するのが面倒だなぁと思っていて、コマンドラインでできないかな、と思ったら出てきました。
この記事はざっくり説明するとgitコマンドにhub-new-repo
というサブコマンドを追加する、というものでした。
少し改変して公開リポジトリとプライベートリポジトリを作るようにしてみました。
~/.gitconfig
に[github]
セクションにデフォルトのユーザ名を、[alias]
セクションにサブコマンドを追加します。
$ cat ~/.gitconfig
# https://stackoverflow.com/questions/2423777/is-it-possible-to-create-a-remote-repo-on-github-from-the-cli-without-opening-br/38265340#38265340
[github]
user = "yousan"
[alias]
hub-new-public-repo = "!REPO=$(basename $PWD) GHUSER=$(git config --get github.user); curl -u $GHUSER https://api.github.com/user/repos -d {\\\"name\\\":\\\"$REPO\\\"} --fail; git remote add origin git@github.com:$GHUSER/$REPO.git; git push origin master"
hub-new-private-repo = "!REPO=$(basename $PWD) GHUSER=$(git config --get github.user); curl -u $GHUSER https://api.github.com/user/repos -d {\\\"name\\\":\\\"$REPO\\\"\\,\\\"private\\\":\\\"true\\\"} --fail; git remote add origin git@github.com:$GHUSER/$REPO.git; git push origin master"%
実行するとこんな感じです。
$ mkdir testrepo; cd testrepo
$ git hub-new-public-repo
(作成完了!)
hub-new-private-repo
にすればプライベートリポジトリが作成されます。(ただしプライベートリポジトリを持つにはGitHubに課金が必要です)
またgit add -A; git commit -m ''; git push origin master
を省略化するコマンドもあります。
ちなみにGitHub系の便利コマンドを集めたhubというコマンドパッケージもありますので、そちらもどうぞ。
Enjoy your GitHub!