sbtで、privateリポジトリやgithub enterpriseでも、project referenceを使ってsshプロトコルで直接参照する方法

タイトル長ぇよ!


sbtには、あまり知られてない?こういう機能があります
http://yoshiori.hatenablog.com/entry/20120324/1332618170

公式サイトにも一応載ってます。*1

https://github.com/sbt/website/pull/155/files

で、結論をいうと、普通にpublicなリポジトリを参照する際は、以下のように

RootProject( uri("git://github.com/foo/bar.git") )

ProjectRef( uri("git://github.com/foo/bar.git"), "baz")

と書きます。しかしprivateなリポジトリgithub enterpriseだったら、認証が必要なのでgitプロトコルでは参照できませんね?
その際は以下のように先頭にsshをつけ、 gitの後の :// の部分は @ に変えます

RootProject( uri("ssh://git@github.com/foo/bar.git") )

ProjectRef( uri("ssh://git@github.com/foo/bar.git"), "baz")

たしかgit的には git@github.com:foo/bar.git というurisshと認識されますが(?)sbtの場合はある意味独自なので注意が必要です。

github.comの後も コロン : ではなく、スラッシュ / でないといけないようです(?)

*1:が、ページ整理したタイミングで色々あってわかりにくい?pull reqした後に気がついたけど、以下のpull reqページどこからみるんだ?