プロキシサーバを指定してgit cloneできるコマンドを作りました
タイトル通りですが、jgitの勉強がてら、プロキシサーバを指定してgitリポジトリをクローンできる「jgit-proxy-clone」を作りました。名前もそのまんまです。
リポジトリはこちら。 https://github.com/rabitarochan/jgit-proxy-clone
作ったきっかけ
以下のツイートを見たのがきっかけです。
@backpaper0 ネイティブのGitだとできない気がしますが、EGitはちゃんとシステムのプロキシ設定を見て動いているように見えます。いちいち環境変数変えるのが面倒なのでクローンだけEGitでやってそのあとconfigにリポジトリ毎のプロキシ設定を追加してます。
— Naoki Takezoe (@takezoen) 2013, 8月 19
・・・実は同じようなことで悩んでいて、ちょっと前にツイートしてましたw
gitで、特定のリモートに接続する際のみ適用するproxyの設定とかってできないのかな。社内のgitサーバに対してはプロキシを経由せず、社外のgitサーバに対してはプロキシを経由する、みたいな。 #git
— Kengo Asamizu (@rabitarochan) 2013, 8月 5
会社のネットワーク環境にはプロキシサーバが設置されているため、外部のgitリポジトリを見に行く場合はそのプロキシを経由しなければいけません。
しかし、社内のgitリポジトリについてはプロキシを経由するとアクセスできなくなるため、クローンする度に.gitconfigファイルを修正していました。
今回作ったもの
jgitを使って、プロキシサーバを指定して(または、プロキシサーバを経由しないようにして)gitリポジトリをクローンするだけのコマンドを作りました。
コマンド実行時に指定したプロキシ設定については、自動的にリポジトリのconfigファイルに登録するようにしています。
そのため、クローンする時だけこのコマンドを使えばよくて、それ以降は通常のgitリポジトリとして使うことができます。
使い方
最初のリリース版を作成していますので、以下のページから「jgit-proxy-clone-0.1.jar」ダウンロードして、任意のディレクトリに保存します。
https://github.com/rabitarochan/jgit-proxy-clone/releases
jarの実行方法は以下のとおりです。
(プロキシサーバを指定する場合) > java -jar jgit-proxy-clone-0.1.jar <リモートURL> [<ディレクトリ>] -h <プロキシホスト名 or IPアドレス> -p <プロキシポート番号> (プロキシサーバを使わない場合) > java -jar jgit-proxy-clone-0.1.jar <リモートURL> [<ディレクトリ>]
上記のとおり、プロキシサーバのホスト名とポート番号を指定せず、リモートURLのみを指定して実行した場合、 .gitconfigのプロキシ設定やシステムのプロキシ設定を使わず、直接接続してクローンを実行します。
その点だけ注意してもらえれば、最低限使えるものになっています。
今後
最低限使えるものとして、とりあえずリリースした状況です。ですので、ドキュメントだったり、実行時の表示だったりがほぼ出来ていない状態となっています。
とりあえずは使い方の記述と、動作がわかるような画面表示を実装使用と思います。
それと、現在は認証が必要なリポジトリにはアクセス出来ません。これについても早めに実装しようと思っています。
まとめ
こんな状態のままリリースしてしまいましたが、最低限は動くものとなっています。
プロキシ環境が複雑でgitリポジトリのクローンに困っている方、ぜひお使いいただきフィードバック頂ければと思います。
pullreqお待ちしてます!