mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Prevent merge of outdated PRs on protected branches (#11012)
* Block PR on Outdated Branch * finalize * cleanup * fix typo and sentences thanks @guillep2k Co-Authored-By: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		@@ -47,6 +47,7 @@ type ProtectedBranch struct {
 | 
			
		||||
	ApprovalsWhitelistTeamIDs []int64  `xorm:"JSON TEXT"`
 | 
			
		||||
	RequiredApprovals         int64    `xorm:"NOT NULL DEFAULT 0"`
 | 
			
		||||
	BlockOnRejectedReviews    bool     `xorm:"NOT NULL DEFAULT false"`
 | 
			
		||||
	BlockOnOutdatedBranch     bool     `xorm:"NOT NULL DEFAULT false"`
 | 
			
		||||
	DismissStaleApprovals     bool     `xorm:"NOT NULL DEFAULT false"`
 | 
			
		||||
	RequireSignedCommits      bool     `xorm:"NOT NULL DEFAULT false"`
 | 
			
		||||
	ProtectedFilePatterns     string   `xorm:"TEXT"`
 | 
			
		||||
@@ -194,6 +195,11 @@ func (protectBranch *ProtectedBranch) MergeBlockedByRejectedReview(pr *PullReque
 | 
			
		||||
	return rejectExist
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MergeBlockedByOutdatedBranch returns true if merge is blocked by an outdated head branch
 | 
			
		||||
func (protectBranch *ProtectedBranch) MergeBlockedByOutdatedBranch(pr *PullRequest) bool {
 | 
			
		||||
	return protectBranch.BlockOnOutdatedBranch && pr.CommitsBehind > 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetProtectedFilePatterns parses a semicolon separated list of protected file patterns and returns a glob.Glob slice
 | 
			
		||||
func (protectBranch *ProtectedBranch) GetProtectedFilePatterns() []glob.Glob {
 | 
			
		||||
	extarr := make([]glob.Glob, 0, 10)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user