その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

GitHub のリポジトリページにアクセスするだけで自動的に git clone される Chrome 拡張書いた

GitHub のリポジトリページにアクセスするだけでローカルに git clone される Chrome 拡張を書きました.ggc という略称になりますが,まあなんかこれ紛らわしいですね.

なぜこんなものが必要になったかというと GitHub のリポジトリ内検索は割と結果がひどくて,手元に clone してきてから grep なりなんなりをかけた方が必要なものを得られる可能性が極めて高い,というのがあるためです.
そんでもっていちいち clone するっつうのもダルいので,それだったらブラウザでリポジトリのページにアクセスした瞬間に自動的に clone すればいいじゃーん,もう2015年なのでストレージとか気にせず豪快にいこうやガッハッハ,という方法に id:s5r 氏と話していて辿り着いたのでそれを実装したというのが経緯になります.


Chrome 拡張を名乗っていますが,実態は Chrome 拡張 + サーバサイド実装という風になっています.
Chrome 拡張から直接コマンドラインを叩くのは不可能では無さそうだったけれど割とへんてこりんなステップを踏まなければならなそうな上に,Chrome のバージョンが変わったらここらへんガンガンぶっ壊れるんだろうな〜という憂慮があった為,ローカルにサーバを立ち上げておいてそのサーバに対して Chrome 拡張から Ajax で API を叩く,というシンプルな構成になっています.


サーバの実装は go で書いていて,GitHub Releases でバイナリを配っているので,ダウンロードしてきてシュッと立ち上げることが可能です.
拡張本体の実装はこうしたアプリケーションの特性から Chrome Web Store とかにはリリースしてません.GitHub に置いてるだけですので適宜インストールしてご利用ください.


clone 先のディレクトリの構成は ghq と統一しているので,サーバの --dir オプションで clone ディレクトリの先を ghq のディレクトリと繋いでおくと色々多幸感があるかもしれません.


また,オプションとして github.com 以外のドメイン,例えば社内 GitHub Enterprise に対応させるための設定機能などが入っています.詳しくは README などを読んでいただけると良いかと思います.


とにかくこの拡張を有効にしておくと自動的にたくさんのリポジトリが降って来るのである種の快感があります.そして便利.
この便利さは Disk Full を味わうまでは続くことと思われます.あるいは超巨大リポジトリを無意識のうちに踏んでアアアア,みたいな感じになるまでは.

ほどほどにご利用ください.


[追記]

[追記2]

流石に自動で Clone するのはつらい (場合がある) という指摘を id:gfx 氏から受けたので,そこらへん設定出来るようにしました.

f:id:moznion:20150925111919p:plain

これを disabled (なんとデフォルトが disabled になった) にすると,

f:id:moznion:20150925105020p:plain

Clone URL の下にボタンが出るようになるので手動で clone が出来るようになる.

[追記3]

ghq とディレクトリ構造が揃っているという地味な違いがあったり.
まあこまけえこと気にせず Auto Clone Mode で使えば良いと思います!!! 自動クローン最高!!!!!!!!!!