🚧 代码解耦

This commit is contained in:
徐晓伟 2023-10-04 23:10:40 +08:00
parent 6ea316b4d7
commit 58fc100eaa
2 changed files with 48 additions and 36 deletions

38
main.go
View File

@ -2,8 +2,8 @@ package main
import ( import (
"fmt" "fmt"
"github.com/xanzy/go-gitlab"
"github.com/xuxiaowei-com-cn/git-go/buildinfo" "github.com/xuxiaowei-com-cn/git-go/buildinfo"
"github.com/xuxiaowei-com-cn/gitlab-go/projects"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
"log" "log"
"os" "os"
@ -52,41 +52,7 @@ func main() {
Version: versionInfo(), Version: versionInfo(),
Usage: Description, Usage: Description,
Commands: []*cli.Command{ Commands: []*cli.Command{
{ projects.Projects(),
Name: "projects",
Aliases: []string{"p"},
Usage: "项目 API中文文档https://docs.gitlab.cn/jh/api/projects.html",
Action: func(context *cli.Context) error {
var token = context.String("token")
var baseUrl = context.String("baseUrl")
if baseUrl == "" {
baseUrl = "https://jihulab.com/api/v4"
}
gitClient, err := gitlab.NewClient(token, gitlab.WithBaseURL(baseUrl))
if err != nil {
return err
}
opt := &gitlab.ListProjectsOptions{}
projects, response, err := gitClient.Projects.ListProjects(opt)
fmt.Printf("Response StatusCode: %d\n", response.Response.StatusCode)
if err != nil {
return err
}
for index, project := range projects {
fmt.Printf("Index: %d,\t ID: %d,\t Path: %s,\t Name: %s\n", index, project.ID, project.Path, project.Name)
}
return nil
},
Flags: []cli.Flag{
&cli.StringFlag{
Name: "token",
Usage: "your_access_token",
},
},
},
}, },
} }

46
projects/projects.go Normal file
View File

@ -0,0 +1,46 @@
package projects
import (
"fmt"
"github.com/urfave/cli/v2"
"github.com/xanzy/go-gitlab"
)
// Projects 项目 API https://docs.gitlab.cn/jh/api/projects.html
func Projects() *cli.Command {
return &cli.Command{
Name: "projects",
Aliases: []string{"p"},
Usage: "项目 API中文文档https://docs.gitlab.cn/jh/api/projects.html",
Action: func(context *cli.Context) error {
var token = context.String("token")
var baseUrl = context.String("baseUrl")
if baseUrl == "" {
baseUrl = "https://jihulab.com/api/v4"
}
gitClient, err := gitlab.NewClient(token, gitlab.WithBaseURL(baseUrl))
if err != nil {
return err
}
opt := &gitlab.ListProjectsOptions{}
projects, response, err := gitClient.Projects.ListProjects(opt)
fmt.Printf("Response StatusCode: %d\n", response.Response.StatusCode)
if err != nil {
return err
}
for index, project := range projects {
fmt.Printf("Index: %d,\t ID: %d,\t Path: %s,\t Name: %s\n", index, project.ID, project.Path, project.Name)
}
return nil
},
Flags: []cli.Flag{
&cli.StringFlag{
Name: "token",
Usage: "your_access_token",
},
},
}
}