Skip to content

Commit b8ffb32

Browse files
committed
add ManuallyMergeConfirmedVersion to sync ManuallyMergeConfirmed
Signed-off-by: a1012112796 <1012112796@qq.com>
1 parent 4b7f007 commit b8ffb32

File tree

3 files changed

+23
-9
lines changed

3 files changed

+23
-9
lines changed

models/issues/pull.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ type PullRequest struct {
178178

179179
Flow PullRequestFlow `xorm:"NOT NULL DEFAULT 0"`
180180

181-
ManuallyMergePullConfirmed bool `xorm:"NOT NULL DEFAULT false"`
181+
ManuallyMergeConfirmed bool `xorm:"NOT NULL DEFAULT false"`
182+
ManuallyMergeConfirmedVersion int64 `xorm:"NOT NULL DEFAULT 0"`
182183
}
183184

184185
func init() {
@@ -836,9 +837,21 @@ func ManuallyMergePullConfirmByIndexes(ctx context.Context, repoID int64, baseBr
836837
builder.Eq{"has_merged": false},
837838
builder.In("`index`", indexes),
838839
builder.In("`base_branch`", baseBranchs),
839-
)).Cols("manually_merge_pull_confirmed").Update(&PullRequest{
840-
ManuallyMergePullConfirmed: true,
841-
})
840+
)).
841+
Incr("manually_merge_confirmed_version").
842+
SetExpr("manually_merge_confirmed", true).Update(new(PullRequest))
843+
844+
return err
845+
}
842846

847+
// ResetManuallyMergePullConfirm reset manualy merge confirmed flag
848+
func (pr *PullRequest) ResetManuallyMergePullConfirm(ctx context.Context) error {
849+
_, err := db.GetEngine(ctx).
850+
Where(builder.And(
851+
builder.Eq{"`id`": pr.ID},
852+
builder.Eq{"manually_merge_confirmed_version": pr.ManuallyMergeConfirmedVersion},
853+
)).
854+
Incr("manually_merge_confirmed_version").
855+
SetExpr("manually_merge_confirmed", false).Update(new(PullRequest))
843856
return err
844857
}

models/migrations/v1_19/v237.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ func AddManuallyMergePullConfirmedToPullRequest(x *xorm.Engine) error {
1111
type PullRequest struct {
1212
ID int64 `xorm:"pk autoincr"`
1313

14-
ManuallyMergePullConfirmed bool `xorm:"NOT NULL DEFAULT false"`
14+
ManuallyMergeConfirmed bool `xorm:"NOT NULL DEFAULT false"`
15+
ManuallyMergeConfirmedVersion int64 `xorm:"NOT NULL DEFAULT 0"`
1516
}
1617

1718
return x.Sync(new(PullRequest))

services/pull/check.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool {
236236
return false
237237
}
238238

239-
if !pr.ManuallyMergePullConfirmed {
239+
if !pr.ManuallyMergeConfirmed {
240240
if unit, err := pr.BaseRepo.GetUnit(ctx, unit.TypePullRequests); err == nil {
241241
config := unit.PullRequestsConfig()
242242
if !config.AutodetectManualMerge {
@@ -285,9 +285,9 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool {
285285
return true
286286
}
287287

288-
if pr.ManuallyMergePullConfirmed {
289-
pr.ManuallyMergePullConfirmed = false
290-
if err := pr.UpdateCols("manually_merge_pull_confirmed"); err != nil {
288+
if pr.ManuallyMergeConfirmed {
289+
pr.ManuallyMergeConfirmed = false
290+
if err := pr.ResetManuallyMergePullConfirm(ctx); err != nil {
291291
log.Error("PullRequest[%d]: reset manually_merge_pull_confirmed failed: %v", pr.ID, err)
292292
}
293293
}

0 commit comments

Comments
 (0)