Skip to content

Commit a956456

Browse files
committed
refactor setmerge parameters
1 parent 11e634e commit a956456

File tree

3 files changed

+15
-28
lines changed

3 files changed

+15
-28
lines changed

routers/private/hook_post_receive.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
"code.gitea.io/gitea/modules/private"
2121
repo_module "code.gitea.io/gitea/modules/repository"
2222
"code.gitea.io/gitea/modules/setting"
23-
timeutil "code.gitea.io/gitea/modules/timeutil"
23+
"code.gitea.io/gitea/modules/timeutil"
2424
"code.gitea.io/gitea/modules/util"
2525
"code.gitea.io/gitea/modules/web"
2626
gitea_context "code.gitea.io/gitea/services/context"
@@ -357,13 +357,7 @@ func handlePullRequestMerging(ctx *gitea_context.PrivateContext, opts *private.H
357357
return
358358
}
359359

360-
pr.MergedCommitID = updates[len(updates)-1].NewCommitID
361-
pr.MergedUnix = timeutil.TimeStampNow()
362-
pr.Merger = pusher
363-
pr.MergerID = pusher.ID
364-
// reset the conflicted files as there cannot be any if we're merged
365-
pr.ConflictedFiles = []string{}
366-
if _, err := pull_service.SetMerged(ctx, pr); err != nil {
360+
if _, err := pull_service.SetMerged(ctx, pr, updates[len(updates)-1].NewCommitID, timeutil.TimeStampNow(), pusher, pr.Status); err != nil {
367361
log.Error("Failed to update PR to merged: %v", err)
368362
ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{Err: "Failed to update PR to merged"})
369363
}

services/pull/check.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -282,9 +282,6 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool {
282282
return false
283283
}
284284

285-
pr.MergedCommitID = commit.ID.String()
286-
pr.MergedUnix = timeutil.TimeStamp(commit.Author.When.Unix())
287-
pr.Status = issues_model.PullRequestStatusManuallyMerged
288285
merger, _ := user_model.GetUserByEmail(ctx, commit.Author.Email)
289286

290287
// When the commit author is unknown set the BaseRepo owner as merger
@@ -297,12 +294,8 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool {
297294
}
298295
merger = pr.BaseRepo.Owner
299296
}
300-
pr.Merger = merger
301-
pr.MergerID = merger.ID
302-
// reset the conflicted files as there cannot be any if we're merged
303-
pr.ConflictedFiles = []string{}
304297

305-
if merged, err := SetMerged(ctx, pr); err != nil {
298+
if merged, err := SetMerged(ctx, pr, commit.ID.String(), timeutil.TimeStamp(commit.Author.When.Unix()), merger, issues_model.PullRequestStatusManuallyMerged); err != nil {
306299
log.Error("%-v setMerged : %v", pr, err)
307300
return false
308301
} else if !merged {

services/pull/merge.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -633,16 +633,8 @@ func MergedManually(ctx context.Context, pr *issues_model.PullRequest, doer *use
633633
return fmt.Errorf("Wrong commit ID")
634634
}
635635

636-
pr.MergedCommitID = commitID
637-
pr.MergedUnix = timeutil.TimeStamp(commit.Author.When.Unix())
638-
pr.Status = issues_model.PullRequestStatusManuallyMerged
639-
pr.Merger = doer
640-
pr.MergerID = doer.ID
641-
// reset the conflicted files as there cannot be any if we're merged
642-
pr.ConflictedFiles = []string{}
643-
644636
var merged bool
645-
if merged, err = SetMerged(ctx, pr); err != nil {
637+
if merged, err = SetMerged(ctx, pr, commitID, timeutil.TimeStamp(commit.Author.When.Unix()), doer, issues_model.PullRequestStatusManuallyMerged); err != nil {
646638
return err
647639
} else if !merged {
648640
return fmt.Errorf("SetMerged failed")
@@ -661,16 +653,24 @@ func MergedManually(ctx context.Context, pr *issues_model.PullRequest, doer *use
661653
}
662654

663655
// SetMerged sets a pull request to merged and closes the corresponding issue
664-
func SetMerged(ctx context.Context, pr *issues_model.PullRequest) (bool, error) {
656+
func SetMerged(ctx context.Context, pr *issues_model.PullRequest, mergedCommitID string, mergedTimeStamp timeutil.TimeStamp, merger *user_model.User, mergeStatus issues_model.PullRequestStatus) (bool, error) {
665657
if pr.HasMerged {
666658
return false, fmt.Errorf("PullRequest[%d] already merged", pr.Index)
667659
}
660+
661+
pr.HasMerged = true
662+
pr.MergedCommitID = mergedCommitID
663+
pr.MergedUnix = mergedTimeStamp
664+
pr.Merger = merger
665+
pr.MergerID = merger.ID
666+
pr.Status = mergeStatus
667+
// reset the conflicted files as there cannot be any if we're merged
668+
pr.ConflictedFiles = []string{}
669+
668670
if pr.MergedCommitID == "" || pr.MergedUnix == 0 || pr.Merger == nil {
669671
return false, fmt.Errorf("unable to merge PullRequest[%d], some required fields are empty", pr.Index)
670672
}
671673

672-
pr.HasMerged = true
673-
674674
ctx, committer, err := db.TxContext(ctx)
675675
if err != nil {
676676
return false, err

0 commit comments

Comments
 (0)