From b553ea45ee29f5fc4f123c9f1083b90104ec4fe4 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sat, 13 Dec 2014 16:46:00 -0500 Subject: modes/repo: incorrect SSH clone URL for #742 --- models/repo.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'models/repo.go') diff --git a/models/repo.go b/models/repo.go index bf46696d..3ea4efc7 100644 --- a/models/repo.go +++ b/models/repo.go @@ -241,6 +241,27 @@ func IsRepositoryExist(u *User, repoName string) (bool, error) { return com.IsDir(RepoPath(u.Name, repoName)), nil } +// CloneLink represents different types of clone URLs of repository. +type CloneLink struct { + SSH string + HTTPS string + Git string +} + +// CloneLink returns clone URLs of repository. +func (repo *Repository) CloneLink() (cl CloneLink, err error) { + if err = repo.GetOwner(); err != nil { + return cl, err + } + if setting.SshPort != 22 { + cl.SSH = fmt.Sprintf("ssh://%s@%s:%d/%s/%s.git", setting.RunUser, setting.Domain, setting.SshPort, repo.Owner.LowerName, repo.LowerName) + } else { + cl.SSH = fmt.Sprintf("%s@%s:%s/%s.git", setting.RunUser, setting.Domain, repo.Owner.LowerName, repo.LowerName) + } + cl.HTTPS = fmt.Sprintf("%s%s/%s.git", setting.AppUrl, repo.Owner.LowerName, repo.LowerName) + return cl, nil +} + var ( illegalEquals = []string{"debug", "raw", "install", "api", "avatar", "user", "org", "help", "stars", "issues", "pulls", "commits", "repo", "template", "admin", "new"} illegalSuffixs = []string{".git", ".keys"} -- cgit v1.2.3