已关闭
feat(actions): 支持官方 Actions 插件目录及使用说明查询 #551
wangwq129创建于 8月29日关闭于 9月2日
aflyingto
9月1日 评论:
9月1日 评论:
验证记录
- 当前版本或分支: main @ d6889cb
- 复现命令:
./gc actions --help(确认无 plugin 子命令);rg -i "plugin" api/queries_actions.go(确认无 plugin 查询函数) - 实际结果: actions 子命令树仅注册 run/job/artifact/runner/runner-group/runner-set/yaml/workflow,无 plugin;api 包无任何 plugin 端点函数;api-doc submodule 不含 actions/plugins 端点(openapi.json 无 plugin/web-api/projects.*actions 引用)
- 结论: 功能确认不存在,需求有效,进入开发
实现方案(已与用户确认)
- 端点 host
web-api.gitcode.com独立于默认api.gitcode.com,现有 Client 的 SSRF 防护(rawURL仅允许c.host)会阻止该 host - 方案:在 api 包新增
RawRESTToHost方法,对web-api.gitcode.com做白名单放行,保持对其他 host 的 SSRF 防护 - 两个端点:
GET /api/v2/projects/{project}/actions/plugins/all(list)、GET /api/v2/projects/{project}/actions/plugins/detail?name={name}(view)
关联
- Actions 能力跟踪:issue 517


aflyingto
9月1日 评论:
9月1日 评论:
开发进度
- 根因: 需新增
gc actions plugin list/view命令查询web-api.gitcode.com上的 Actions 插件目录 - 主要修改:
api/client.go: 新增RawRESTToHost方法(host 白名单,SSRF 安全)api/queries_actions_plugins.go:ListActionsPlugins、ViewActionsPlugin+ 灵活解析pkg/cmd/actions/plugin/{list,view}: 两个只读命令(--json、分页、-R)docs/COMMANDS.md: 文档同步
- 测试:
go test ./...全部通过;表格驱动 + testutil mock - 实际命令验证:
infra-test/gctest1上 host 可达、端点存在、认证有效(HTTP 418 因 infra-test 无 Actions 插件) - 安全影响: Token 经 Bearer header 注入;RawRESTToHost 白名单仅放行已知 GitCode host;gitleaks 通过
- 风险或未覆盖项: api-doc 不含该端点文档;真实数据路径待平台仓库验证
- 关联 PR: PR 520


状态
🚧 开发中
本地开发中。
背景
GitCode Actions 插件市场已提供官方插件目录及插件使用说明接口,但
gitcode-cli当前缺少对应的 typed command。使用者需要通过原始 API 才能查询可用插件和插件 README,不利于日常使用和脚本集成。提案
新增以下两个只读命令:
gitcode actions plugin list查询指定仓库当前可用的官方 Actions 插件。
GET https://web-api.gitcode.com/api/v2/projects/{project}/actions/plugins/all--limit、--page、--per-page、--paginate和--jsongitcode actions plugin view <plugin-name>查询指定插件的元信息、版本及 Markdown 使用说明。
GET https://web-api.gitcode.com/api/v2/projects/{project}/actions/plugins/detail?name={plugin_name}vision_content[]中各版本的 README--json原样输出完整详情响应验收标准
关联