Closed
feat(actions): 支持 查询指定 Runner Group 下的所有 K8S Runner API #437
aflyingtoAdd on Jul 9Closed at Jul 13
aflyingto
Jul 13 Comments:
Jul 13 Comments:
验证记录
- 当前版本或分支: main
- 复现命令:
gc api --method GET "/api/v8/orgs/infra-test/actions/runner-groups/nonexistent-rg/runner-sets?per_page=10&page=1" - 实际结果: HTTP 400 Runner组不存在 — API 端点可达
- API 规格:
GET /api/v8/orgs/{org}/actions/runner-groups/{runner_group_id}/runner-sets,返回{total_count, runner_sets: [{id, runner_group_id, name, status, required_labels}]} - 结论: 需求有效,API 可达,进入修复


背景
GitCode API 文档 2.0.0 已提供 Actions API。该 Issue 用于跟踪 gitcode-cli 对此接口的支持设计与实现。
API 摘要
GET/api/v8/orgs/{org}/actions/runner-groups/{runner_group_id}/runner-setsget_api_v8_orgs_{org}_actions_runner_groups_{runner_group_id}_runners_setspipeline-v8falseRequest Parameters
orgrunner_group_idaccess_tokenkeywordpageper_pageRequest Body
无。
Responses
200
application/jsonapplication/json schema
{ "type": "object", "properties": { "total_count": { "type": "integer", "description": "RunnerSet 总数" }, "runner_sets": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "RunnerSet ID" }, "runner_group_id": { "type": "string", "description": "Runner Group ID" }, "name": { "type": "string", "description": "名称" }, "status": { "type": "string", "description": "状态,using 使用中 wait_release 释放中" }, "required_labels": { "type": "array", "items": { "type": "object", "properties": { "label_name": { "type": "string", "description": "标签名称" }, "label_value": { "type": "string", "description": "标签值" }, "label_color": { "type": "string", "description": "标签颜色" } }, "description": "必需标签" }, "description": "必需标签" }, "min_runner_size": { "type": "integer", "description": "最小 Runner 数量" }, "max_runner_size": { "type": "integer", "description": "最大 Runner 数量" }, "limit_cpu": { "type": "integer", "description": "CPU 限制" }, "limit_memory": { "type": "integer", "description": "内存限制" }, "image_name": { "type": "string", "description": "镜像名称" }, "user_k8s_cluster_id": { "type": "string", "description": "用户 K8S 集群 ID" }, "user_k8s_cluster_name": { "type": "string", "description": "用户 K8S 集群名称" }, "user_k8s_resource_type": { "type": "string", "description": "用户 K8S 资源类型" }, "user_k8s_cluster_namespace": { "type": "string", "description": "用户 K8S 命名空间" }, "user_k8s_url": { "type": "string", "description": "用户 K8S 地址" }, "create_time": { "type": "integer", "description": "创建时间" }, "update_time": { "type": "integer", "description": "更新时间" }, "user_id": { "type": "string", "description": "用户 ID" }, "user_name": { "type": "string", "description": "用户名" }, "user_project_id": { "type": "string", "description": "用户项目 ID" } }, "description": "RunnerSet 列表" }, "description": "RunnerSet 列表" } }, "description": "com.gitcode.openapi.pojo.action.runner.BizK8sRunnerSetListResp" }原始 OpenAPI Operation
{ "deprecated": false, "description": "", "operationId": "get_api_v8_orgs_{org}_actions_runner_groups_{runner_group_id}_runners_sets", "tags": [ "pipeline-v8" ], "parameters": [ { "name": "org", "in": "path", "description": "组织path", "required": true, "schema": { "type": "string" } }, { "name": "runner_group_id", "in": "path", "description": "", "required": true, "schema": { "type": "string" } }, { "name": "access_token", "in": "query", "description": "", "required": true, "schema": { "type": "string" } }, { "name": "keyword", "in": "query", "description": "关键字过滤", "example": "", "schema": { "type": "string" } }, { "name": "page", "in": "query", "description": "当前页码", "example": 1, "schema": { "type": "integer" } }, { "name": "per_page", "in": "query", "description": "每页的项目数", "example": 10, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "total_count": { "type": "integer", "description": "RunnerSet 总数" }, "runner_sets": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "RunnerSet ID" }, "runner_group_id": { "type": "string", "description": "Runner Group ID" }, "name": { "type": "string", "description": "名称" }, "status": { "type": "string", "description": "状态,using 使用中 wait_release 释放中" }, "required_labels": { "type": "array", "items": { "type": "object", "properties": { "label_name": { "type": "string", "description": "标签名称" }, "label_value": { "type": "string", "description": "标签值" }, "label_color": { "type": "string", "description": "标签颜色" } }, "description": "必需标签" }, "description": "必需标签" }, "min_runner_size": { "type": "integer", "description": "最小 Runner 数量" }, "max_runner_size": { "type": "integer", "description": "最大 Runner 数量" }, "limit_cpu": { "type": "integer", "description": "CPU 限制" }, "limit_memory": { "type": "integer", "description": "内存限制" }, "image_name": { "type": "string", "description": "镜像名称" }, "user_k8s_cluster_id": { "type": "string", "description": "用户 K8S 集群 ID" }, "user_k8s_cluster_name": { "type": "string", "description": "用户 K8S 集群名称" }, "user_k8s_resource_type": { "type": "string", "description": "用户 K8S 资源类型" }, "user_k8s_cluster_namespace": { "type": "string", "description": "用户 K8S 命名空间" }, "user_k8s_url": { "type": "string", "description": "用户 K8S 地址" }, "create_time": { "type": "integer", "description": "创建时间" }, "update_time": { "type": "integer", "description": "更新时间" }, "user_id": { "type": "string", "description": "用户 ID" }, "user_name": { "type": "string", "description": "用户名" }, "user_project_id": { "type": "string", "description": "用户项目 ID" } }, "description": "RunnerSet 列表" }, "description": "RunnerSet 列表" } }, "description": "com.gitcode.openapi.pojo.action.runner.BizK8sRunnerSetListResp" } } }, "headers": {} } }, "security": [], "method": "get", "path": "/api/v8/orgs/{org}/actions/runner-groups/{runner_group_id}/runner-sets", "servers": [ { "url": "https://api.gitcode.com", "description": "正式环境" } ], "securitySchemes": {}, "info": { "title": "GicodeOpenAPI", "description": "", "version": "1.0.0" }, "postman": { "name": "查询指定 Runner Group 下的所有 K8S Runner", "description": { "content": "", "type": "text/plain" }, "url": { "path": [ "api", "v8", "orgs", ":org", "actions", "runner-groups", ":runner_group_id", "runner-sets" ], "host": [ "{{baseUrl}}" ], "query": [ { "disabled": false, "description": { "content": "(Required) ", "type": "text/plain" }, "key": "access_token", "value": "" }, { "disabled": false, "description": { "content": "关键字过滤", "type": "text/plain" }, "key": "keyword", "value": "" }, { "disabled": false, "description": { "content": "当前页码", "type": "text/plain" }, "key": "page", "value": "" }, { "disabled": false, "description": { "content": "每页的项目数", "type": "text/plain" }, "key": "per_page", "value": "" } ], "variable": [ { "disabled": false, "description": { "content": "(Required) 组织path", "type": "text/plain" }, "type": "any", "value": "", "key": "org" }, { "disabled": false, "description": { "content": "(Required) ", "type": "text/plain" }, "type": "any", "value": "", "key": "runner_group_id" } ] }, "header": [ { "key": "Accept", "value": "application/json" } ], "method": "GET" } }初步验收建议
infra-test/*仓库。access_token仅作为 API 参数记录,CLI 优先复用现有认证机制。