Move pull request api convert to convert package (#9664)
* Move pull request api convert to convert package * Rename ToPullRequest to ToAPIPullRequest
This commit is contained in:
		
							parent
							
								
									8878cfa4a1
								
							
						
					
					
						commit
						384c2b342e
					
				
					 7 changed files with 198 additions and 160 deletions
				
			
		
							
								
								
									
										134
									
								
								models/pull.go
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								models/pull.go
									
									
									
									
									
								
							|  | @ -13,7 +13,6 @@ import ( | ||||||
| 	"code.gitea.io/gitea/modules/git" | 	"code.gitea.io/gitea/modules/git" | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
| 	"code.gitea.io/gitea/modules/setting" | 	"code.gitea.io/gitea/modules/setting" | ||||||
| 	api "code.gitea.io/gitea/modules/structs" |  | ||||||
| 	"code.gitea.io/gitea/modules/timeutil" | 	"code.gitea.io/gitea/modules/timeutil" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | @ -397,139 +396,6 @@ func (pr *PullRequest) GetGitRefName() string { | ||||||
| 	return fmt.Sprintf("refs/pull/%d/head", pr.Index) | 	return fmt.Sprintf("refs/pull/%d/head", pr.Index) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // APIFormat assumes following fields have been assigned with valid values:
 |  | ||||||
| // Required - Issue
 |  | ||||||
| // Optional - Merger
 |  | ||||||
| func (pr *PullRequest) APIFormat() *api.PullRequest { |  | ||||||
| 	return pr.apiFormat(x) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest { |  | ||||||
| 	var ( |  | ||||||
| 		baseBranch *git.Branch |  | ||||||
| 		headBranch *git.Branch |  | ||||||
| 		baseCommit *git.Commit |  | ||||||
| 		headCommit *git.Commit |  | ||||||
| 		err        error |  | ||||||
| 	) |  | ||||||
| 	if err = pr.Issue.loadRepo(e); err != nil { |  | ||||||
| 		log.Error("loadRepo[%d]: %v", pr.ID, err) |  | ||||||
| 		return nil |  | ||||||
| 	} |  | ||||||
| 	apiIssue := pr.Issue.apiFormat(e) |  | ||||||
| 	if pr.BaseRepo == nil { |  | ||||||
| 		pr.BaseRepo, err = getRepositoryByID(e, pr.BaseRepoID) |  | ||||||
| 		if err != nil { |  | ||||||
| 			log.Error("GetRepositoryById[%d]: %v", pr.ID, err) |  | ||||||
| 			return nil |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	if pr.HeadRepo == nil { |  | ||||||
| 		pr.HeadRepo, err = getRepositoryByID(e, pr.HeadRepoID) |  | ||||||
| 		if err != nil { |  | ||||||
| 			log.Error("GetRepositoryById[%d]: %v", pr.ID, err) |  | ||||||
| 			return nil |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if err = pr.Issue.loadRepo(e); err != nil { |  | ||||||
| 		log.Error("pr.Issue.loadRepo[%d]: %v", pr.ID, err) |  | ||||||
| 		return nil |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	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, |  | ||||||
| 		Comments:  apiIssue.Comments, |  | ||||||
| 		HTMLURL:   pr.Issue.HTMLURL(), |  | ||||||
| 		DiffURL:   pr.Issue.DiffURL(), |  | ||||||
| 		PatchURL:  pr.Issue.PatchURL(), |  | ||||||
| 		HasMerged: pr.HasMerged, |  | ||||||
| 		MergeBase: pr.MergeBase, |  | ||||||
| 		Deadline:  apiIssue.Deadline, |  | ||||||
| 		Created:   pr.Issue.CreatedUnix.AsTimePtr(), |  | ||||||
| 		Updated:   pr.Issue.UpdatedUnix.AsTimePtr(), |  | ||||||
| 	} |  | ||||||
| 	baseBranch, err = pr.BaseRepo.GetBranch(pr.BaseBranch) |  | ||||||
| 	if err != nil { |  | ||||||
| 		if git.IsErrBranchNotExist(err) { |  | ||||||
| 			apiPullRequest.Base = nil |  | ||||||
| 		} else { |  | ||||||
| 			log.Error("GetBranch[%s]: %v", pr.BaseBranch, err) |  | ||||||
| 			return nil |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		apiBaseBranchInfo := &api.PRBranchInfo{ |  | ||||||
| 			Name:       pr.BaseBranch, |  | ||||||
| 			Ref:        pr.BaseBranch, |  | ||||||
| 			RepoID:     pr.BaseRepoID, |  | ||||||
| 			Repository: pr.BaseRepo.innerAPIFormat(e, AccessModeNone, false), |  | ||||||
| 		} |  | ||||||
| 		baseCommit, err = baseBranch.GetCommit() |  | ||||||
| 		if err != nil { |  | ||||||
| 			if git.IsErrNotExist(err) { |  | ||||||
| 				apiBaseBranchInfo.Sha = "" |  | ||||||
| 			} else { |  | ||||||
| 				log.Error("GetCommit[%s]: %v", baseBranch.Name, err) |  | ||||||
| 				return nil |  | ||||||
| 			} |  | ||||||
| 		} else { |  | ||||||
| 			apiBaseBranchInfo.Sha = baseCommit.ID.String() |  | ||||||
| 		} |  | ||||||
| 		apiPullRequest.Base = apiBaseBranchInfo |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	headBranch, err = pr.HeadRepo.GetBranch(pr.HeadBranch) |  | ||||||
| 	if err != nil { |  | ||||||
| 		if git.IsErrBranchNotExist(err) { |  | ||||||
| 			apiPullRequest.Head = nil |  | ||||||
| 		} else { |  | ||||||
| 			log.Error("GetBranch[%s]: %v", pr.HeadBranch, err) |  | ||||||
| 			return nil |  | ||||||
| 		} |  | ||||||
| 	} else { |  | ||||||
| 		apiHeadBranchInfo := &api.PRBranchInfo{ |  | ||||||
| 			Name:       pr.HeadBranch, |  | ||||||
| 			Ref:        pr.HeadBranch, |  | ||||||
| 			RepoID:     pr.HeadRepoID, |  | ||||||
| 			Repository: pr.HeadRepo.innerAPIFormat(e, AccessModeNone, false), |  | ||||||
| 		} |  | ||||||
| 		headCommit, err = headBranch.GetCommit() |  | ||||||
| 		if err != nil { |  | ||||||
| 			if git.IsErrNotExist(err) { |  | ||||||
| 				apiHeadBranchInfo.Sha = "" |  | ||||||
| 			} else { |  | ||||||
| 				log.Error("GetCommit[%s]: %v", headBranch.Name, err) |  | ||||||
| 				return nil |  | ||||||
| 			} |  | ||||||
| 		} else { |  | ||||||
| 			apiHeadBranchInfo.Sha = headCommit.ID.String() |  | ||||||
| 		} |  | ||||||
| 		apiPullRequest.Head = apiHeadBranchInfo |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if pr.Status != PullRequestStatusChecking { |  | ||||||
| 		mergeable := !(pr.Status == PullRequestStatusConflict || pr.Status == PullRequestStatusError) && !pr.IsWorkInProgress() |  | ||||||
| 		apiPullRequest.Mergeable = mergeable |  | ||||||
| 	} |  | ||||||
| 	if pr.HasMerged { |  | ||||||
| 		apiPullRequest.Merged = pr.MergedUnix.AsTimePtr() |  | ||||||
| 		apiPullRequest.MergedCommitID = &pr.MergedCommitID |  | ||||||
| 		apiPullRequest.MergedBy = pr.Merger.APIFormat() |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	return apiPullRequest |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func (pr *PullRequest) getHeadRepo(e Engine) (err error) { | func (pr *PullRequest) getHeadRepo(e Engine) (err error) { | ||||||
| 	pr.HeadRepo, err = getRepositoryByID(e, pr.HeadRepoID) | 	pr.HeadRepo, err = getRepositoryByID(e, pr.HeadRepoID) | ||||||
| 	if err != nil && !IsErrRepoNotExist(err) { | 	if err != nil && !IsErrRepoNotExist(err) { | ||||||
|  |  | ||||||
|  | @ -29,16 +29,6 @@ func TestPullRequest_LoadIssue(t *testing.T) { | ||||||
| 	assert.Equal(t, int64(2), pr.Issue.ID) | 	assert.Equal(t, int64(2), pr.Issue.ID) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func TestPullRequest_APIFormat(t *testing.T) { |  | ||||||
| 	assert.NoError(t, PrepareTestDatabase()) |  | ||||||
| 	pr := AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) |  | ||||||
| 	assert.NoError(t, pr.LoadAttributes()) |  | ||||||
| 	assert.NoError(t, pr.LoadIssue()) |  | ||||||
| 	apiPullRequest := pr.APIFormat() |  | ||||||
| 	assert.NotNil(t, apiPullRequest) |  | ||||||
| 	assert.Nil(t, apiPullRequest.Head) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| func TestPullRequest_GetBaseRepo(t *testing.T) { | func TestPullRequest_GetBaseRepo(t *testing.T) { | ||||||
| 	assert.NoError(t, PrepareTestDatabase()) | 	assert.NoError(t, PrepareTestDatabase()) | ||||||
| 	pr := AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) | 	pr := AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								modules/convert/main_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								modules/convert/main_test.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | // Copyright 2020 The Gitea Authors. All rights reserved.
 | ||||||
|  | // Use of this source code is governed by a MIT-style
 | ||||||
|  | // license that can be found in the LICENSE file.
 | ||||||
|  | 
 | ||||||
|  | package convert | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"path/filepath" | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"code.gitea.io/gitea/models" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func TestMain(m *testing.M) { | ||||||
|  | 	models.MainTest(m, filepath.Join("..", "..")) | ||||||
|  | } | ||||||
							
								
								
									
										141
									
								
								modules/convert/pull.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								modules/convert/pull.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,141 @@ | ||||||
|  | // Copyright 2020 The Gitea Authors. All rights reserved.
 | ||||||
|  | // Use of this source code is governed by a MIT-style
 | ||||||
|  | // license that can be found in the LICENSE file.
 | ||||||
|  | 
 | ||||||
|  | package convert | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"code.gitea.io/gitea/models" | ||||||
|  | 	"code.gitea.io/gitea/modules/git" | ||||||
|  | 	"code.gitea.io/gitea/modules/log" | ||||||
|  | 	api "code.gitea.io/gitea/modules/structs" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // ToAPIPullRequest assumes following fields have been assigned with valid values:
 | ||||||
|  | // Required - Issue
 | ||||||
|  | // Optional - Merger
 | ||||||
|  | func ToAPIPullRequest(pr *models.PullRequest) *api.PullRequest { | ||||||
|  | 	var ( | ||||||
|  | 		baseBranch *git.Branch | ||||||
|  | 		headBranch *git.Branch | ||||||
|  | 		baseCommit *git.Commit | ||||||
|  | 		headCommit *git.Commit | ||||||
|  | 		err        error | ||||||
|  | 	) | ||||||
|  | 	if err = pr.Issue.LoadRepo(); err != nil { | ||||||
|  | 		log.Error("loadRepo[%d]: %v", pr.ID, err) | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	apiIssue := pr.Issue.APIFormat() | ||||||
|  | 	if pr.BaseRepo == nil { | ||||||
|  | 		pr.BaseRepo, err = models.GetRepositoryByID(pr.BaseRepoID) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error("GetRepositoryById[%d]: %v", pr.ID, err) | ||||||
|  | 			return nil | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if pr.HeadRepo == nil { | ||||||
|  | 		pr.HeadRepo, err = models.GetRepositoryByID(pr.HeadRepoID) | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Error("GetRepositoryById[%d]: %v", pr.ID, err) | ||||||
|  | 			return nil | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if err = pr.Issue.LoadRepo(); err != nil { | ||||||
|  | 		log.Error("pr.Issue.loadRepo[%d]: %v", pr.ID, err) | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	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, | ||||||
|  | 		Comments:  apiIssue.Comments, | ||||||
|  | 		HTMLURL:   pr.Issue.HTMLURL(), | ||||||
|  | 		DiffURL:   pr.Issue.DiffURL(), | ||||||
|  | 		PatchURL:  pr.Issue.PatchURL(), | ||||||
|  | 		HasMerged: pr.HasMerged, | ||||||
|  | 		MergeBase: pr.MergeBase, | ||||||
|  | 		Deadline:  apiIssue.Deadline, | ||||||
|  | 		Created:   pr.Issue.CreatedUnix.AsTimePtr(), | ||||||
|  | 		Updated:   pr.Issue.UpdatedUnix.AsTimePtr(), | ||||||
|  | 	} | ||||||
|  | 	baseBranch, err = pr.BaseRepo.GetBranch(pr.BaseBranch) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if git.IsErrBranchNotExist(err) { | ||||||
|  | 			apiPullRequest.Base = nil | ||||||
|  | 		} else { | ||||||
|  | 			log.Error("GetBranch[%s]: %v", pr.BaseBranch, err) | ||||||
|  | 			return nil | ||||||
|  | 		} | ||||||
|  | 	} else { | ||||||
|  | 		apiBaseBranchInfo := &api.PRBranchInfo{ | ||||||
|  | 			Name:       pr.BaseBranch, | ||||||
|  | 			Ref:        pr.BaseBranch, | ||||||
|  | 			RepoID:     pr.BaseRepoID, | ||||||
|  | 			Repository: pr.BaseRepo.APIFormat(models.AccessModeNone), | ||||||
|  | 		} | ||||||
|  | 		baseCommit, err = baseBranch.GetCommit() | ||||||
|  | 		if err != nil { | ||||||
|  | 			if git.IsErrNotExist(err) { | ||||||
|  | 				apiBaseBranchInfo.Sha = "" | ||||||
|  | 			} else { | ||||||
|  | 				log.Error("GetCommit[%s]: %v", baseBranch.Name, err) | ||||||
|  | 				return nil | ||||||
|  | 			} | ||||||
|  | 		} else { | ||||||
|  | 			apiBaseBranchInfo.Sha = baseCommit.ID.String() | ||||||
|  | 		} | ||||||
|  | 		apiPullRequest.Base = apiBaseBranchInfo | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	headBranch, err = pr.HeadRepo.GetBranch(pr.HeadBranch) | ||||||
|  | 	if err != nil { | ||||||
|  | 		if git.IsErrBranchNotExist(err) { | ||||||
|  | 			apiPullRequest.Head = nil | ||||||
|  | 		} else { | ||||||
|  | 			log.Error("GetBranch[%s]: %v", pr.HeadBranch, err) | ||||||
|  | 			return nil | ||||||
|  | 		} | ||||||
|  | 	} else { | ||||||
|  | 		apiHeadBranchInfo := &api.PRBranchInfo{ | ||||||
|  | 			Name:       pr.HeadBranch, | ||||||
|  | 			Ref:        pr.HeadBranch, | ||||||
|  | 			RepoID:     pr.HeadRepoID, | ||||||
|  | 			Repository: pr.HeadRepo.APIFormat(models.AccessModeNone), | ||||||
|  | 		} | ||||||
|  | 		headCommit, err = headBranch.GetCommit() | ||||||
|  | 		if err != nil { | ||||||
|  | 			if git.IsErrNotExist(err) { | ||||||
|  | 				apiHeadBranchInfo.Sha = "" | ||||||
|  | 			} else { | ||||||
|  | 				log.Error("GetCommit[%s]: %v", headBranch.Name, err) | ||||||
|  | 				return nil | ||||||
|  | 			} | ||||||
|  | 		} else { | ||||||
|  | 			apiHeadBranchInfo.Sha = headCommit.ID.String() | ||||||
|  | 		} | ||||||
|  | 		apiPullRequest.Head = apiHeadBranchInfo | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	if pr.Status != models.PullRequestStatusChecking { | ||||||
|  | 		mergeable := !(pr.Status == models.PullRequestStatusConflict || pr.Status == models.PullRequestStatusError) && !pr.IsWorkInProgress() | ||||||
|  | 		apiPullRequest.Mergeable = mergeable | ||||||
|  | 	} | ||||||
|  | 	if pr.HasMerged { | ||||||
|  | 		apiPullRequest.Merged = pr.MergedUnix.AsTimePtr() | ||||||
|  | 		apiPullRequest.MergedCommitID = &pr.MergedCommitID | ||||||
|  | 		apiPullRequest.MergedBy = pr.Merger.APIFormat() | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return apiPullRequest | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								modules/convert/pull_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/convert/pull_test.go
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | ||||||
|  | // Copyright 2020 The Gitea Authors. All rights reserved.
 | ||||||
|  | // Use of this source code is governed by a MIT-style
 | ||||||
|  | // license that can be found in the LICENSE file.
 | ||||||
|  | 
 | ||||||
|  | package convert | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"testing" | ||||||
|  | 
 | ||||||
|  | 	"code.gitea.io/gitea/models" | ||||||
|  | 
 | ||||||
|  | 	"github.com/stretchr/testify/assert" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | func TestPullRequest_APIFormat(t *testing.T) { | ||||||
|  | 	assert.NoError(t, models.PrepareTestDatabase()) | ||||||
|  | 	pr := models.AssertExistsAndLoadBean(t, &models.PullRequest{ID: 1}).(*models.PullRequest) | ||||||
|  | 	assert.NoError(t, pr.LoadAttributes()) | ||||||
|  | 	assert.NoError(t, pr.LoadIssue()) | ||||||
|  | 	apiPullRequest := ToAPIPullRequest(pr) | ||||||
|  | 	assert.NotNil(t, apiPullRequest) | ||||||
|  | 	assert.Nil(t, apiPullRequest.Head) | ||||||
|  | } | ||||||
|  | @ -6,6 +6,7 @@ package webhook | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"code.gitea.io/gitea/models" | 	"code.gitea.io/gitea/models" | ||||||
|  | 	"code.gitea.io/gitea/modules/convert" | ||||||
| 	"code.gitea.io/gitea/modules/git" | 	"code.gitea.io/gitea/modules/git" | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
| 	"code.gitea.io/gitea/modules/notification/base" | 	"code.gitea.io/gitea/modules/notification/base" | ||||||
|  | @ -49,7 +50,7 @@ func (m *webhookNotifier) NotifyIssueClearLabels(doer *models.User, issue *model | ||||||
| 		err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | 		err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | ||||||
| 			Action:      api.HookIssueLabelCleared, | 			Action:      api.HookIssueLabelCleared, | ||||||
| 			Index:       issue.Index, | 			Index:       issue.Index, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(mode), | 			Repository:  issue.Repo.APIFormat(mode), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		}) | 		}) | ||||||
|  | @ -135,7 +136,7 @@ func (m *webhookNotifier) NotifyIssueChangeAssignee(doer *models.User, issue *mo | ||||||
| 		issue.PullRequest.Issue = issue | 		issue.PullRequest.Issue = issue | ||||||
| 		apiPullRequest := &api.PullRequestPayload{ | 		apiPullRequest := &api.PullRequestPayload{ | ||||||
| 			Index:       issue.Index, | 			Index:       issue.Index, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(mode), | 			Repository:  issue.Repo.APIFormat(mode), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		} | 		} | ||||||
|  | @ -187,7 +188,7 @@ func (m *webhookNotifier) NotifyIssueChangeTitle(doer *models.User, issue *model | ||||||
| 					From: oldTitle, | 					From: oldTitle, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(mode), | 			Repository:  issue.Repo.APIFormat(mode), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		}) | 		}) | ||||||
|  | @ -222,7 +223,7 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(doer *models.User, issue *mode | ||||||
| 		// Merge pull request calls issue.changeStatus so we need to handle separately.
 | 		// Merge pull request calls issue.changeStatus so we need to handle separately.
 | ||||||
| 		apiPullRequest := &api.PullRequestPayload{ | 		apiPullRequest := &api.PullRequestPayload{ | ||||||
| 			Index:       issue.Index, | 			Index:       issue.Index, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(mode), | 			Repository:  issue.Repo.APIFormat(mode), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		} | 		} | ||||||
|  | @ -291,7 +292,7 @@ func (m *webhookNotifier) NotifyNewPullRequest(pull *models.PullRequest) { | ||||||
| 	if err := webhook_module.PrepareWebhooks(pull.Issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | 	if err := webhook_module.PrepareWebhooks(pull.Issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | ||||||
| 		Action:      api.HookIssueOpened, | 		Action:      api.HookIssueOpened, | ||||||
| 		Index:       pull.Issue.Index, | 		Index:       pull.Issue.Index, | ||||||
| 		PullRequest: pull.APIFormat(), | 		PullRequest: convert.ToAPIPullRequest(pull), | ||||||
| 		Repository:  pull.Issue.Repo.APIFormat(mode), | 		Repository:  pull.Issue.Repo.APIFormat(mode), | ||||||
| 		Sender:      pull.Issue.Poster.APIFormat(), | 		Sender:      pull.Issue.Poster.APIFormat(), | ||||||
| 	}); err != nil { | 	}); err != nil { | ||||||
|  | @ -312,7 +313,7 @@ func (m *webhookNotifier) NotifyIssueChangeContent(doer *models.User, issue *mod | ||||||
| 					From: oldContent, | 					From: oldContent, | ||||||
| 				}, | 				}, | ||||||
| 			}, | 			}, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(mode), | 			Repository:  issue.Repo.APIFormat(mode), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		}) | 		}) | ||||||
|  | @ -439,7 +440,7 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(doer *models.User, issue *mode | ||||||
| 		err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | 		err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | ||||||
| 			Action:      api.HookIssueLabelUpdated, | 			Action:      api.HookIssueLabelUpdated, | ||||||
| 			Index:       issue.Index, | 			Index:       issue.Index, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(models.AccessModeNone), | 			Repository:  issue.Repo.APIFormat(models.AccessModeNone), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		}) | 		}) | ||||||
|  | @ -481,7 +482,7 @@ func (m *webhookNotifier) NotifyIssueChangeMilestone(doer *models.User, issue *m | ||||||
| 		err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | 		err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | ||||||
| 			Action:      hookAction, | 			Action:      hookAction, | ||||||
| 			Index:       issue.Index, | 			Index:       issue.Index, | ||||||
| 			PullRequest: issue.PullRequest.APIFormat(), | 			PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 			Repository:  issue.Repo.APIFormat(mode), | 			Repository:  issue.Repo.APIFormat(mode), | ||||||
| 			Sender:      doer.APIFormat(), | 			Sender:      doer.APIFormat(), | ||||||
| 		}) | 		}) | ||||||
|  | @ -547,7 +548,7 @@ func (*webhookNotifier) NotifyMergePullRequest(pr *models.PullRequest, doer *mod | ||||||
| 	// Merge pull request calls issue.changeStatus so we need to handle separately.
 | 	// Merge pull request calls issue.changeStatus so we need to handle separately.
 | ||||||
| 	apiPullRequest := &api.PullRequestPayload{ | 	apiPullRequest := &api.PullRequestPayload{ | ||||||
| 		Index:       pr.Issue.Index, | 		Index:       pr.Issue.Index, | ||||||
| 		PullRequest: pr.APIFormat(), | 		PullRequest: convert.ToAPIPullRequest(pr), | ||||||
| 		Repository:  pr.Issue.Repo.APIFormat(mode), | 		Repository:  pr.Issue.Repo.APIFormat(mode), | ||||||
| 		Sender:      doer.APIFormat(), | 		Sender:      doer.APIFormat(), | ||||||
| 		Action:      api.HookIssueClosed, | 		Action:      api.HookIssueClosed, | ||||||
|  | @ -580,7 +581,7 @@ func (m *webhookNotifier) NotifyPullRequestChangeTargetBranch(doer *models.User, | ||||||
| 				From: oldBranch, | 				From: oldBranch, | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
| 		PullRequest: issue.PullRequest.APIFormat(), | 		PullRequest: convert.ToAPIPullRequest(issue.PullRequest), | ||||||
| 		Repository:  issue.Repo.APIFormat(mode), | 		Repository:  issue.Repo.APIFormat(mode), | ||||||
| 		Sender:      doer.APIFormat(), | 		Sender:      doer.APIFormat(), | ||||||
| 	}) | 	}) | ||||||
|  | @ -619,7 +620,7 @@ func (m *webhookNotifier) NotifyPullRequestReview(pr *models.PullRequest, review | ||||||
| 	if err := webhook_module.PrepareWebhooks(review.Issue.Repo, reviewHookType, &api.PullRequestPayload{ | 	if err := webhook_module.PrepareWebhooks(review.Issue.Repo, reviewHookType, &api.PullRequestPayload{ | ||||||
| 		Action:      api.HookIssueSynchronized, | 		Action:      api.HookIssueSynchronized, | ||||||
| 		Index:       review.Issue.Index, | 		Index:       review.Issue.Index, | ||||||
| 		PullRequest: pr.APIFormat(), | 		PullRequest: convert.ToAPIPullRequest(pr), | ||||||
| 		Repository:  review.Issue.Repo.APIFormat(mode), | 		Repository:  review.Issue.Repo.APIFormat(mode), | ||||||
| 		Sender:      review.Reviewer.APIFormat(), | 		Sender:      review.Reviewer.APIFormat(), | ||||||
| 		Review: &api.ReviewPayload{ | 		Review: &api.ReviewPayload{ | ||||||
|  | @ -674,7 +675,7 @@ func (m *webhookNotifier) NotifyPullRequestSynchronized(doer *models.User, pr *m | ||||||
| 	if err := webhook_module.PrepareWebhooks(pr.Issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | 	if err := webhook_module.PrepareWebhooks(pr.Issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ | ||||||
| 		Action:      api.HookIssueSynchronized, | 		Action:      api.HookIssueSynchronized, | ||||||
| 		Index:       pr.Issue.Index, | 		Index:       pr.Issue.Index, | ||||||
| 		PullRequest: pr.Issue.PullRequest.APIFormat(), | 		PullRequest: convert.ToAPIPullRequest(pr), | ||||||
| 		Repository:  pr.Issue.Repo.APIFormat(models.AccessModeNone), | 		Repository:  pr.Issue.Repo.APIFormat(models.AccessModeNone), | ||||||
| 		Sender:      doer.APIFormat(), | 		Sender:      doer.APIFormat(), | ||||||
| 	}); err != nil { | 	}); err != nil { | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ import ( | ||||||
| 	"code.gitea.io/gitea/models" | 	"code.gitea.io/gitea/models" | ||||||
| 	"code.gitea.io/gitea/modules/auth" | 	"code.gitea.io/gitea/modules/auth" | ||||||
| 	"code.gitea.io/gitea/modules/context" | 	"code.gitea.io/gitea/modules/context" | ||||||
|  | 	"code.gitea.io/gitea/modules/convert" | ||||||
| 	"code.gitea.io/gitea/modules/git" | 	"code.gitea.io/gitea/modules/git" | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
| 	"code.gitea.io/gitea/modules/notification" | 	"code.gitea.io/gitea/modules/notification" | ||||||
|  | @ -102,7 +103,7 @@ func ListPullRequests(ctx *context.APIContext, form api.ListPullRequestsOptions) | ||||||
| 			ctx.Error(http.StatusInternalServerError, "GetHeadRepo", err) | 			ctx.Error(http.StatusInternalServerError, "GetHeadRepo", err) | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		apiPrs[i] = prs[i].APIFormat() | 		apiPrs[i] = convert.ToAPIPullRequest(prs[i]) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	ctx.SetLinkHeader(int(maxResults), models.ItemsPerPage) | 	ctx.SetLinkHeader(int(maxResults), models.ItemsPerPage) | ||||||
|  | @ -157,7 +158,7 @@ func GetPullRequest(ctx *context.APIContext) { | ||||||
| 		ctx.Error(http.StatusInternalServerError, "GetHeadRepo", err) | 		ctx.Error(http.StatusInternalServerError, "GetHeadRepo", err) | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	ctx.JSON(http.StatusOK, pr.APIFormat()) | 	ctx.JSON(http.StatusOK, convert.ToAPIPullRequest(pr)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // CreatePullRequest does what it says
 | // CreatePullRequest does what it says
 | ||||||
|  | @ -321,7 +322,7 @@ func CreatePullRequest(ctx *context.APIContext, form api.CreatePullRequestOption | ||||||
| 	notification.NotifyNewPullRequest(pr) | 	notification.NotifyNewPullRequest(pr) | ||||||
| 
 | 
 | ||||||
| 	log.Trace("Pull request created: %d/%d", repo.ID, prIssue.ID) | 	log.Trace("Pull request created: %d/%d", repo.ID, prIssue.ID) | ||||||
| 	ctx.JSON(http.StatusCreated, pr.APIFormat()) | 	ctx.JSON(http.StatusCreated, convert.ToAPIPullRequest(pr)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // EditPullRequest does what it says
 | // EditPullRequest does what it says
 | ||||||
|  | @ -479,7 +480,7 @@ func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// TODO this should be 200, not 201
 | 	// TODO this should be 200, not 201
 | ||||||
| 	ctx.JSON(http.StatusCreated, pr.APIFormat()) | 	ctx.JSON(http.StatusCreated, convert.ToAPIPullRequest(pr)) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // IsPullRequestMerged checks if a PR exists given an index
 | // IsPullRequestMerged checks if a PR exists given an index
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue