2014-11-17 04:27:04 +03:00
// 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.
2015-12-05 01:16:42 +03:00
package repo
2014-11-17 05:32:26 +03:00
import (
2015-12-16 01:25:45 +03:00
"github.com/gogits/git-module"
2015-12-10 04:46:05 +03:00
2015-09-02 16:54:35 +03:00
"github.com/gogits/gogs/models"
2016-03-11 19:56:52 +03:00
"github.com/gogits/gogs/modules/context"
2014-11-17 05:32:26 +03:00
"github.com/gogits/gogs/routers/repo"
)
2015-12-03 08:24:37 +03:00
// https://github.com/gogits/go-gogs-client/wiki/Repositories-Contents#download-raw-content
2016-03-14 01:49:16 +03:00
func GetRawFile ( ctx * context . APIContext ) {
2015-02-16 13:51:56 +03:00
if ! ctx . Repo . HasAccess ( ) {
2016-03-14 01:49:16 +03:00
ctx . Status ( 404 )
2014-11-17 05:32:26 +03:00
return
}
2016-08-25 07:35:03 +03:00
blob , err := ctx . Repo . Commit . GetBlobByPath ( ctx . Repo . TreePath )
2014-11-17 05:32:26 +03:00
if err != nil {
2015-12-10 04:46:05 +03:00
if git . IsErrNotExist ( err ) {
2016-03-14 01:49:16 +03:00
ctx . Status ( 404 )
2014-11-17 05:32:26 +03:00
} else {
2016-03-14 01:49:16 +03:00
ctx . Error ( 500 , "GetBlobByPath" , err )
2014-11-17 05:32:26 +03:00
}
return
}
2016-03-14 01:49:16 +03:00
if err = repo . ServeBlob ( ctx . Context , blob ) ; err != nil {
ctx . Error ( 500 , "ServeBlob" , err )
2014-11-17 05:32:26 +03:00
}
}
2015-09-02 16:54:35 +03:00
2015-12-03 08:24:37 +03:00
// https://github.com/gogits/go-gogs-client/wiki/Repositories-Contents#download-archive
2016-03-14 01:49:16 +03:00
func GetArchive ( ctx * context . APIContext ) {
2015-09-02 16:54:35 +03:00
repoPath := models . RepoPath ( ctx . Params ( ":username" ) , ctx . Params ( ":reponame" ) )
gitRepo , err := git . OpenRepository ( repoPath )
if err != nil {
2016-03-14 01:49:16 +03:00
ctx . Error ( 500 , "OpenRepository" , err )
2015-09-02 16:54:35 +03:00
return
}
ctx . Repo . GitRepo = gitRepo
2016-03-14 01:49:16 +03:00
repo . Download ( ctx . Context )
2015-09-02 16:54:35 +03:00
}