mirror of
				https://gitea.com/gitea/tea.git
				synced 2025-10-31 01:05:26 +01:00 
			
		
		
		
	make issues & pulls subcommands consistent (#188)
Merge branch 'master' into pr-details make issues & pulls subcommands consistent - by default list open items - show detail when argument is provided - expose listing as ls subcommand - accept --state flag on command and ls subcommand Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Norwin Roosen <git@nroo.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/188 Reviewed-by: 6543 <6543@noreply.gitea.io> Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		
							
								
								
									
										12
									
								
								cmd/flags.go
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								cmd/flags.go
									
									
									
									
									
								
							| @@ -53,6 +53,13 @@ var OutputFlag = cli.StringFlag{ | ||||
| 	Destination: &outputValue, | ||||
| } | ||||
|  | ||||
| // StateFlag provides flag to specify issue/pr state, defaulting to "open" | ||||
| var StateFlag = cli.StringFlag{ | ||||
| 	Name:        "state", | ||||
| 	Usage:       "Filter by state (all|open|closed)", | ||||
| 	DefaultText: "open", | ||||
| } | ||||
|  | ||||
| // LoginOutputFlags defines login and output flags that should | ||||
| // added to all subcommands and appended to the flags of the | ||||
| // subcommand to work around issue and provide --login and --output: | ||||
| @@ -81,6 +88,11 @@ var AllDefaultFlags = append([]cli.Flag{ | ||||
| 	&RemoteFlag, | ||||
| }, LoginOutputFlags...) | ||||
|  | ||||
| // IssuePRFlags defines flags that should be available on issue & pr listing flags. | ||||
| var IssuePRFlags = append([]cli.Flag{ | ||||
| 	&StateFlag, | ||||
| }, AllDefaultFlags...) | ||||
|  | ||||
| // initCommand returns repository and *Login based on flags | ||||
| func initCommand() (*Login, string, string) { | ||||
| 	var login *Login | ||||
|   | ||||
| @@ -28,7 +28,7 @@ var CmdIssues = cli.Command{ | ||||
| 		&CmdIssuesReopen, | ||||
| 		&CmdIssuesClose, | ||||
| 	}, | ||||
| 	Flags: AllDefaultFlags, | ||||
| 	Flags: IssuePRFlags, | ||||
| } | ||||
|  | ||||
| // CmdIssuesList represents a sub command of issues to list issues | ||||
| @@ -37,13 +37,7 @@ var CmdIssuesList = cli.Command{ | ||||
| 	Usage:       "List issues of the repository", | ||||
| 	Description: `List issues of the repository`, | ||||
| 	Action:      runIssuesList, | ||||
| 	Flags: append([]cli.Flag{ | ||||
| 		&cli.StringFlag{ | ||||
| 			Name:        "state", | ||||
| 			Usage:       "Filter by issue state (all|open|closed)", | ||||
| 			DefaultText: "open", | ||||
| 		}, | ||||
| 	}, AllDefaultFlags...), | ||||
| 	Flags:       IssuePRFlags, | ||||
| } | ||||
|  | ||||
| func runIssues(ctx *cli.Context) error { | ||||
|   | ||||
							
								
								
									
										48
									
								
								cmd/pulls.go
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								cmd/pulls.go
									
									
									
									
									
								
							| @@ -24,15 +24,11 @@ var CmdPulls = cli.Command{ | ||||
| 	Aliases:     []string{"pull", "pr"}, | ||||
| 	Usage:       "List open pull requests", | ||||
| 	Description: `List open pull requests`, | ||||
| 	ArgsUsage:   "[<pull index>]", | ||||
| 	Action:      runPulls, | ||||
| 	Flags: append([]cli.Flag{ | ||||
| 		&cli.StringFlag{ | ||||
| 			Name:        "state", | ||||
| 			Usage:       "Filter by PR state (all|open|closed)", | ||||
| 			DefaultText: "open", | ||||
| 		}, | ||||
| 	}, AllDefaultFlags...), | ||||
| 	Flags:       IssuePRFlags, | ||||
| 	Subcommands: []*cli.Command{ | ||||
| 		&CmdPullsList, | ||||
| 		&CmdPullsCheckout, | ||||
| 		&CmdPullsClean, | ||||
| 		&CmdPullsCreate, | ||||
| @@ -40,6 +36,44 @@ var CmdPulls = cli.Command{ | ||||
| } | ||||
|  | ||||
| func runPulls(ctx *cli.Context) error { | ||||
| 	if ctx.Args().Len() == 1 { | ||||
| 		return runPullDetail(ctx, ctx.Args().First()) | ||||
| 	} | ||||
| 	return runPullsList(ctx) | ||||
| } | ||||
|  | ||||
| // CmdPullsList represents a sub command of issues to list pulls | ||||
| var CmdPullsList = cli.Command{ | ||||
| 	Name:        "ls", | ||||
| 	Usage:       "List pull requests of the repository", | ||||
| 	Description: `List pull requests of the repository`, | ||||
| 	Action:      runPullsList, | ||||
| 	Flags:       IssuePRFlags, | ||||
| } | ||||
|  | ||||
| func runPullDetail(ctx *cli.Context, index string) error { | ||||
| 	login, owner, repo := initCommand() | ||||
|  | ||||
| 	idx, err := argToIndex(index) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	pr, _, err := login.Client().GetPullRequest(owner, repo, idx) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	// TODO: use glamour once #181 is merged | ||||
| 	fmt.Printf("#%d %s\n%s created %s\n\n%s\n", pr.Index, | ||||
| 		pr.Title, | ||||
| 		pr.Poster.UserName, | ||||
| 		pr.Created.Format("2006-01-02 15:04:05"), | ||||
| 		pr.Body, | ||||
| 	) | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func runPullsList(ctx *cli.Context) error { | ||||
| 	login, owner, repo := initCommand() | ||||
|  | ||||
| 	state := gitea.StateOpen | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Norwin
					Norwin