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
```