mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 01:05:26 +01:00 
			
		
		
		
	Implement PR closing and reopening (#304)
Implement pull request closing/reopening Signed-off-by: Martin Reboredo <yakoyoku@gmail.com> Correct year and `pull` description Apply changes from #291 Return fmt.Errorf instead of log.Fatal if no pull index was supplied Co-authored-by: Martin Reboredo <yakoyoku@gmail.com> Reviewed-on: https://gitea.com/gitea/tea/pulls/304 Reviewed-by: Norwin <noerw@noreply.gitea.io> Reviewed-by: appleboy <appleboy.tw@gmail.com> Co-Authored-By: Martin Reboredo <yakoyakoyokuyoku@noreply.gitea.io> Co-Committed-By: Martin Reboredo <yakoyakoyokuyoku@noreply.gitea.io>
This commit is contained in:
		| @@ -21,8 +21,8 @@ import ( | |||||||
| var CmdPulls = cli.Command{ | var CmdPulls = cli.Command{ | ||||||
| 	Name:        "pulls", | 	Name:        "pulls", | ||||||
| 	Aliases:     []string{"pull", "pr"}, | 	Aliases:     []string{"pull", "pr"}, | ||||||
| 	Usage:       "List, create, checkout and clean pull requests", | 	Usage:       "Manage and checkout pull requests", | ||||||
| 	Description: `List, create, checkout and clean pull requests`, | 	Description: `Manage and checkout pull requests`, | ||||||
| 	ArgsUsage:   "[<pull index>]", | 	ArgsUsage:   "[<pull index>]", | ||||||
| 	Action:      runPulls, | 	Action:      runPulls, | ||||||
| 	Flags:       flags.IssuePRFlags, | 	Flags:       flags.IssuePRFlags, | ||||||
| @@ -31,6 +31,8 @@ var CmdPulls = cli.Command{ | |||||||
| 		&pulls.CmdPullsCheckout, | 		&pulls.CmdPullsCheckout, | ||||||
| 		&pulls.CmdPullsClean, | 		&pulls.CmdPullsClean, | ||||||
| 		&pulls.CmdPullsCreate, | 		&pulls.CmdPullsCreate, | ||||||
|  | 		&pulls.CmdPullsClose, | ||||||
|  | 		&pulls.CmdPullsReopen, | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								cmd/pulls/close.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								cmd/pulls/close.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | // 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" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // 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:   "<pull index>", | ||||||
|  | 	Action: func(ctx *cli.Context) error { | ||||||
|  | 		var s = gitea.StateClosed | ||||||
|  | 		return editPullState(ctx, gitea.EditPullRequestOption{State: &s}) | ||||||
|  | 	}, | ||||||
|  | 	Flags: flags.AllDefaultFlags, | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								cmd/pulls/edit.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								cmd/pulls/edit.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | // 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/tea/modules/context" | ||||||
|  | 	"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(cmd *cli.Context, opts gitea.EditPullRequestOption) error { | ||||||
|  | 	ctx := context.InitCommand(cmd) | ||||||
|  | 	ctx.Ensure(context.CtxRequirement{RemoteRepo: true}) | ||||||
|  | 	if ctx.Args().Len() == 0 { | ||||||
|  | 		return fmt.Errorf("Please provide a Pull Request index") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	index, err := utils.ArgToIndex(ctx.Args().First()) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	pr, _, err := ctx.Login.Client().EditPullRequest(ctx.Owner, ctx.Repo, index, opts) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	print.PullDetails(pr, nil, nil) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
							
								
								
									
										26
									
								
								cmd/pulls/reopen.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								cmd/pulls/reopen.go
									
									
									
									
									
										Normal file
									
								
							| @@ -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:   "<pull index>", | ||||||
|  | 	Action: func(ctx *cli.Context) error { | ||||||
|  | 		var s = gitea.StateOpen | ||||||
|  | 		return editPullState(ctx, gitea.EditPullRequestOption{State: &s}) | ||||||
|  | 	}, | ||||||
|  | 	Flags: flags.AllDefaultFlags, | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Martin Reboredo
					Martin Reboredo