1
0
Fork 0
forked from forgejo/forgejo

add http protocol clone support

This commit is contained in:
Lunny Xiao 2014-03-22 00:48:26 +08:00
parent 5cb2d3d2e2
commit efdaf6ee15
4 changed files with 40 additions and 4 deletions

View file

@ -5,11 +5,13 @@
package repo
import (
"path"
"strings"
"github.com/codegangsta/martini"
"github.com/gogits/git"
"github.com/gogits/webdav"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
@ -181,6 +183,29 @@ func Single(ctx *middleware.Context, params martini.Params) {
ctx.HTML(200, "repo/single", ctx.Data)
}
func Http(ctx *middleware.Context, params martini.Params) {
/*if !ctx.Repo.IsValid {
return
}*/
// TODO: access check
username := params["username"]
reponame := params["reponame"]
if strings.HasSuffix(reponame, ".git") {
reponame = reponame[:len(reponame)-4]
}
prefix := path.Join("/", username, params["reponame"])
server := &webdav.Server{
Fs: webdav.Dir(models.RepoPath(username, reponame)),
TrimPrefix: prefix,
Listings: true,
}
server.ServeHTTP(ctx.ResponseWriter, ctx.Req)
}
func Setting(ctx *middleware.Context, params martini.Params) {
if !ctx.Repo.IsOwner {
ctx.Error(404)