@ -547,16 +547,9 @@ func ComposeHTTPSCloneURL(owner, repo string) string {
return fmt . Sprintf ( "%s%s/%s.git" , setting . AppURL , url . PathEscape ( owner ) , url . PathEscape ( repo ) )
}
func ( repo * Repository ) cloneLink ( isWiki bool ) * CloneLink {
repoName := repo . Name
if isWiki {
repoName += ".wiki"
}
func ComposeSSHCloneURL ( ownerName , repoName string ) string {
sshUser := setting . SSH . User
cl := new ( CloneLink )
// if we have a ipv6 literal we need to put brackets around it
// for the git cloning to work.
sshDomain := setting . SSH . Domain
@ -566,12 +559,25 @@ func (repo *Repository) cloneLink(isWiki bool) *CloneLink {
}
if setting . SSH . Port != 22 {
cl . SSH = fmt . Sprintf ( "ssh://%s@%s/%s/%s.git" , sshUser , net . JoinHostPort ( setting . SSH . Domain , strconv . Itoa ( setting . SSH . Port ) ) , url . PathEscape ( repo . OwnerName ) , url . PathEscape ( repoName ) )
} else if setting . Repository . UseCompatSSHURI {
cl . SSH = fmt . Sprintf ( "ssh://%s@%s/%s/%s.git" , sshUser , sshDomain , url . PathEscape ( repo . OwnerName ) , url . PathEscape ( repoName ) )
} else {
cl . SSH = fmt . Sprintf ( "%s@%s:%s/%s.git" , sshUser , sshDomain , url . PathEscape ( repo . OwnerName ) , url . PathEscape ( repoName ) )
return fmt . Sprintf ( "ssh://%s@%s/%s/%s.git" , sshUser ,
net . JoinHostPort ( setting . SSH . Domain , strconv . Itoa ( setting . SSH . Port ) ) ,
url . PathEscape ( ownerName ) ,
url . PathEscape ( repoName ) )
}
if setting . Repository . UseCompatSSHURI {
return fmt . Sprintf ( "ssh://%s@%s/%s/%s.git" , sshUser , sshDomain , url . PathEscape ( ownerName ) , url . PathEscape ( repoName ) )
}
return fmt . Sprintf ( "%s@%s:%s/%s.git" , sshUser , sshDomain , url . PathEscape ( ownerName ) , url . PathEscape ( repoName ) )
}
func ( repo * Repository ) cloneLink ( isWiki bool ) * CloneLink {
repoName := repo . Name
if isWiki {
repoName += ".wiki"
}
cl := new ( CloneLink )
cl . SSH = ComposeSSHCloneURL ( repo . OwnerName , repoName )
cl . HTTPS = ComposeHTTPSCloneURL ( repo . OwnerName , repoName )
return cl
}