何かのソフトウェアを作っていて、ある程度目処が立ってきたタイミングでGitHubに登録したいと思うことが多々あります。同じような経験をしたことがある人は多いのではないでしょうか。 そんな時にいちいちGitHubを開いてリポジトリを作ってcloneして…なんていうのは面倒なのでghrepoを使ってみましょう。

ghrepoの使い方

ghrepoは現在のディレクトリをベースにGitHubリポジトリを作成してくれるコマンドラインツールです。例えば次のようなディレクトリがあります。

$ tree .
.
├── LICENSE
├── applican-config.xml
├── index.html
├── javascripts
│   ├── app.coffee
│   ├── app.js
│   ├── applican.js
│   ├── jquery-2.1.3.min.js
│   ├── mimic.js
│   └── wordpress.js
└── whitelist.xml

1 directory, 10 files

ここでghrepoを使います。最初のメッセージもつける必要があります。

$ ghrepo -m 'Init'
Your GitHub username: moongift
Your GitHub password: ✔✔✔✔✔✔

Your GitHub OTP/2FA Code (optional): 792955
WARN could not open package.json
ENOENT, open '/Users/nakatsugawa/Dropbox/DevRel/Applican/xml-rpc/package.json'
? Publish new repo as moongift/xml-rpc? Yes
Initialized empty Git repository in /Users/nakatsugawa/Dropbox/DevRel/Applican/xml-rpc/.git/
[master (root-commit) a2f287c] Init
 11 files changed, 6962 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 LICENSE
 create mode 100755 applican-config.xml
 create mode 100644 index.html
 create mode 100644 javascripts/app.coffee
 create mode 100644 javascripts/app.js
 create mode 100755 javascripts/applican.js
 create mode 100644 javascripts/jquery-2.1.3.min.js
 create mode 100755 javascripts/mimic.js
 create mode 100644 javascripts/wordpress.js
 create mode 100755 whitelist.xml
Username for 'https://github.com': moongift
Password for 'https://moongift@github.com':
  :
Branch master set up to track remote branch master from origin.

最初のcloneがHTTPSベースなので、2段階認証を行っている場合は若干面倒かも知れません。認証自体は2段階認証にも対応しています。リポジトリ名はディレクトリ名になります。また、説明は入りませんので後でアップデートが必要です。とはいえ、画面を切り替える必要もないのですごく手軽です。

ghrepoはnode/JavaScript製、MIT Licenseのオープンソース・ソフトウェアです。

mattdesl/ghrepo