| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | // Copyright 2014 The Gogs Authors. All rights reserved.// Use of this source code is governed by a MIT-style// license that can be found in the LICENSE file.package v1import (	"github.com/gogits/gogs/models"	"github.com/gogits/gogs/modules/base"	"github.com/gogits/gogs/modules/git"	"github.com/gogits/gogs/modules/middleware"	"github.com/gogits/gogs/routers/repo")func GetRepoRawFile(ctx *middleware.Context) {	if !ctx.Repo.HasAccess() {		ctx.Error(404)		return	}	blob, err := ctx.Repo.Commit.GetBlobByPath(ctx.Repo.TreeName)	if err != nil {		if err == git.ErrNotExist {			ctx.Error(404)		} else {			ctx.JSON(500, &base.ApiJsonErr{"GetBlobByPath: " + err.Error(), base.DOC_URL})		}		return	}	if err = repo.ServeBlob(ctx, blob); err != nil {		ctx.JSON(500, &base.ApiJsonErr{"ServeBlob: " + err.Error(), base.DOC_URL})	}}func GetRepoArchive(ctx *middleware.Context) {	repoPath := models.RepoPath(ctx.Params(":username"), ctx.Params(":reponame"))	gitRepo, err := git.OpenRepository(repoPath)	if err != nil {		ctx.Handle(500, "RepoAssignment Invalid repo: "+repoPath, err)		return	}	ctx.Repo.GitRepo = gitRepo	repo.Download(ctx)}
 |