mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-29 18:38:28 +00:00 
			
		
		
		
	Make gitea webhooks openproject compatible (#28435)
This PR adds some fields to the gitea webhook payload that [openproject](https://www.openproject.org/) expects to exists in order to process the webhooks. These fields do exists in Github's webhook payload so adding them makes Gitea's native webhook more compatible towards Github's.
This commit is contained in:
		
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							2ced31e81d
						
					
				
				
					commit
					14f6105ce0
				
			| @@ -51,29 +51,31 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u | ||||
| 	} | ||||
|  | ||||
| 	apiPullRequest := &api.PullRequest{ | ||||
| 		ID:        pr.ID, | ||||
| 		URL:       pr.Issue.HTMLURL(), | ||||
| 		Index:     pr.Index, | ||||
| 		Poster:    apiIssue.Poster, | ||||
| 		Title:     apiIssue.Title, | ||||
| 		Body:      apiIssue.Body, | ||||
| 		Labels:    apiIssue.Labels, | ||||
| 		Milestone: apiIssue.Milestone, | ||||
| 		Assignee:  apiIssue.Assignee, | ||||
| 		Assignees: apiIssue.Assignees, | ||||
| 		State:     apiIssue.State, | ||||
| 		IsLocked:  apiIssue.IsLocked, | ||||
| 		Comments:  apiIssue.Comments, | ||||
| 		HTMLURL:   pr.Issue.HTMLURL(), | ||||
| 		DiffURL:   pr.Issue.DiffURL(), | ||||
| 		PatchURL:  pr.Issue.PatchURL(), | ||||
| 		HasMerged: pr.HasMerged, | ||||
| 		MergeBase: pr.MergeBase, | ||||
| 		Mergeable: pr.Mergeable(ctx), | ||||
| 		Deadline:  apiIssue.Deadline, | ||||
| 		Created:   pr.Issue.CreatedUnix.AsTimePtr(), | ||||
| 		Updated:   pr.Issue.UpdatedUnix.AsTimePtr(), | ||||
| 		PinOrder:  apiIssue.PinOrder, | ||||
| 		ID:             pr.ID, | ||||
| 		URL:            pr.Issue.HTMLURL(), | ||||
| 		Index:          pr.Index, | ||||
| 		Poster:         apiIssue.Poster, | ||||
| 		Title:          apiIssue.Title, | ||||
| 		Body:           apiIssue.Body, | ||||
| 		Labels:         apiIssue.Labels, | ||||
| 		Milestone:      apiIssue.Milestone, | ||||
| 		Assignee:       apiIssue.Assignee, | ||||
| 		Assignees:      apiIssue.Assignees, | ||||
| 		State:          apiIssue.State, | ||||
| 		Draft:          pr.IsWorkInProgress(ctx), | ||||
| 		IsLocked:       apiIssue.IsLocked, | ||||
| 		Comments:       apiIssue.Comments, | ||||
| 		ReviewComments: pr.GetReviewCommentsCount(ctx), | ||||
| 		HTMLURL:        pr.Issue.HTMLURL(), | ||||
| 		DiffURL:        pr.Issue.DiffURL(), | ||||
| 		PatchURL:       pr.Issue.PatchURL(), | ||||
| 		HasMerged:      pr.HasMerged, | ||||
| 		MergeBase:      pr.MergeBase, | ||||
| 		Mergeable:      pr.Mergeable(ctx), | ||||
| 		Deadline:       apiIssue.Deadline, | ||||
| 		Created:        pr.Issue.CreatedUnix.AsTimePtr(), | ||||
| 		Updated:        pr.Issue.UpdatedUnix.AsTimePtr(), | ||||
| 		PinOrder:       apiIssue.PinOrder, | ||||
|  | ||||
| 		AllowMaintainerEdit: pr.AllowMaintainerEdit, | ||||
|  | ||||
| @@ -168,6 +170,12 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u | ||||
| 			return nil | ||||
| 		} | ||||
|  | ||||
| 		// Outer scope variables to be used in diff calculation | ||||
| 		var ( | ||||
| 			startCommitID string | ||||
| 			endCommitID   string | ||||
| 		) | ||||
|  | ||||
| 		if git.IsErrBranchNotExist(err) { | ||||
| 			headCommitID, err := headGitRepo.GetRefCommitID(apiPullRequest.Head.Ref) | ||||
| 			if err != nil && !git.IsErrNotExist(err) { | ||||
| @@ -176,6 +184,7 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u | ||||
| 			} | ||||
| 			if err == nil { | ||||
| 				apiPullRequest.Head.Sha = headCommitID | ||||
| 				endCommitID = headCommitID | ||||
| 			} | ||||
| 		} else { | ||||
| 			commit, err := headBranch.GetCommit() | ||||
| @@ -186,8 +195,17 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u | ||||
| 			if err == nil { | ||||
| 				apiPullRequest.Head.Ref = pr.HeadBranch | ||||
| 				apiPullRequest.Head.Sha = commit.ID.String() | ||||
| 				endCommitID = commit.ID.String() | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		// Calculate diff | ||||
| 		startCommitID = pr.MergeBase | ||||
|  | ||||
| 		apiPullRequest.ChangedFiles, apiPullRequest.Additions, apiPullRequest.Deletions, err = gitRepo.GetDiffShortStat(startCommitID, endCommitID) | ||||
| 		if err != nil { | ||||
| 			log.Error("GetDiffShortStat: %v", err) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if len(apiPullRequest.Head.Sha) == 0 && len(apiPullRequest.Head.Ref) != 0 { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user