mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	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.
21229ed2c8/routers/web/repo/pull.go (L653-L663)
			
			
This commit is contained in:
		| @@ -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 | ||||
| 				} | ||||
| 			} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user