@@ -29,13 +29,12 @@ func NewSubModuleFile(c *Commit, refURL, refID string) *SubModuleFile {
2929 }
3030}
3131
32- // RefURL guesses and returns reference URL.
33- func (sf * SubModuleFile ) RefURL (urlPrefix string , parentPath string ) string {
34- if sf .refURL == "" {
32+ func getRefURL (refURL , urlPrefix , parentPath string ) string {
33+ if refURL == "" {
3534 return ""
3635 }
3736
38- url := strings .TrimSuffix (sf . refURL , ".git" )
37+ url := strings .TrimSuffix (refURL , ".git" )
3938
4039 // git://xxx/user/repo
4140 if strings .HasPrefix (url , "git://" ) {
@@ -67,12 +66,21 @@ func (sf *SubModuleFile) RefURL(urlPrefix string, parentPath string) string {
6766 if strings .Contains (urlPrefix , url [i + 1 :j ]) {
6867 return urlPrefix + url [j + 1 :]
6968 }
69+ if strings .HasPrefix (url , "ssh://" ) || strings .HasPrefix (url , "git+ssh://" ) {
70+ k := strings .Index (url [j + 1 :], "/" )
71+ return "http://" + url [i + 1 :j ] + "/" + url [j + 1 :][k + 1 :]
72+ }
7073 return "http://" + url [i + 1 :j ] + "/" + url [j + 1 :]
7174 }
7275
7376 return url
7477}
7578
79+ // RefURL guesses and returns reference URL.
80+ func (sf * SubModuleFile ) RefURL (urlPrefix string , parentPath string ) string {
81+ return getRefURL (sf .refURL , urlPrefix , parentPath )
82+ }
83+
7684// RefID returns reference ID.
7785func (sf * SubModuleFile ) RefID () string {
7886 return sf .refID
0 commit comments