From 1e7daeaf498c218546d3d8dcc1af64b028e7f24b Mon Sep 17 00:00:00 2001 From: Norwin Roosen Date: Sat, 13 Mar 2021 00:49:33 +0100 Subject: [PATCH 1/3] add tea pr merge --- cmd/pulls.go | 1 + cmd/pulls/merge.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 cmd/pulls/merge.go diff --git a/cmd/pulls.go b/cmd/pulls.go index db789db..8cb3a85 100644 --- a/cmd/pulls.go +++ b/cmd/pulls.go @@ -43,6 +43,7 @@ var CmdPulls = cli.Command{ &pulls.CmdPullsReview, &pulls.CmdPullsApprove, &pulls.CmdPullsReject, + &pulls.CmdPullsMerge, }, } diff --git a/cmd/pulls/merge.go b/cmd/pulls/merge.go new file mode 100644 index 0000000..f2fdd28 --- /dev/null +++ b/cmd/pulls/merge.go @@ -0,0 +1,57 @@ +// 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 pulls + +import ( + "fmt" + + "code.gitea.io/sdk/gitea" + "code.gitea.io/tea/cmd/flags" + "code.gitea.io/tea/modules/context" + "code.gitea.io/tea/modules/utils" + + "github.com/urfave/cli/v2" +) + +// CmdPullsMerge merges a PR +var CmdPullsMerge = cli.Command{ + Name: "merge", + Aliases: []string{"m"}, + Usage: "Merge a pull request", + Description: "Merge a pull request", + ArgsUsage: "", + Flags: append([]cli.Flag{ + &cli.StringFlag{ + Name: "style", + Aliases: []string{"s"}, + Usage: "Kind of merge to perform: merge, rebase, squash, rebase-merge", + }, + }, flags.AllDefaultFlags...), + Action: func(cmd *cli.Context) error { + ctx := context.InitCommand(cmd) + ctx.Ensure(context.CtxRequirement{RemoteRepo: true}) + + if ctx.Args().Len() != 1 { + return fmt.Errorf("Must specify a PR index") + } + + idx, err := utils.ArgToIndex(ctx.Args().First()) + if err != nil { + return err + } + + success, _, err := ctx.Login.Client().MergePullRequest(ctx.Owner, ctx.Repo, idx, gitea.MergePullRequestOption{ + Style: gitea.MergeStyle(ctx.String("style")), + }) + + if err != nil { + return err + } + if !success { + return fmt.Errorf("Failed to merge PR. Is it still open?") + } + return nil + }, +} -- 2.40.1 From 1d8321d9c3af2889f4b0632a0bee6f8ba10b53c3 Mon Sep 17 00:00:00 2001 From: Norwin Roosen Date: Sat, 13 Mar 2021 13:42:01 +0100 Subject: [PATCH 2/3] update year --- cmd/pulls/merge.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/pulls/merge.go b/cmd/pulls/merge.go index f2fdd28..1a99d3b 100644 --- a/cmd/pulls/merge.go +++ b/cmd/pulls/merge.go @@ -1,4 +1,4 @@ -// Copyright 2020 The Gitea Authors. All rights reserved. +// Copyright 2021 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. -- 2.40.1 From 7db6f2ac32d8bce893c2f2a5ac996d35ab07c2e3 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 13 Mar 2021 15:31:28 +0100 Subject: [PATCH 3/3] add title & message options + default style value --- cmd/pulls/merge.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cmd/pulls/merge.go b/cmd/pulls/merge.go index 1a99d3b..3213db3 100644 --- a/cmd/pulls/merge.go +++ b/cmd/pulls/merge.go @@ -27,6 +27,17 @@ var CmdPullsMerge = cli.Command{ Name: "style", Aliases: []string{"s"}, Usage: "Kind of merge to perform: merge, rebase, squash, rebase-merge", + Value: "merge", + }, + &cli.StringFlag{ + Name: "title", + Aliases: []string{"t"}, + Usage: "Merge commit title", + }, + &cli.StringFlag{ + Name: "message", + Aliases: []string{"m"}, + Usage: "Merge commit message", }, }, flags.AllDefaultFlags...), Action: func(cmd *cli.Context) error { @@ -43,7 +54,9 @@ var CmdPullsMerge = cli.Command{ } success, _, err := ctx.Login.Client().MergePullRequest(ctx.Owner, ctx.Repo, idx, gitea.MergePullRequestOption{ - Style: gitea.MergeStyle(ctx.String("style")), + Style: gitea.MergeStyle(ctx.String("style")), + Title: ctx.String("title"), + Message: ctx.String("message"), }) if err != nil { -- 2.40.1