提交 33fc5302 编写于 作者: 徐晓伟's avatar 徐晓伟

项目 API: 列出所有项目: 增加参数

上级 6fb1f377
......@@ -373,6 +373,7 @@ COPYRIGHT:
--per-page value 每页列出的项目数(默认:20;最大:100),中文文档 https://docs.gitlab.cn/jh/api/rest/index.html#pagination (default: 20)
--search value 根据 title 和 description 搜索议题。
--search-namespaces 匹配搜索条件时包括上级命名空间。默认为 false。 (default: false)
--order-by value 返回按 id、name、path、created_at、updated_at、last_activity_at 或 similarity 字段排序的项目。repository_size、storage_size、packages_size 或 wiki_size 字段只允许管理员使用。similarity(引入于 14.1 版本)仅在搜索 时可用,并且仅限于当前用户所属的项目。默认是created_at。 (default: "created_at")
--help, -h show help
```
......
......@@ -91,3 +91,11 @@ func PerPage() cli.Flag {
Usage: "每页列出的项目数(默认:20;最大:100),中文文档 https://docs.gitlab.cn/jh/api/rest/index.html#pagination",
}
}
func OrderBy(usage string) cli.Flag {
return &cli.StringFlag{
Name: constant.OrderBy,
Value: "created_at",
Usage: usage,
}
}
......@@ -93,14 +93,6 @@ func MyReactionEmoji() cli.Flag {
}
}
func OrderBy() cli.Flag {
return &cli.StringFlag{
Name: constant.OrderBy,
Value: "created_at",
Usage: "返回根据 created_at、due_date、label_priority、milestone_due、popularity、priority、relative_position、title、updated_at 或 weight 排序的议题。默认值是 created_at。",
}
}
func Scope() cli.Flag {
return &cli.StringFlag{
Name: constant.Scope,
......
......@@ -10,6 +10,10 @@ import (
"log"
)
const (
OrderBy = "返回根据 created_at、due_date、label_priority、milestone_due、popularity、priority、relative_position、title、updated_at 或 weight 排序的议题。默认值是 created_at。"
)
// Issues 议题 API https://docs.gitlab.cn/jh/api/issues.html
func Issues() *cli.Command {
return &cli.Command{
......@@ -19,7 +23,7 @@ func Issues() *cli.Command {
Flags: append(flag.Common(), flag.Page(), flag.PerPage(), flag.PrintJson(), flag.PrintTime(),
flag.AssigneeUsername(), flag.AuthorId(), flag.AuthorUsername(), flag.Confidential(),
flag.DueDate(), flag.Iids(), flag.In(), flag.IssueType(), flag.IterationId(), flag.Milestone(),
flag.MilestoneId(), flag.MyReactionEmoji(), flag.OrderBy(), flag.Scope(), flag.Search(),
flag.MilestoneId(), flag.MyReactionEmoji(), flag.OrderBy(OrderBy), flag.Scope(), flag.Search(),
flag.Sort(), flag.State(), flag.WithLabelsDetails(),
flag.CreatedAfter(), flag.CreatedBefore()),
Subcommands: []*cli.Command{
......@@ -29,7 +33,7 @@ func Issues() *cli.Command {
Flags: append(flag.CommonTokenRequired(), flag.Page(), flag.PerPage(), flag.PrintJson(), flag.PrintTime(),
flag.AssigneeUsername(), flag.AuthorId(), flag.AuthorUsername(), flag.Confidential(),
flag.DueDate(), flag.Iids(), flag.In(), flag.IssueType(), flag.IterationId(), flag.Milestone(),
flag.MilestoneId(), flag.MyReactionEmoji(), flag.OrderBy(), flag.Scope(), flag.Search(),
flag.MilestoneId(), flag.MyReactionEmoji(), flag.OrderBy(OrderBy), flag.Scope(), flag.Search(),
flag.Sort(), flag.State(), flag.WithLabelsDetails(),
flag.CreatedAfter(), flag.CreatedBefore()),
Action: func(context *cli.Context) error {
......
......@@ -8,18 +8,22 @@ import (
"log"
)
const (
OrderBy = "返回按 id、name、path、created_at、updated_at、last_activity_at 或 similarity 字段排序的项目。repository_size、storage_size、packages_size 或 wiki_size 字段只允许管理员使用。similarity(引入于 14.1 版本)仅在搜索时可用,并且仅限于当前用户所属的项目。默认是created_at。"
)
// Projects 项目 API https://docs.gitlab.cn/jh/api/projects.html
func Projects() *cli.Command {
return &cli.Command{
Name: "project",
Aliases: []string{"projects", "p"},
Usage: "项目 API,中文文档:https://docs.gitlab.cn/jh/api/projects.html",
Flags: append(flag.Common(), flag.Sort(), flag.Page(), flag.PerPage(), flag.Search(), flag.SearchNamespaces()),
Flags: append(flag.Common(), flag.Sort(), flag.Page(), flag.PerPage(), flag.Search(), flag.SearchNamespaces(), flag.OrderBy(OrderBy)),
Subcommands: []*cli.Command{
{
Name: "list",
Usage: "列出所有项目",
Flags: append(flag.Common(), flag.Sort(), flag.Page(), flag.PerPage(), flag.Search(), flag.SearchNamespaces()),
Flags: append(flag.Common(), flag.Sort(), flag.Page(), flag.PerPage(), flag.Search(), flag.SearchNamespaces(), flag.OrderBy(OrderBy)),
Action: func(context *cli.Context) error {
var baseUrl = context.String(constant.BaseUrl)
var token = context.String(constant.Token)
......@@ -28,6 +32,7 @@ func Projects() *cli.Command {
var perPage = context.Int(constant.PerPage)
var search = context.String(constant.Search)
var searchNamespaces = context.Bool(constant.SearchNamespaces)
var orderBy = context.String(constant.OrderBy)
gitClient, err := gitlab.NewClient(token, gitlab.WithBaseURL(baseUrl))
if err != nil {
......@@ -42,6 +47,7 @@ func Projects() *cli.Command {
Sort: &sort,
Search: &search,
SearchNamespaces: &searchNamespaces,
OrderBy: &orderBy,
}
projects, response, err := gitClient.Projects.ListProjects(opt)
log.Printf("Response StatusCode: %d\n", response.Response.StatusCode)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册