From eeb35d77315f43c44b28694ff9b6fc5dd67c2ae9 Mon Sep 17 00:00:00 2001 From: Martin Reboredo Date: Mon, 14 Dec 2020 19:51:35 -0300 Subject: [PATCH 1/4] Implement pull request closing/reopening Signed-off-by: Martin Reboredo --- cmd/pulls.go | 6 ++++-- cmd/pulls/close.go | 25 +++++++++++++++++++++++++ cmd/pulls/edit.go | 38 ++++++++++++++++++++++++++++++++++++++ cmd/pulls/reopen.go | 26 ++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 cmd/pulls/close.go create mode 100644 cmd/pulls/edit.go create mode 100644 cmd/pulls/reopen.go diff --git a/cmd/pulls.go b/cmd/pulls.go index 515b8c7..ac4badf 100644 --- a/cmd/pulls.go +++ b/cmd/pulls.go @@ -21,8 +21,8 @@ import ( var CmdPulls = cli.Command{ Name: "pulls", Aliases: []string{"pull", "pr"}, - Usage: "List, create, checkout and clean pull requests", - Description: `List, create, checkout and clean pull requests`, + Usage: "List, create, checkout, close, clean and reopen pull requests", + Description: `List, create, checkout, close, clean and reopen pull requests`, ArgsUsage: "[]", Action: runPulls, Flags: flags.IssuePRFlags, @@ -31,6 +31,8 @@ var CmdPulls = cli.Command{ &pulls.CmdPullsCheckout, &pulls.CmdPullsClean, &pulls.CmdPullsCreate, + &pulls.CmdPullsClose, + &pulls.CmdPullsReopen, }, } diff --git a/cmd/pulls/close.go b/cmd/pulls/close.go new file mode 100644 index 0000000..6466235 --- /dev/null +++ b/cmd/pulls/close.go @@ -0,0 +1,25 @@ +// Copyright 2018 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 ( + "code.gitea.io/tea/cmd/flags" + + "code.gitea.io/sdk/gitea" + "github.com/urfave/cli/v2" +) + +// CmdPullsClose closes a given open pull request +var CmdPullsClose = cli.Command{ + Name: "close", + Usage: "Change state of a pull request to 'closed'", + Description: `Change state of a pull request to 'closed'`, + ArgsUsage: "", + Action: func(ctx *cli.Context) error { + var s = gitea.StateClosed + return editPullState(ctx, gitea.EditPullRequestOption{State: &s}) + }, + Flags: flags.AllDefaultFlags, +} diff --git a/cmd/pulls/edit.go b/cmd/pulls/edit.go new file mode 100644 index 0000000..546dc7a --- /dev/null +++ b/cmd/pulls/edit.go @@ -0,0 +1,38 @@ +// Copyright 2018 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 ( + "log" + + "code.gitea.io/tea/cmd/flags" + "code.gitea.io/tea/modules/config" + "code.gitea.io/tea/modules/print" + "code.gitea.io/tea/modules/utils" + + "code.gitea.io/sdk/gitea" + "github.com/urfave/cli/v2" +) + +// editPullState abstracts the arg parsing to edit the given pull request +func editPullState(ctx *cli.Context, opts gitea.EditPullRequestOption) error { + login, owner, repo := config.InitCommand(flags.GlobalRepoValue, flags.GlobalLoginValue, flags.GlobalRemoteValue) + if ctx.Args().Len() == 0 { + log.Fatal(ctx.Command.ArgsUsage) + } + + index, err := utils.ArgToIndex(ctx.Args().First()) + if err != nil { + return err + } + + pr, _, err := login.Client().EditPullRequest(owner, repo, index, opts) + if err != nil { + return err + } + + print.PullDetails(pr, nil) + return nil +} diff --git a/cmd/pulls/reopen.go b/cmd/pulls/reopen.go new file mode 100644 index 0000000..8cd4c84 --- /dev/null +++ b/cmd/pulls/reopen.go @@ -0,0 +1,26 @@ +// 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 ( + "code.gitea.io/tea/cmd/flags" + + "code.gitea.io/sdk/gitea" + "github.com/urfave/cli/v2" +) + +// CmdPullsReopen reopens a given closed pull request +var CmdPullsReopen = cli.Command{ + Name: "reopen", + Aliases: []string{"open"}, + Usage: "Change state of a pull request to 'open'", + Description: `Change state of a pull request to 'open'`, + ArgsUsage: "", + Action: func(ctx *cli.Context) error { + var s = gitea.StateOpen + return editPullState(ctx, gitea.EditPullRequestOption{State: &s}) + }, + Flags: flags.AllDefaultFlags, +} -- 2.40.1 From ac869ec2f7142bfb5f20a0efc145069c88924f16 Mon Sep 17 00:00:00 2001 From: Martin Reboredo Date: Mon, 14 Dec 2020 19:51:35 -0300 Subject: [PATCH 2/4] Correct year and `pull` description --- cmd/pulls.go | 4 ++-- cmd/pulls/close.go | 2 +- cmd/pulls/edit.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/pulls.go b/cmd/pulls.go index ac4badf..6b1ab61 100644 --- a/cmd/pulls.go +++ b/cmd/pulls.go @@ -21,8 +21,8 @@ import ( var CmdPulls = cli.Command{ Name: "pulls", Aliases: []string{"pull", "pr"}, - Usage: "List, create, checkout, close, clean and reopen pull requests", - Description: `List, create, checkout, close, clean and reopen pull requests`, + Usage: "Manage and checkout pull requests", + Description: `Manage and checkout pull requests`, ArgsUsage: "[]", Action: runPulls, Flags: flags.IssuePRFlags, diff --git a/cmd/pulls/close.go b/cmd/pulls/close.go index 6466235..9a08c69 100644 --- a/cmd/pulls/close.go +++ b/cmd/pulls/close.go @@ -1,4 +1,4 @@ -// Copyright 2018 The Gitea Authors. All rights reserved. +// 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. diff --git a/cmd/pulls/edit.go b/cmd/pulls/edit.go index 546dc7a..33edbf9 100644 --- a/cmd/pulls/edit.go +++ b/cmd/pulls/edit.go @@ -1,4 +1,4 @@ -// Copyright 2018 The Gitea Authors. All rights reserved. +// 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. -- 2.40.1 From 2b7a4ecf8e773f831e6e037bc824ec5130a0cf0d Mon Sep 17 00:00:00 2001 From: Martin Reboredo Date: Tue, 15 Dec 2020 17:41:26 -0300 Subject: [PATCH 3/4] Apply changes from #291 --- cmd/pulls/edit.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/pulls/edit.go b/cmd/pulls/edit.go index 33edbf9..4dfbdeb 100644 --- a/cmd/pulls/edit.go +++ b/cmd/pulls/edit.go @@ -7,8 +7,7 @@ package pulls import ( "log" - "code.gitea.io/tea/cmd/flags" - "code.gitea.io/tea/modules/config" + "code.gitea.io/tea/modules/context" "code.gitea.io/tea/modules/print" "code.gitea.io/tea/modules/utils" @@ -17,8 +16,9 @@ import ( ) // editPullState abstracts the arg parsing to edit the given pull request -func editPullState(ctx *cli.Context, opts gitea.EditPullRequestOption) error { - login, owner, repo := config.InitCommand(flags.GlobalRepoValue, flags.GlobalLoginValue, flags.GlobalRemoteValue) +func editPullState(cmd *cli.Context, opts gitea.EditPullRequestOption) error { + ctx := context.InitCommand(cmd) + ctx.Ensure(context.CtxRequirement{RemoteRepo: true}) if ctx.Args().Len() == 0 { log.Fatal(ctx.Command.ArgsUsage) } @@ -28,7 +28,7 @@ func editPullState(ctx *cli.Context, opts gitea.EditPullRequestOption) error { return err } - pr, _, err := login.Client().EditPullRequest(owner, repo, index, opts) + pr, _, err := ctx.Login.Client().EditPullRequest(ctx.Owner, ctx.Repo, index, opts) if err != nil { return err } -- 2.40.1 From ed9f5bbd4c2ae7508e64f03287c2575cad149cd1 Mon Sep 17 00:00:00 2001 From: Martin Reboredo Date: Wed, 16 Dec 2020 18:02:08 -0300 Subject: [PATCH 4/4] Return fmt.Errorf instead of log.Fatal if no pull index was supplied --- cmd/pulls/edit.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/pulls/edit.go b/cmd/pulls/edit.go index 4dfbdeb..3c0e46e 100644 --- a/cmd/pulls/edit.go +++ b/cmd/pulls/edit.go @@ -5,7 +5,7 @@ package pulls import ( - "log" + "fmt" "code.gitea.io/tea/modules/context" "code.gitea.io/tea/modules/print" @@ -20,7 +20,7 @@ func editPullState(cmd *cli.Context, opts gitea.EditPullRequestOption) error { ctx := context.InitCommand(cmd) ctx.Ensure(context.CtxRequirement{RemoteRepo: true}) if ctx.Args().Len() == 0 { - log.Fatal(ctx.Command.ArgsUsage) + return fmt.Errorf("Please provide a Pull Request index") } index, err := utils.ArgToIndex(ctx.Args().First()) @@ -33,6 +33,6 @@ func editPullState(cmd *cli.Context, opts gitea.EditPullRequestOption) error { return err } - print.PullDetails(pr, nil) + print.PullDetails(pr, nil, nil) return nil } -- 2.40.1