diff options
author | Andrey Nering <andrey.nering@gmail.com> | 2016-11-03 20:45:16 -0200 |
---|---|---|
committer | Andrey Nering <andrey.nering@gmail.com> | 2016-11-05 13:33:41 -0200 |
commit | 984fa8d83b403baf1b72ec0e9e98a6c700aabf9d (patch) | |
tree | 9e46493bae6874cd90f55c1a2b45bc72b1aa1484 /routers/repo | |
parent | ab12596143be6e8c587eda1ffe1a621bf69282bd (diff) | |
download | gitea-984fa8d83b403baf1b72ec0e9e98a6c700aabf9d.tar.gz gitea-984fa8d83b403baf1b72ec0e9e98a6c700aabf9d.zip |
Fix 500 when repo has invalid .editorconfig
Creating a notice instead
Diffstat (limited to 'routers/repo')
-rw-r--r-- | routers/repo/commit.go | 6 | ||||
-rw-r--r-- | routers/repo/middlewares.go | 23 | ||||
-rw-r--r-- | routers/repo/pull.go | 12 | ||||
-rw-r--r-- | routers/repo/view.go | 6 |
4 files changed, 31 insertions, 16 deletions
diff --git a/routers/repo/commit.go b/routers/repo/commit.go index a8e96f0e5e..4a4d4b1231 100644 --- a/routers/repo/commit.go +++ b/routers/repo/commit.go @@ -179,12 +179,10 @@ func Diff(ctx *context.Context) { } } - ec, err := ctx.Repo.GetEditorconfig() - if err != nil && !git.IsErrNotExist(err) { - ctx.Handle(500, "ErrGettingEditorconfig", err) + setEditorconfigIfExists(ctx) + if ctx.Written() { return } - ctx.Data["Editorconfig"] = ec ctx.Data["CommitID"] = commitID ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split" diff --git a/routers/repo/middlewares.go b/routers/repo/middlewares.go new file mode 100644 index 0000000000..f025765cb9 --- /dev/null +++ b/routers/repo/middlewares.go @@ -0,0 +1,23 @@ +package repo + +import ( + "fmt" + + "github.com/go-gitea/gitea/models" + "github.com/go-gitea/gitea/modules/context" + "github.com/gogits/git-module" +) + +func setEditorconfigIfExists(ctx *context.Context) { + ec, err := ctx.Repo.GetEditorconfig() + + if err != nil && !git.IsErrNotExist(err) { + description := fmt.Sprintf("Error while getting .editorconfig file: %v", err) + if err := models.CreateRepositoryNotice(description); err != nil { + ctx.Handle(500, "ErrCreatingReporitoryNotice", err) + } + return + } + + ctx.Data["Editorconfig"] = ec +} diff --git a/routers/repo/pull.go b/routers/repo/pull.go index baa8c1d0b5..6dbb2b6025 100644 --- a/routers/repo/pull.go +++ b/routers/repo/pull.go @@ -368,12 +368,10 @@ func ViewPullFiles(ctx *context.Context) { return } - ec, err := ctx.Repo.GetEditorconfig() - if err != nil && !git.IsErrNotExist(err) { - ctx.Handle(500, "ErrGettingEditorconfig", err) + setEditorconfigIfExists(ctx) + if ctx.Written() { return } - ctx.Data["Editorconfig"] = ec headTarget := path.Join(pull.HeadUserName, pull.HeadRepo.Name) ctx.Data["IsSplitStyle"] = ctx.Query("style") == "split" @@ -627,12 +625,10 @@ func CompareAndPullRequest(ctx *context.Context) { } } - ec, err := ctx.Repo.GetEditorconfig() - if err != nil && !git.IsErrNotExist(err) { - ctx.Handle(500, "ErrGettingEditorconfig", err) + setEditorconfigIfExists(ctx) + if ctx.Written() { return } - ctx.Data["Editorconfig"] = ec ctx.HTML(200, COMPARE_PULL) } diff --git a/routers/repo/view.go b/routers/repo/view.go index 3bb551f2e0..ee49d4da15 100644 --- a/routers/repo/view.go +++ b/routers/repo/view.go @@ -245,12 +245,10 @@ func Home(ctx *context.Context) { return } - ec, err := ctx.Repo.GetEditorconfig() - if err != nil && !git.IsErrNotExist(err) { - ctx.Handle(500, "Repo.GetEditorconfig", err) + setEditorconfigIfExists(ctx) + if ctx.Written() { return } - ctx.Data["Editorconfig"] = ec var treeNames []string paths := make([]string, 0, 5) |