From 3f428b6f39188fc503704942fa259cf3130819c6 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Sun, 27 Nov 2022 05:56:54 +0000 Subject: [PATCH 01/11] allow mark PR as manually merged by push option follow #12543 when push with push option `merge-pulls=pull_index1[,pull_index2,...]` will mark chosed pull requests as `manually_merge_pull_confirmed`, then in `manuallyMerged` check, will skip config.AutodetectManualMerge and continue check whether these prs has been manually merged, if yes, the result will be same as `Autodetect manual merge`, else will reset the `manually_merge_pull_confirmed` flag. I think this enhancement can make "Mark PR as manually merged" and "Autodetect manual merge" have same behavior. Thanks. fix #19528 Signed-off-by: a1012112796 <1012112796@qq.com> --- models/issues/pull.go | 15 +++++++++++++ models/migrations/migrations.go | 2 ++ models/migrations/v1_19/v236.go | 19 ++++++++++++++++ modules/private/hook.go | 22 +++++++++++++++++++ routers/private/hook_post_receive.go | 13 +++++++++++ services/pull/check.go | 22 ++++++++++++++----- .../view_content/pull_merge_instruction.tmpl | 2 +- 7 files changed, 88 insertions(+), 7 deletions(-) create mode 100644 models/migrations/v1_19/v236.go diff --git a/models/issues/pull.go b/models/issues/pull.go index 993a1ba8bdf76..c6a311f9e1f45 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -178,6 +178,8 @@ type PullRequest struct { isHeadRepoLoaded bool `xorm:"-"` Flow PullRequestFlow `xorm:"NOT NULL DEFAULT 0"` + + ManuallyMergePullConfirmed bool `xorm:"NOT NULL DEFAULT false"` } func init() { @@ -832,3 +834,16 @@ func MergeBlockedByOfficialReviewRequests(ctx context.Context, protectBranch *gi func MergeBlockedByOutdatedBranch(protectBranch *git_model.ProtectedBranch, pr *PullRequest) bool { return protectBranch.BlockOnOutdatedBranch && pr.CommitsBehind > 0 } + +// ManuallyMergePullConfirm confirm manually merge pulls by repo id and indexs +func ManuallyMergePullConfirmByIndexs(ctx context.Context, repoID int64, indexs []int64) error { + _, err := db.GetEngine(ctx).Where(builder.And( + builder.Eq{"base_repo_id": repoID}, + builder.Eq{"has_merged": false}, + builder.In("`index`", indexs), + )).Cols("manually_merge_pull_confirmed").Update(&PullRequest{ + ManuallyMergePullConfirmed: true, + }) + + return err +} diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index a48c837e8b258..f0bb78f9a60d9 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -443,6 +443,8 @@ var migrations = []Migration{ NewMigration("Add package cleanup rule table", v1_19.CreatePackageCleanupRuleTable), // v235 -> v236 NewMigration("Add index for access_token", v1_19.AddIndexForAccessToken), + // v236 -> v237 + NewMigration("add manually_merge_pull_confirmed to pull_request table", v1_19.AddManuallyMergePullConfirmedToPullRequest), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v1_19/v236.go b/models/migrations/v1_19/v236.go new file mode 100644 index 0000000000000..9f683c36dbd84 --- /dev/null +++ b/models/migrations/v1_19/v236.go @@ -0,0 +1,19 @@ +// Copyright 2022 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 v1_19 //nolint + +import ( + "xorm.io/xorm" +) + +func AddManuallyMergePullConfirmedToPullRequest(x *xorm.Engine) error { + type PullRequest struct { + ID int64 `xorm:"pk autoincr"` + + ManuallyMergePullConfirmed bool `xorm:"NOT NULL DEFAULT false"` + } + + return x.Sync(new(PullRequest)) +} diff --git a/modules/private/hook.go b/modules/private/hook.go index e208c14378943..1399158e53829 100644 --- a/modules/private/hook.go +++ b/modules/private/hook.go @@ -11,6 +11,7 @@ import ( "net/http" "net/url" "strconv" + "strings" "time" "code.gitea.io/gitea/modules/json" @@ -32,6 +33,7 @@ type GitPushOptions map[string]string const ( GitPushOptionRepoPrivate = "repo.private" GitPushOptionRepoTemplate = "repo.template" + GitPushOptionMergePulls = "merge-pulls" ) // Bool checks for a key in the map and parses as a boolean @@ -44,6 +46,26 @@ func (g GitPushOptions) Bool(key string, def bool) bool { return def } +// Int64Array checks for a key in the map and parses as a int64 array +func (g GitPushOptions) Int64Array(key string) []int64 { + if val, ok := g[key]; ok { + parts := strings.SplitN(val, ",", 10) + result := make([]int64, 0, len(parts)) + for _, part := range parts { + v, err := strconv.ParseInt(part, 10, 64) + if err != nil { + break + } + + result = append(result, v) + } + + return result + } + + return []int64{} +} + // HookOptions represents the options for the Hook calls type HookOptions struct { OldCommitIDs []string diff --git a/routers/private/hook_post_receive.go b/routers/private/hook_post_receive.go index 1370e5302b71d..c496db668b491 100644 --- a/routers/private/hook_post_receive.go +++ b/routers/private/hook_post_receive.go @@ -111,6 +111,19 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) { ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{ Err: fmt.Sprintf("Failed to Update: %s/%s Error: %v", ownerName, repoName, err), }) + return + } + + // handle manually merge pulls confirm + mergePullIndexs := opts.GitPushOptions.Int64Array(private.GitPushOptionMergePulls) + if len(mergePullIndexs) > 0 { + if err := issues_model.ManuallyMergePullConfirmByIndexs(ctx, repo.ID, mergePullIndexs); err != nil { + log.Error("Failed to manually merge pull confirm: %s/%s Error: %v", ownerName, repoName, err) + ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{ + Err: fmt.Sprintf("Failed to manually merge pull confirm: %s/%s Error: %v", ownerName, repoName, err), + }) + return + } } } diff --git a/services/pull/check.go b/services/pull/check.go index faf3459f16f3b..a40836ae10987 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -237,14 +237,16 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { return false } - if unit, err := pr.BaseRepo.GetUnit(unit.TypePullRequests); err == nil { - config := unit.PullRequestsConfig() - if !config.AutodetectManualMerge { + if !pr.ManuallyMergePullConfirmed { + if unit, err := pr.BaseRepo.GetUnit(unit.TypePullRequests); err == nil { + config := unit.PullRequestsConfig() + if !config.AutodetectManualMerge { + return false + } + } else { + log.Error("PullRequest[%d].BaseRepo.GetUnit(unit.TypePullRequests): %v", pr.ID, err) return false } - } else { - log.Error("PullRequest[%d].BaseRepo.GetUnit(unit.TypePullRequests): %v", pr.ID, err) - return false } commit, err := getMergeCommit(ctx, pr) @@ -283,6 +285,14 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { log.Info("manuallyMerged[%d]: Marked as manually merged into %s/%s by commit id: %s", pr.ID, pr.BaseRepo.Name, pr.BaseBranch, commit.ID.String()) return true } + + if pr.ManuallyMergePullConfirmed { + pr.ManuallyMergePullConfirmed = false + if err := pr.UpdateCols("manually_merge_pull_confirmed"); err != nil { + log.Error("PullRequest[%d]: reset manually_merge_pull_confirmed failed: %v", pr.ID, err) + } + } + return false } diff --git a/templates/repo/issue/view_content/pull_merge_instruction.tmpl b/templates/repo/issue/view_content/pull_merge_instruction.tmpl index 816f25cbcf901..a14568021e17e 100644 --- a/templates/repo/issue/view_content/pull_merge_instruction.tmpl +++ b/templates/repo/issue/view_content/pull_merge_instruction.tmpl @@ -14,6 +14,6 @@
git checkout {{$.Issue.PullRequest.BaseBranch}}
git merge --no-ff {{if ne $.Issue.PullRequest.HeadRepo.ID $.Issue.PullRequest.BaseRepo.ID}}{{$.Issue.PullRequest.HeadRepo.OwnerName}}-{{end}}{{$.Issue.PullRequest.HeadBranch}}
-
git push origin {{$.Issue.PullRequest.BaseBranch}}
+
git push origin {{$.Issue.PullRequest.BaseBranch}} -o merge-pulls={{$.Issue.PullRequest.Index}}
From c661bdf5a33a95eb0a5ced0b2e06aebf5a211425 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Sun, 27 Nov 2022 19:59:18 +0800 Subject: [PATCH 02/11] Update models/migrations/migrations.go Co-authored-by: Yarden Shoham --- models/migrations/migrations.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index f0bb78f9a60d9..489fb0d755de9 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -444,7 +444,7 @@ var migrations = []Migration{ // v235 -> v236 NewMigration("Add index for access_token", v1_19.AddIndexForAccessToken), // v236 -> v237 - NewMigration("add manually_merge_pull_confirmed to pull_request table", v1_19.AddManuallyMergePullConfirmedToPullRequest), + NewMigration("Add manually_merge_pull_confirmed to pull_request table", v1_19.AddManuallyMergePullConfirmedToPullRequest), } // GetCurrentDBVersion returns the current db version From eee691f41864d3490da700506ad6ae8eea8ad2b7 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Mon, 28 Nov 2022 07:57:24 +0800 Subject: [PATCH 03/11] Apply suggestions from code review Co-authored-by: Yarden Shoham --- models/issues/pull.go | 4 ++-- routers/private/hook_post_receive.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/models/issues/pull.go b/models/issues/pull.go index c6a311f9e1f45..c930c162c6eb5 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -835,8 +835,8 @@ func MergeBlockedByOutdatedBranch(protectBranch *git_model.ProtectedBranch, pr * return protectBranch.BlockOnOutdatedBranch && pr.CommitsBehind > 0 } -// ManuallyMergePullConfirm confirm manually merge pulls by repo id and indexs -func ManuallyMergePullConfirmByIndexs(ctx context.Context, repoID int64, indexs []int64) error { +// ManuallyMergePullConfirm confirm manually merge pulls by repo id and indexes +func ManuallyMergePullConfirmByIndexs(ctx context.Context, repoID int64, indexes []int64) error { _, err := db.GetEngine(ctx).Where(builder.And( builder.Eq{"base_repo_id": repoID}, builder.Eq{"has_merged": false}, diff --git a/routers/private/hook_post_receive.go b/routers/private/hook_post_receive.go index c496db668b491..60b7d4aedcfcd 100644 --- a/routers/private/hook_post_receive.go +++ b/routers/private/hook_post_receive.go @@ -115,9 +115,9 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) { } // handle manually merge pulls confirm - mergePullIndexs := opts.GitPushOptions.Int64Array(private.GitPushOptionMergePulls) - if len(mergePullIndexs) > 0 { - if err := issues_model.ManuallyMergePullConfirmByIndexs(ctx, repo.ID, mergePullIndexs); err != nil { + mergePullIndexes := opts.GitPushOptions.Int64Array(private.GitPushOptionMergePulls) + if len(mergePullIndexes) > 0 { + if err := issues_model.ManuallyMergePullConfirmByIndexes(ctx, repo.ID, mergePullIndexes); err != nil { log.Error("Failed to manually merge pull confirm: %s/%s Error: %v", ownerName, repoName, err) ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{ Err: fmt.Sprintf("Failed to manually merge pull confirm: %s/%s Error: %v", ownerName, repoName, err), From 6cf82034f1382567ff4452aa37a8137c697f9888 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Mon, 28 Nov 2022 00:02:57 +0000 Subject: [PATCH 04/11] fix build Signed-off-by: a1012112796 <1012112796@qq.com> --- models/issues/pull.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/issues/pull.go b/models/issues/pull.go index c930c162c6eb5..82be7b4d126c7 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -836,11 +836,11 @@ func MergeBlockedByOutdatedBranch(protectBranch *git_model.ProtectedBranch, pr * } // ManuallyMergePullConfirm confirm manually merge pulls by repo id and indexes -func ManuallyMergePullConfirmByIndexs(ctx context.Context, repoID int64, indexes []int64) error { +func ManuallyMergePullConfirmByIndexes(ctx context.Context, repoID int64, indexes []int64) error { _, err := db.GetEngine(ctx).Where(builder.And( builder.Eq{"base_repo_id": repoID}, builder.Eq{"has_merged": false}, - builder.In("`index`", indexs), + builder.In("`index`", indexes), )).Cols("manually_merge_pull_confirmed").Update(&PullRequest{ ManuallyMergePullConfirmed: true, }) From f83fca286e356380a3f27941a8c2140a03d00f4d Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Fri, 2 Dec 2022 15:25:42 +0000 Subject: [PATCH 05/11] fix lint Signed-off-by: a1012112796 <1012112796@qq.com> --- models/migrations/v1_19/v236.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/models/migrations/v1_19/v236.go b/models/migrations/v1_19/v236.go index 9f683c36dbd84..3be7688e2844c 100644 --- a/models/migrations/v1_19/v236.go +++ b/models/migrations/v1_19/v236.go @@ -1,6 +1,5 @@ // Copyright 2022 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. +// SPDX-License-Identifier: MIT package v1_19 //nolint From 0b3ef59a99f7fff47a85cc1a400e7ddd9030137a Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Fri, 16 Dec 2022 15:24:00 +0000 Subject: [PATCH 06/11] limit base_branch Signed-off-by: a1012112796 <1012112796@qq.com> --- models/issues/pull.go | 3 ++- routers/private/hook_post_receive.go | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/models/issues/pull.go b/models/issues/pull.go index ef2a5d8c7cfa2..5ee2b447d2401 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -830,11 +830,12 @@ func MergeBlockedByOutdatedBranch(protectBranch *git_model.ProtectedBranch, pr * } // ManuallyMergePullConfirm confirm manually merge pulls by repo id and indexes -func ManuallyMergePullConfirmByIndexes(ctx context.Context, repoID int64, indexes []int64) error { +func ManuallyMergePullConfirmByIndexes(ctx context.Context, repoID int64, baseBranchs []string, indexes []int64) error { _, err := db.GetEngine(ctx).Where(builder.And( builder.Eq{"base_repo_id": repoID}, builder.Eq{"has_merged": false}, builder.In("`index`", indexes), + builder.In("`base_branch`", baseBranchs), )).Cols("manually_merge_pull_confirmed").Update(&PullRequest{ ManuallyMergePullConfirmed: true, }) diff --git a/routers/private/hook_post_receive.go b/routers/private/hook_post_receive.go index 75d89cfefbe04..4a54453dcafea 100644 --- a/routers/private/hook_post_receive.go +++ b/routers/private/hook_post_receive.go @@ -116,7 +116,17 @@ func HookPostReceive(ctx *gitea_context.PrivateContext) { // handle manually merge pulls confirm mergePullIndexes := opts.GitPushOptions.Int64Array(private.GitPushOptionMergePulls) if len(mergePullIndexes) > 0 { - if err := issues_model.ManuallyMergePullConfirmByIndexes(ctx, repo.ID, mergePullIndexes); err != nil { + baseBranchs := make([]string, 0, len(opts.OldCommitIDs)) + for i := range opts.OldCommitIDs { + refFullName := opts.RefFullNames[i] + newCommitID := opts.NewCommitIDs[i] + + if newCommitID != git.EmptySHA && strings.HasPrefix(refFullName, git.BranchPrefix) { + baseBranchs = append(baseBranchs, strings.TrimPrefix(refFullName, git.BranchPrefix)) + } + } + + if err := issues_model.ManuallyMergePullConfirmByIndexes(ctx, repo.ID, baseBranchs, mergePullIndexes); err != nil { log.Error("Failed to manually merge pull confirm: %s/%s Error: %v", ownerName, repoName, err) ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{ Err: fmt.Sprintf("Failed to manually merge pull confirm: %s/%s Error: %v", ownerName, repoName, err), From b8ffb3287926e3672fbae7ffcb3a3751b8dce59b Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Tue, 20 Dec 2022 12:46:44 +0000 Subject: [PATCH 07/11] add ManuallyMergeConfirmedVersion to sync ManuallyMergeConfirmed Signed-off-by: a1012112796 <1012112796@qq.com> --- models/issues/pull.go | 21 +++++++++++++++++---- models/migrations/v1_19/v237.go | 3 ++- services/pull/check.go | 8 ++++---- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/models/issues/pull.go b/models/issues/pull.go index 5ee2b447d2401..18a4fc945b31d 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -178,7 +178,8 @@ type PullRequest struct { Flow PullRequestFlow `xorm:"NOT NULL DEFAULT 0"` - ManuallyMergePullConfirmed bool `xorm:"NOT NULL DEFAULT false"` + ManuallyMergeConfirmed bool `xorm:"NOT NULL DEFAULT false"` + ManuallyMergeConfirmedVersion int64 `xorm:"NOT NULL DEFAULT 0"` } func init() { @@ -836,9 +837,21 @@ func ManuallyMergePullConfirmByIndexes(ctx context.Context, repoID int64, baseBr builder.Eq{"has_merged": false}, builder.In("`index`", indexes), builder.In("`base_branch`", baseBranchs), - )).Cols("manually_merge_pull_confirmed").Update(&PullRequest{ - ManuallyMergePullConfirmed: true, - }) + )). + Incr("manually_merge_confirmed_version"). + SetExpr("manually_merge_confirmed", true).Update(new(PullRequest)) + + return err +} +// ResetManuallyMergePullConfirm reset manualy merge confirmed flag +func (pr *PullRequest) ResetManuallyMergePullConfirm(ctx context.Context) error { + _, err := db.GetEngine(ctx). + Where(builder.And( + builder.Eq{"`id`": pr.ID}, + builder.Eq{"manually_merge_confirmed_version": pr.ManuallyMergeConfirmedVersion}, + )). + Incr("manually_merge_confirmed_version"). + SetExpr("manually_merge_confirmed", false).Update(new(PullRequest)) return err } diff --git a/models/migrations/v1_19/v237.go b/models/migrations/v1_19/v237.go index 3be7688e2844c..a994165243f6d 100644 --- a/models/migrations/v1_19/v237.go +++ b/models/migrations/v1_19/v237.go @@ -11,7 +11,8 @@ func AddManuallyMergePullConfirmedToPullRequest(x *xorm.Engine) error { type PullRequest struct { ID int64 `xorm:"pk autoincr"` - ManuallyMergePullConfirmed bool `xorm:"NOT NULL DEFAULT false"` + ManuallyMergeConfirmed bool `xorm:"NOT NULL DEFAULT false"` + ManuallyMergeConfirmedVersion int64 `xorm:"NOT NULL DEFAULT 0"` } return x.Sync(new(PullRequest)) diff --git a/services/pull/check.go b/services/pull/check.go index 45e6a5bbea78c..95f76f5bddbff 100644 --- a/services/pull/check.go +++ b/services/pull/check.go @@ -236,7 +236,7 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { return false } - if !pr.ManuallyMergePullConfirmed { + if !pr.ManuallyMergeConfirmed { if unit, err := pr.BaseRepo.GetUnit(ctx, unit.TypePullRequests); err == nil { config := unit.PullRequestsConfig() if !config.AutodetectManualMerge { @@ -285,9 +285,9 @@ func manuallyMerged(ctx context.Context, pr *issues_model.PullRequest) bool { return true } - if pr.ManuallyMergePullConfirmed { - pr.ManuallyMergePullConfirmed = false - if err := pr.UpdateCols("manually_merge_pull_confirmed"); err != nil { + if pr.ManuallyMergeConfirmed { + pr.ManuallyMergeConfirmed = false + if err := pr.ResetManuallyMergePullConfirm(ctx); err != nil { log.Error("PullRequest[%d]: reset manually_merge_pull_confirmed failed: %v", pr.ID, err) } } From 1997f8cb4e25469c40e2b4d3dfd2ea2b2f37eab4 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Tue, 20 Dec 2022 12:57:32 +0000 Subject: [PATCH 08/11] fix lint Signed-off-by: a1012112796 <1012112796@qq.com> --- models/issues/pull.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/issues/pull.go b/models/issues/pull.go index 18a4fc945b31d..9530cd5d4b027 100644 --- a/models/issues/pull.go +++ b/models/issues/pull.go @@ -844,7 +844,7 @@ func ManuallyMergePullConfirmByIndexes(ctx context.Context, repoID int64, baseBr return err } -// ResetManuallyMergePullConfirm reset manualy merge confirmed flag +// ResetManuallyMergePullConfirm reset manually merge confirmed flag func (pr *PullRequest) ResetManuallyMergePullConfirm(ctx context.Context) error { _, err := db.GetEngine(ctx). Where(builder.And( From e4c3fb9f9457e0155cc32bb189157965618588bf Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Sun, 5 Feb 2023 02:03:40 +0000 Subject: [PATCH 09/11] rename push option Signed-off-by: a1012112796 <1012112796@qq.com> --- modules/private/hook.go | 2 +- templates/repo/issue/view_content/pull_merge_instruction.tmpl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/private/hook.go b/modules/private/hook.go index 382b4db4d196b..6c3f7940cceb7 100644 --- a/modules/private/hook.go +++ b/modules/private/hook.go @@ -32,7 +32,7 @@ type GitPushOptions map[string]string const ( GitPushOptionRepoPrivate = "repo.private" GitPushOptionRepoTemplate = "repo.template" - GitPushOptionMergePulls = "merge-pulls" + GitPushOptionMergePulls = "pulls.merged" ) // Bool checks for a key in the map and parses as a boolean diff --git a/templates/repo/issue/view_content/pull_merge_instruction.tmpl b/templates/repo/issue/view_content/pull_merge_instruction.tmpl index a14568021e17e..ea44170759058 100644 --- a/templates/repo/issue/view_content/pull_merge_instruction.tmpl +++ b/templates/repo/issue/view_content/pull_merge_instruction.tmpl @@ -14,6 +14,6 @@
git checkout {{$.Issue.PullRequest.BaseBranch}}
git merge --no-ff {{if ne $.Issue.PullRequest.HeadRepo.ID $.Issue.PullRequest.BaseRepo.ID}}{{$.Issue.PullRequest.HeadRepo.OwnerName}}-{{end}}{{$.Issue.PullRequest.HeadBranch}}
-
git push origin {{$.Issue.PullRequest.BaseBranch}} -o merge-pulls={{$.Issue.PullRequest.Index}}
+
git push origin {{$.Issue.PullRequest.BaseBranch}} -o pulls.merged={{$.Issue.PullRequest.Index}}
From 3b682a8100248a812700b48d80b0430fb426344a Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Sun, 5 Feb 2023 02:17:42 +0000 Subject: [PATCH 10/11] update document Signed-off-by: a1012112796 <1012112796@qq.com> --- docs/content/doc/usage/push-options.en-us.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/content/doc/usage/push-options.en-us.md b/docs/content/doc/usage/push-options.en-us.md index 8d7de19609c83..c0ac4a9035370 100644 --- a/docs/content/doc/usage/push-options.en-us.md +++ b/docs/content/doc/usage/push-options.en-us.md @@ -31,3 +31,15 @@ Example of changing a repository's visibility to public: ```shell git push -o repo.private=false -u origin master ``` + +- `pulls.merged` (pull index0 [, pull index1]*) - manually merge comfirmed pulls + + notify service that these pull requst has been manually merged by this push + event. then service will mark these pulls as manually merged if manually merge check pass. + if push manually merged pulls without this push option, they maybe will become to empty pulls. + + Example: + + ```shell + git push -o pulls.merged=1,2,3 -u origin master + ``` From 7bc20a73a49a761a04d36102157470bf9f1927a2 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Sun, 5 Feb 2023 19:45:44 +0800 Subject: [PATCH 11/11] Update docs/content/doc/usage/push-options.en-us.md Co-authored-by: Yarden Shoham --- docs/content/doc/usage/push-options.en-us.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/doc/usage/push-options.en-us.md b/docs/content/doc/usage/push-options.en-us.md index c0ac4a9035370..fb30a9d5a3088 100644 --- a/docs/content/doc/usage/push-options.en-us.md +++ b/docs/content/doc/usage/push-options.en-us.md @@ -41,5 +41,5 @@ git push -o repo.private=false -u origin master Example: ```shell - git push -o pulls.merged=1,2,3 -u origin master + git push -o pulls.merged=1,2,3 -u origin master ```