api/queries_actions.go — WorkflowRunJob 结构体
api/queries_actions.go
WorkflowRunJob
gc actions job list <run-id> -R owner/repo --json 返回的 job 列表中 job_id 字段为空,导致用户无法从 job list 输出获取 job view / job log 所需的 job ID。
gc actions job list <run-id> -R owner/repo --json
job_id
job list
job view
job log
# 1. job list 返回 job_id 为空 $ gc actions job list 80406e9273d0421fb86afb20983ce01b -R wangjing_127/MindIE-SD --json [ { "job_id": "", // ← 空值 "name": "codecheck", "status": "COMPLETED", ... }, ... ] # 2. job view 需要 job_id,但无法从 job list 获取 $ gc actions job view 80406e9273d0421fb86afb20983ce01b 475d39a5724441708876685418e8ca91 -R wangjing_127/MindIE-SD # 用 API 原始返回的 id 字段值才能工作
GitCode Actions v8 API GET /api/v8/repos/{owner}/{repo}/actions/runs/{run_id}/jobs 返回的 job 对象使用 id 字段(不是 job_id):
GET /api/v8/repos/{owner}/{repo}/actions/runs/{run_id}/jobs
id
{ "id": "475d39a5724441708876685418e8ca91", "name": "codecheck", "status": "COMPLETED", ... }
但 CLI 的 WorkflowRunJob 结构体映射为 json:"job_id":
json:"job_id"
type WorkflowRunJob struct { JobID string `json:"job_id"` // 应为 json:"id" Name string `json:"name"` ... }
字段名不匹配导致 JobID 始终为空字符串。
JobID
将 WorkflowRunJob.JobID 的 json tag 从 "job_id" 改为 "id"。
WorkflowRunJob.JobID
"job_id"
"id"
同时检查 WorkflowRunJobStep 结构体中的 job_run_id 字段是否也有类似问题(API 原始返回中 step 也有 job_run_id 字段,需确认是否一致)。
WorkflowRunJobStep
job_run_id
经代码审查,结构体映射是正确的(WorkflowRunJob.ID 的 json tag 是 "id" 不是 "job_id"),JSON 输出也正确包含 id 字段。
WorkflowRunJob.ID
真正的问题是 job list 文本输出(pkg/output/jobs.go 的 printSimple / printTable)没有显示 job.ID 字段,导致用户无法从文本输出获取 job ID 来传给 job view / job log。
pkg/output/jobs.go
printSimple
printTable
job.ID
修复方案:在 printSimple 和 printTable 输出中增加 job ID 列。
原始 issue 中关于结构体映射的描述有误,以此评论为准。
位置
api/queries_actions.go—WorkflowRunJob结构体现象
gc actions job list <run-id> -R owner/repo --json返回的 job 列表中job_id字段为空,导致用户无法从job list输出获取job view/job log所需的 job ID。复现
# 1. job list 返回 job_id 为空 $ gc actions job list 80406e9273d0421fb86afb20983ce01b -R wangjing_127/MindIE-SD --json [ { "job_id": "", // ← 空值 "name": "codecheck", "status": "COMPLETED", ... }, ... ] # 2. job view 需要 job_id,但无法从 job list 获取 $ gc actions job view 80406e9273d0421fb86afb20983ce01b 475d39a5724441708876685418e8ca91 -R wangjing_127/MindIE-SD # 用 API 原始返回的 id 字段值才能工作根因
GitCode Actions v8 API
GET /api/v8/repos/{owner}/{repo}/actions/runs/{run_id}/jobs返回的 job 对象使用id字段(不是job_id):{ "id": "475d39a5724441708876685418e8ca91", "name": "codecheck", "status": "COMPLETED", ... }但 CLI 的
WorkflowRunJob结构体映射为json:"job_id":type WorkflowRunJob struct { JobID string `json:"job_id"` // 应为 json:"id" Name string `json:"name"` ... }字段名不匹配导致
JobID始终为空字符串。修复建议
将
WorkflowRunJob.JobID的 json tag 从"job_id"改为"id"。同时检查
WorkflowRunJobStep结构体中的job_run_id字段是否也有类似问题(API 原始返回中 step 也有job_run_id字段,需确认是否一致)。影响
job list输出获取job_id,导致job view和job log命令难以使用环境与关联
标签