@@ -43,6 +43,7 @@ object TypelevelGitHubPlugin extends AutoPlugin {
4343 tlGitHubRepo := gitHubUserRepo.value.map(_._2),
4444 scmInfo := gitHubUserRepo.value.map {
4545 case (user, repo) =>
46+ sLog.value.info(s " set scmInfo to https://github.com/ $user/ $repo" )
4647 gitHubScmInfo(user, repo)
4748 },
4849 homepage := homepage.value.orElse(scmInfo.value.map(_.browseUrl))
@@ -55,22 +56,26 @@ object TypelevelGitHubPlugin extends AutoPlugin {
5556 s " scm:git:[email protected] : $user
/ $repo
.git " 5657 )
5758
58- private [sbt] def gitHubUserRepo = Def .setting {
59+ private [sbt] lazy val gitHubUserRepo = Def .setting {
5960 import scala .sys .process ._
6061
61- val identifier = """ ([^\/]+?)"""
62- val GitHubHttps = s " https://github.com/ $identifier/ $identifier(?: \\ .git)? " .r
63- val GitHubGit = s " git://github.com: $identifier/ $identifier(?: \\ .git)? " .r
64- val GitHubSsh = s " [email protected] :$identifier
/ $identifier
(?: \\ .git)? " .r
65- Try {
66- val remote = List (" git" , " ls-remote" , " --get-url" , " origin" ).!! .trim()
67- remote match {
68- case GitHubHttps (user, repo) => Some ((user, repo))
69- case GitHubGit (user, repo) => Some ((user, repo))
70- case GitHubSsh (user, repo) => Some ((user, repo))
71- case _ => None
72- }
73- }.toOption.flatten
62+ def fromRemote (remote : String ) = {
63+ val identifier = """ ([^\/]+?)"""
64+ val GitHubHttps = s " https://github.com/ $identifier/ $identifier(?: \\ .git)? " .r
65+ val GitHubGit = s " git://github.com: $identifier/ $identifier(?: \\ .git)? " .r
66+ val GitHubSsh = s " [email protected] :$identifier
/ $identifier
(?: \\ .git)? " .r
67+ Try {
68+ List (" git" , " ls-remote" , " --get-url" , remote).!! .trim() match {
69+ case GitHubHttps (user, repo) => Some ((user, repo))
70+ case GitHubGit (user, repo) => Some ((user, repo))
71+ case GitHubSsh (user, repo) => Some ((user, repo))
72+ case _ => None
73+ }
74+ }.toOption.flatten
75+ }
76+
77+ // upstream if this is a fork, otherwise fallback to origin
78+ fromRemote(" upstream" ).orElse(fromRemote(" origin" ))
7479 }
7580
7681}
0 commit comments