aboutsummaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authorAndrey Nering <andrey.nering@gmail.com>2016-11-03 20:45:16 -0200
committerAndrey Nering <andrey.nering@gmail.com>2016-11-05 13:33:41 -0200
commit984fa8d83b403baf1b72ec0e9e98a6c700aabf9d (patch)
tree9e46493bae6874cd90f55c1a2b45bc72b1aa1484 /routers/repo
parentab12596143be6e8c587eda1ffe1a621bf69282bd (diff)
downloadgitea-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.go6
-rw-r--r--routers/repo/middlewares.go23
-rw-r--r--routers/repo/pull.go12
-rw-r--r--routers/repo/view.go6
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)