From eb81cd4ca39129e5e9779ed42e36253a4b0d5cbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=99=93=E4=BC=9F?= Date: Thu, 5 Oct 2023 01:16:43 +0800 Subject: [PATCH] =?UTF-8?q?:construction:=20JobsArtifacts=20=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E4=BA=A7=E7=89=A9=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constant/common.go | 2 + job_artifacts/job_artifacts.go | 70 ++++++++++++++++++++++++++++++++++ main.go | 2 + 3 files changed, 74 insertions(+) create mode 100644 job_artifacts/job_artifacts.go diff --git a/constant/common.go b/constant/common.go index 99faff8..3c8132a 100644 --- a/constant/common.go +++ b/constant/common.go @@ -3,8 +3,10 @@ package constant const ( Token = "token" BaseUrl = "baseUrl" + Request = "request" BaseUrlDefault = "https://gitlab.com/api/v4" Id = "id" + JobId = "jobId" Sort = "sort" SortDefault = "desc" ) diff --git a/job_artifacts/job_artifacts.go b/job_artifacts/job_artifacts.go new file mode 100644 index 0000000..f2c70de --- /dev/null +++ b/job_artifacts/job_artifacts.go @@ -0,0 +1,70 @@ +package job_artifacts + +import ( + "fmt" + "github.com/urfave/cli/v2" + "github.com/xanzy/go-gitlab" + "github.com/xuxiaowei-com-cn/gitlab-go/constant" +) + +// JobsArtifacts 作业产物 API https://docs.gitlab.cn/jh/api/job_artifacts.html +func JobsArtifacts() *cli.Command { + return &cli.Command{ + Name: "job-artifacts", + Aliases: []string{"ja"}, + Usage: "作业产物 API,中文文档:https://docs.gitlab.cn/jh/api/job_artifacts.html", + Action: func(context *cli.Context) error { + var baseUrl = context.String(constant.BaseUrl) + if baseUrl == "" { + baseUrl = constant.BaseUrlDefault + } + var token = context.String(constant.Token) + var id = context.String(constant.Id) + var jobId = context.Int(constant.JobId) + + gitClient, err := gitlab.NewClient(token, gitlab.WithBaseURL(baseUrl)) + if err != nil { + return err + } + + fmt.Printf("Delete JobId: %d Artifacts\n", jobId) + response, err := gitClient.Jobs.DeleteArtifacts(id, jobId) + fmt.Printf("Response StatusCode: %d\n", response.Response.StatusCode) + if err != nil { + return err + } + + return nil + }, + Flags: []cli.Flag{ + &cli.StringFlag{ + Name: constant.BaseUrl, + EnvVars: []string{"CI_API_V4_URL"}, + Usage: "实例地址,例如:https://gitlab.xuxiaowei.com.cn/api/v4", + }, + &cli.StringFlag{ + Name: constant.Token, + Usage: "your_access_token", + }, + &cli.StringFlag{ + Name: constant.Request, + Usage: "请求方式", + }, + &cli.StringFlag{ + Name: constant.Sort, + Value: constant.SortDefault, + //Usage: "按照 asc 或者 desc(默认:desc)对流水线排序", + }, + &cli.StringFlag{ + Name: constant.Id, + Usage: "项目 ID 或 URL 编码的路径", + Required: true, + }, + &cli.StringFlag{ + Name: constant.JobId, + Usage: "作业 ID", + Required: true, + }, + }, + } +} diff --git a/main.go b/main.go index 9a49b50..3059330 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "fmt" "github.com/xuxiaowei-com-cn/git-go/buildinfo" + "github.com/xuxiaowei-com-cn/gitlab-go/job_artifacts" "github.com/xuxiaowei-com-cn/gitlab-go/jobs" "github.com/xuxiaowei-com-cn/gitlab-go/pipelines" "github.com/xuxiaowei-com-cn/gitlab-go/projects" @@ -57,6 +58,7 @@ func main() { projects.Projects(), pipelines.Pipelines(), jobs.Jobs(), + job_artifacts.JobsArtifacts(), }, }