diff options
author | Unknwon <u@gogs.io> | 2017-02-20 18:05:34 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2017-02-20 18:05:34 -0500 |
commit | 6002d7260329e4fa22c1069434d58dcc258b15c8 (patch) | |
tree | d48cbb7cfde86d41c731a279e02c195a90ae7a21 /modules | |
parent | 934734a85a1e4cb68d8c1aa68c518b511c7be190 (diff) |
router: fix 404 when repository name contains dot
E.g. atomi.github.io
Diffstat (limited to 'modules')
-rw-r--r-- | modules/context/repo.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/modules/context/repo.go b/modules/context/repo.go index 97fd3e36..710cbbf6 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -146,18 +146,18 @@ func RepoAssignment(args ...bool) macaron.Handler { err error ) - userName := ctx.Params(":username") - repoName := ctx.Params(":reponame") + ownerName := ctx.Params(":username") + repoName := strings.TrimSuffix(ctx.Params(":reponame"), ".git") refName := ctx.Params(":branchname") if len(refName) == 0 { refName = ctx.Params(":path") } // Check if the user is the same as the repository owner - if ctx.IsSigned && ctx.User.LowerName == strings.ToLower(userName) { + if ctx.IsSigned && ctx.User.LowerName == strings.ToLower(ownerName) { owner = ctx.User } else { - owner, err = models.GetUserByName(userName) + owner, err = models.GetUserByName(ownerName) if err != nil { if models.IsErrUserNotExist(err) { if ctx.Query("go-get") == "1" { @@ -230,9 +230,9 @@ func RepoAssignment(args ...bool) macaron.Handler { ctx.Data["RepoName"] = ctx.Repo.Repository.Name ctx.Data["IsBareRepo"] = ctx.Repo.Repository.IsBare - gitRepo, err := git.OpenRepository(models.RepoPath(userName, repoName)) + gitRepo, err := git.OpenRepository(models.RepoPath(ownerName, repoName)) if err != nil { - ctx.Handle(500, "RepoAssignment Invalid repo "+models.RepoPath(userName, repoName), err) + ctx.Handle(500, "RepoAssignment Invalid repo "+models.RepoPath(ownerName, repoName), err) return } ctx.Repo.GitRepo = gitRepo |