aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2017-09-23 21:24:24 +0800
committerLauris BH <lauris@nix.lv>2017-09-23 16:24:24 +0300
commit2ef8b8bcbeeb7efabb6cfd247ad6227b0e2e21cd (patch)
tree85f3504183720e71bfcc93283ebd5d4f93b819fb /modules
parent2db424c3f157409603645310a598dd0d974d90bf (diff)
downloadgitea-2ef8b8bcbeeb7efabb6cfd247ad6227b0e2e21cd.tar.gz
gitea-2ef8b8bcbeeb7efabb6cfd247ad6227b0e2e21cd.zip
fix go get subpackage bug (#2584)
* fix go get subpackage bug * merge the duplicated funtions
Diffstat (limited to 'modules')
-rw-r--r--modules/context/repo.go24
1 files changed, 13 insertions, 11 deletions
diff --git a/modules/context/repo.go b/modules/context/repo.go
index 6446b859ad..ae38c25567 100644
--- a/modules/context/repo.go
+++ b/modules/context/repo.go
@@ -134,21 +134,23 @@ func RetrieveBaseRepo(ctx *Context, repo *models.Repository) {
}
}
-// composeGoGetImport returns go-get-import meta content.
-func composeGoGetImport(owner, repo string) string {
+// ComposeGoGetImport returns go-get-import meta content.
+func ComposeGoGetImport(owner, repo string) string {
return path.Join(setting.Domain, setting.AppSubURL, owner, repo)
}
-// earlyResponseForGoGetMeta responses appropriate go-get meta with status 200
+// EarlyResponseForGoGetMeta responses appropriate go-get meta with status 200
// if user does not have actual access to the requested repository,
// or the owner or repository does not exist at all.
// This is particular a workaround for "go get" command which does not respect
// .netrc file.
-func earlyResponseForGoGetMeta(ctx *Context) {
+func EarlyResponseForGoGetMeta(ctx *Context) {
+ username := ctx.Params(":username")
+ reponame := ctx.Params(":reponame")
ctx.PlainText(200, []byte(com.Expand(`<meta name="go-import" content="{GoGetImport} git {CloneLink}">`,
map[string]string{
- "GoGetImport": composeGoGetImport(ctx.Params(":username"), strings.TrimSuffix(ctx.Params(":reponame"), ".git")),
- "CloneLink": models.ComposeHTTPSCloneURL(ctx.Params(":username"), ctx.Params(":reponame")),
+ "GoGetImport": ComposeGoGetImport(username, strings.TrimSuffix(reponame, ".git")),
+ "CloneLink": models.ComposeHTTPSCloneURL(username, reponame),
})))
}
@@ -216,7 +218,7 @@ func RepoIDAssignment() macaron.Handler {
// Check access.
if ctx.Repo.AccessMode == models.AccessModeNone {
if ctx.Query("go-get") == "1" {
- earlyResponseForGoGetMeta(ctx)
+ EarlyResponseForGoGetMeta(ctx)
return
}
ctx.Handle(404, "no access right", err)
@@ -260,7 +262,7 @@ func RepoAssignment() macaron.Handler {
if err != nil {
if models.IsErrUserNotExist(err) {
if ctx.Query("go-get") == "1" {
- earlyResponseForGoGetMeta(ctx)
+ EarlyResponseForGoGetMeta(ctx)
return
}
ctx.Handle(404, "GetUserByName", nil)
@@ -282,7 +284,7 @@ func RepoAssignment() macaron.Handler {
RedirectToRepo(ctx, redirectRepoID)
} else if models.IsErrRepoRedirectNotExist(err) {
if ctx.Query("go-get") == "1" {
- earlyResponseForGoGetMeta(ctx)
+ EarlyResponseForGoGetMeta(ctx)
return
}
ctx.Handle(404, "GetRepositoryByName", nil)
@@ -315,7 +317,7 @@ func RepoAssignment() macaron.Handler {
// Check access.
if ctx.Repo.AccessMode == models.AccessModeNone {
if ctx.Query("go-get") == "1" {
- earlyResponseForGoGetMeta(ctx)
+ EarlyResponseForGoGetMeta(ctx)
return
}
ctx.Handle(404, "no access right", err)
@@ -443,7 +445,7 @@ func RepoAssignment() macaron.Handler {
ctx.Data["PullRequestCtx"] = ctx.Repo.PullRequest
if ctx.Query("go-get") == "1" {
- ctx.Data["GoGetImport"] = composeGoGetImport(owner.Name, repo.Name)
+ ctx.Data["GoGetImport"] = ComposeGoGetImport(owner.Name, repo.Name)
prefix := setting.AppURL + path.Join(owner.Name, repo.Name, "src", ctx.Repo.BranchName)
ctx.Data["GoDocDirectory"] = prefix + "{/dir}"
ctx.Data["GoDocFile"] = prefix + "{/dir}/{file}#L{line}"