diff options
author | Unknwon <u@gogs.io> | 2015-02-22 22:51:25 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-02-22 22:51:25 -0500 |
commit | 7ccab9cd09eca8fa60fdd519c97c259d4b521abd (patch) | |
tree | 914ea87da32fd27d889b2145f559c0fdad8c62af /routers/repo/repo.go | |
parent | 25f5a8d7986a710cef01d02725071d2de0a6b143 (diff) | |
parent | 2369881808a906f3072c935ab0575f08bd358821 (diff) |
Merge branch 'dev' of github.com:gogits/gogs into access
Conflicts:
gogs.go
models/models.go
models/user.go
templates/.VERSION
templates/org/home.tmpl
Diffstat (limited to 'routers/repo/repo.go')
-rw-r--r-- | routers/repo/repo.go | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 48f7b09b..dfd827bb 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -181,20 +181,26 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) { } } - u, err := url.Parse(form.HttpsUrl) - - if err != nil || u.Scheme != "https" { - ctx.Data["Err_HttpsUrl"] = true - ctx.RenderWithErr(ctx.Tr("form.url_error"), MIGRATE, &form) + // Remote address can be HTTPS URL or local path. + remoteAddr := form.CloneAddr + if strings.HasPrefix(form.CloneAddr, "http") { + u, err := url.Parse(form.CloneAddr) + if err != nil { + ctx.Data["Err_CloneAddr"] = true + ctx.RenderWithErr(ctx.Tr("form.url_error"), MIGRATE, &form) + return + } + if len(form.AuthUserName) > 0 || len(form.AuthPasswd) > 0 { + u.User = url.UserPassword(form.AuthUserName, form.AuthPasswd) + } + remoteAddr = u.String() + } else if !com.IsDir(remoteAddr) { + ctx.Data["Err_CloneAddr"] = true + ctx.RenderWithErr(ctx.Tr("repo.migrate.invalid_local_path"), MIGRATE, &form) return } - if len(form.AuthUserName) > 0 || len(form.AuthPasswd) > 0 { - u.User = url.UserPassword(form.AuthUserName, form.AuthPasswd) - } - - repo, err := models.MigrateRepository(ctxUser, form.RepoName, form.Description, form.Private, - form.Mirror, u.String()) + repo, err := models.MigrateRepository(ctxUser, form.RepoName, form.Description, form.Private, form.Mirror, remoteAddr) if err == nil { log.Trace("Repository migrated: %s/%s", ctxUser.Name, form.RepoName) ctx.Redirect(setting.AppSubUrl + "/" + ctxUser.Name + "/" + form.RepoName) |