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 (
2016-11-06 16:18:34 +03:00
"github.com/go-gitea/git"
2015-12-10 04:46:05 +03:00
2016-11-03 15:29:56 +03:00
"github.com/go-gitea/gitea/models"
"github.com/go-gitea/gitea/modules/context"
"github.com/go-gitea/gitea/routers/repo"
2014-11-17 05:32:26 +03:00
)
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
}
2016-08-31 02:18:40 +03:00
func GetEditorconfig ( ctx * context . APIContext ) {
ec , err := ctx . Repo . GetEditorconfig ( )
if err != nil {
if git . IsErrNotExist ( err ) {
ctx . Error ( 404 , "GetEditorconfig" , err )
} else {
ctx . Error ( 500 , "GetEditorconfig" , err )
}
return
}
fileName := ctx . Params ( "filename" )
def := ec . GetDefinitionForFilename ( fileName )
if def == nil {
ctx . Error ( 404 , "GetDefinitionForFilename" , err )
return
}
ctx . JSON ( 200 , def )
}