mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Allow Protected Branches to Whitelist Deploy Keys (#8483)
Add an option to protected branches to add writing deploy keys to the whitelist for pushing. Please note this is technically a breaking change: previously if the owner of a repository was on the whitelist then any writing deploy key was effectively on the whitelist. This option will now need to be set if that is desired. Closes #8472 Details: * Allow Protected Branches to Whitelist Deploy Keys * Add migration * Ensure that IsDeployKey is set to false on the http pushes * add not null default false
This commit is contained in:
		@@ -33,6 +33,7 @@ func HookPreReceive(ctx *macaron.Context) {
 | 
			
		||||
	gitAlternativeObjectDirectories := ctx.QueryTrim("gitAlternativeObjectDirectories")
 | 
			
		||||
	gitQuarantinePath := ctx.QueryTrim("gitQuarantinePath")
 | 
			
		||||
	prID := ctx.QueryInt64("prID")
 | 
			
		||||
	isDeployKey := ctx.QueryBool("isDeployKey")
 | 
			
		||||
 | 
			
		||||
	branchName := strings.TrimPrefix(refFullName, git.BranchPrefix)
 | 
			
		||||
	repo, err := models.GetRepositoryByOwnerAndName(ownerName, repoName)
 | 
			
		||||
@@ -95,7 +96,12 @@ func HookPreReceive(ctx *macaron.Context) {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		canPush := protectBranch.CanUserPush(userID)
 | 
			
		||||
		canPush := false
 | 
			
		||||
		if isDeployKey {
 | 
			
		||||
			canPush = protectBranch.WhitelistDeployKeys
 | 
			
		||||
		} else {
 | 
			
		||||
			canPush = protectBranch.CanUserPush(userID)
 | 
			
		||||
		}
 | 
			
		||||
		if !canPush && prID > 0 {
 | 
			
		||||
			pr, err := models.GetPullRequestByID(prID)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user