aboutsummaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorZettat123 <zettat123@gmail.com>2023-12-22 21:29:50 +0800
committerGitHub <noreply@github.com>2023-12-22 13:29:50 +0000
commit907c97aabbe6fdfa5669ef2b2978f2d217cf0210 (patch)
tree02116b3ef055973c5f820689874dce83305baba6 /routers
parent19869d1c11462294c828bc126bf006103239e397 (diff)
downloadgitea-907c97aabbe6fdfa5669ef2b2978f2d217cf0210.tar.gz
gitea-907c97aabbe6fdfa5669ef2b2978f2d217cf0210.zip
Fix `status_check_contexts` matching bug (#28582)
Fix #28570 Follow #24633 --- Copied from https://github.com/go-gitea/gitea/issues/28570#issuecomment-1867327999 The feature introduced in #24633 should be compatible with `status_check_contexts`. However, if one or more of `status_check_contexts` is not a legal glob expressions, `glob.Compile` will fail and the contexts cannot match. https://github.com/go-gitea/gitea/blob/21229ed2c8ed00f57100adf9ebc5f4a08da9a66e/routers/web/repo/pull.go#L653-L663
Diffstat (limited to 'routers')
-rw-r--r--routers/web/repo/pull.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go
index ec109ed665..39f9cefa5c 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -653,7 +653,15 @@ func PrepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
if pb != nil && pb.EnableStatusCheck {
ctx.Data["is_context_required"] = func(context string) bool {
for _, c := range pb.StatusCheckContexts {
- if gp, err := glob.Compile(c); err == nil && gp.Match(context) {
+ if c == context {
+ return true
+ }
+ if gp, err := glob.Compile(c); err != nil {
+ // All newly created status_check_contexts are checked to ensure they are valid glob expressions before being stored in the database.
+ // But some old status_check_context created before glob was introduced may be invalid glob expressions.
+ // So log the error here for debugging.
+ log.Error("compile glob %q: %v", c, err)
+ } else if gp.Match(context) {
return true
}
}