Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徐晓伟工作室
gitlab-go
提交
3b2e2087
G
gitlab-go
项目概览
徐晓伟工作室
/
gitlab-go
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-go
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3b2e2087
编写于
10月 17, 2023
作者:
徐晓伟
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
作业产物 API: 获取(下载)作业产物
上级
69e328f9
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
56 addition
and
11 deletion
+56
-11
README.md
README.md
+7
-6
constant/common.go
constant/common.go
+1
-0
flag/flag.go
flag/flag.go
+8
-0
job_artifacts/job_artifacts.go
job_artifacts/job_artifacts.go
+40
-5
未找到文件。
README.md
浏览文件 @
3b2e2087
...
...
@@ -325,18 +325,19 @@ COPYRIGHT:
gitlab-go job-artifact command [command options] [arguments...]
COMMANDS:
get 获取
作业产物(未完成)
get 获取
(下载)作业产物
download, dl 下载产物归档文件(未完成)
delete, rm 删除作业产物
delete-project, delete-projects, rm-p 删除项目产物
help, h Shows a list of commands or help for one command
OPTIONS:
--base-url value 实例地址,例如:https://gitlab.xuxiaowei.com.cn/api/v4 (default: "https://gitlab.com/api/v4") [%CI_API_V4_URL%]
--token value your_access_token
--id value 项目 ID 或 URL 编码的路径
--job-id value 作业 ID
--help, -h show help
--base-url value 实例地址,例如:https://gitlab.xuxiaowei.com.cn/api/v4 (default: "https://gitlab.com/api/v4") [%CI_API_V4_URL%]
--token value your_access_token
--id value 项目 ID 或 URL 编码的路径
--job-id value 作业 ID
--artifacts-name value 保存产物名称(保存到系统磁盘的名称) (default: "artifacts.zip")
--help, -h show help
```
-
[
job - 作业 API
](
https://docs.gitlab.cn/jh/api/jobs.html
)
...
...
constant/common.go
浏览文件 @
3b2e2087
...
...
@@ -8,6 +8,7 @@ const (
Repository
=
"repository"
TagName
=
"tag-name"
JobId
=
"job-id"
ArtifactsName
=
"artifacts-name"
Sort
=
"sort"
SortDefault
=
"desc"
Page
=
"page"
...
...
flag/flag.go
浏览文件 @
3b2e2087
...
...
@@ -92,6 +92,14 @@ func JobId(required bool) cli.Flag {
}
}
func
ArtifactsName
()
cli
.
Flag
{
return
&
cli
.
StringFlag
{
Name
:
constant
.
ArtifactsName
,
Value
:
"artifacts.zip"
,
Usage
:
"保存产物名称(保存到系统磁盘的名称)"
,
}
}
func
Page
()
cli
.
Flag
{
return
&
cli
.
IntFlag
{
Name
:
constant
.
Page
,
...
...
job_artifacts/job_artifacts.go
浏览文件 @
3b2e2087
...
...
@@ -6,7 +6,9 @@ import (
"github.com/xanzy/go-gitlab"
"github.com/xuxiaowei-com-cn/gitlab-go/constant"
"github.com/xuxiaowei-com-cn/gitlab-go/flag"
"io"
"log"
"os"
)
// JobsArtifacts 作业产物 API https://docs.gitlab.cn/jh/api/job_artifacts.html
...
...
@@ -15,16 +17,49 @@ func JobsArtifacts() *cli.Command {
Name
:
"job-artifact"
,
Aliases
:
[]
string
{
"job-artifacts"
,
"ja"
},
Usage
:
"作业产物 API,中文文档:https://docs.gitlab.cn/jh/api/job_artifacts.html"
,
Flags
:
append
(
flag
.
Common
(),
flag
.
Id
(
false
),
flag
.
JobId
(
false
)),
Flags
:
append
(
flag
.
Common
(),
flag
.
Id
(
false
),
flag
.
JobId
(
false
)
,
flag
.
ArtifactsName
()
),
Subcommands
:
[]
*
cli
.
Command
{
{
Name
:
"get"
,
Usage
:
"获取
作业产物(未完成)
"
,
Flags
:
append
(
flag
.
Common
(),
flag
.
Id
(
true
),
flag
.
JobId
(
false
)),
Usage
:
"获取
(下载)作业产物
"
,
Flags
:
append
(
flag
.
Common
(),
flag
.
Id
(
true
),
flag
.
JobId
(
true
),
flag
.
ArtifactsName
(
)),
Action
:
func
(
context
*
cli
.
Context
)
error
{
log
.
Printf
(
"获取作业产物"
)
var
baseUrl
=
context
.
String
(
constant
.
BaseUrl
)
var
token
=
context
.
String
(
constant
.
Token
)
var
id
=
context
.
String
(
constant
.
Id
)
var
jobId
=
context
.
Int
(
constant
.
JobId
)
var
artifactsName
=
context
.
String
(
constant
.
ArtifactsName
)
return
fmt
.
Errorf
(
"未完成"
)
gitClient
,
err
:=
gitlab
.
NewClient
(
token
,
gitlab
.
WithBaseURL
(
baseUrl
))
if
err
!=
nil
{
return
err
}
artifactsReader
,
response
,
err
:=
gitClient
.
Jobs
.
GetJobArtifacts
(
id
,
jobId
)
log
.
Printf
(
"Response StatusCode: %d
\n
"
,
response
.
Response
.
StatusCode
)
if
err
!=
nil
{
return
err
}
log
.
Printf
(
"Get Job Artifacts End"
)
// 读取构件数据
artifactsData
,
err
:=
io
.
ReadAll
(
artifactsReader
)
if
err
!=
nil
{
return
err
}
log
.
Printf
(
"Read All Reader End"
)
// 将构件数据保存到文件
err
=
os
.
WriteFile
(
artifactsName
,
artifactsData
,
0644
)
if
err
!=
nil
{
return
err
}
log
.
Printf
(
"Write File End"
)
return
nil
},
},
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录