Attempt to fix hook problem (#7854)
This commit is contained in:
		
							parent
							
								
									7eed11e5e9
								
							
						
					
					
						commit
						def84840db
					
				
					 3 changed files with 18 additions and 6 deletions
				
			
		|  | @ -96,6 +96,7 @@ func runHookPreReceive(c *cli.Context) error { | |||
| 				UserID:                          userID, | ||||
| 				GitAlternativeObjectDirectories: os.Getenv(private.GitAlternativeObjectDirectories), | ||||
| 				GitObjectDirectory:              os.Getenv(private.GitObjectDirectory), | ||||
| 				GitQuarantinePath:               os.Getenv(private.GitQuarantinePath), | ||||
| 				ProtectedBranchID:               prID, | ||||
| 			}) | ||||
| 			switch statusCode { | ||||
|  |  | |||
|  | @ -29,12 +29,13 @@ type HookOptions struct { | |||
| 	UserName                        string | ||||
| 	GitObjectDirectory              string | ||||
| 	GitAlternativeObjectDirectories string | ||||
| 	GitQuarantinePath               string | ||||
| 	ProtectedBranchID               int64 | ||||
| } | ||||
| 
 | ||||
| // HookPreReceive check whether the provided commits are allowed
 | ||||
| func HookPreReceive(ownerName, repoName string, opts HookOptions) (int, string) { | ||||
| 	reqURL := setting.LocalURL + fmt.Sprintf("api/internal/hook/pre-receive/%s/%s?old=%s&new=%s&ref=%s&userID=%d&gitObjectDirectory=%s&gitAlternativeObjectDirectories=%s&prID=%d", | ||||
| 	reqURL := setting.LocalURL + fmt.Sprintf("api/internal/hook/pre-receive/%s/%s?old=%s&new=%s&ref=%s&userID=%d&gitObjectDirectory=%s&gitAlternativeObjectDirectories=%s&gitQuarantinePath=%s&prID=%d", | ||||
| 		url.PathEscape(ownerName), | ||||
| 		url.PathEscape(repoName), | ||||
| 		url.QueryEscape(opts.OldCommitID), | ||||
|  | @ -43,6 +44,7 @@ func HookPreReceive(ownerName, repoName string, opts HookOptions) (int, string) | |||
| 		opts.UserID, | ||||
| 		url.QueryEscape(opts.GitObjectDirectory), | ||||
| 		url.QueryEscape(opts.GitAlternativeObjectDirectories), | ||||
| 		url.QueryEscape(opts.GitQuarantinePath), | ||||
| 		opts.ProtectedBranchID, | ||||
| 	) | ||||
| 
 | ||||
|  |  | |||
|  | @ -31,6 +31,7 @@ func HookPreReceive(ctx *macaron.Context) { | |||
| 	userID := ctx.QueryInt64("userID") | ||||
| 	gitObjectDirectory := ctx.QueryTrim("gitObjectDirectory") | ||||
| 	gitAlternativeObjectDirectories := ctx.QueryTrim("gitAlternativeObjectDirectories") | ||||
| 	gitQuarantinePath := ctx.QueryTrim("gitQuarantinePath") | ||||
| 	prID := ctx.QueryInt64("prID") | ||||
| 
 | ||||
| 	branchName := strings.TrimPrefix(refFullName, git.BranchPrefix) | ||||
|  | @ -63,11 +64,19 @@ func HookPreReceive(ctx *macaron.Context) { | |||
| 
 | ||||
| 		// detect force push
 | ||||
| 		if git.EmptySHA != oldCommitID { | ||||
| 			env := append(os.Environ(), | ||||
| 				private.GitAlternativeObjectDirectories+"="+gitAlternativeObjectDirectories, | ||||
| 				private.GitObjectDirectory+"="+gitObjectDirectory, | ||||
| 				private.GitQuarantinePath+"="+gitObjectDirectory, | ||||
| 			) | ||||
| 			env := os.Environ() | ||||
| 			if gitAlternativeObjectDirectories != "" { | ||||
| 				env = append(env, | ||||
| 					private.GitAlternativeObjectDirectories+"="+gitAlternativeObjectDirectories) | ||||
| 			} | ||||
| 			if gitObjectDirectory != "" { | ||||
| 				env = append(env, | ||||
| 					private.GitObjectDirectory+"="+gitObjectDirectory) | ||||
| 			} | ||||
| 			if gitQuarantinePath != "" { | ||||
| 				env = append(env, | ||||
| 					private.GitQuarantinePath+"="+gitQuarantinePath) | ||||
| 			} | ||||
| 
 | ||||
| 			output, err := git.NewCommand("rev-list", "--max-count=1", oldCommitID, "^"+newCommitID).RunInDirWithEnv(repo.RepoPath(), env) | ||||
| 			if err != nil { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue