oed-cli 常用命令解析

返回 README

这是一份命令速查表。oed 没有固定的子命令列表,下面列出的服务名(cve、meeting、quickissue 等)和操作名都是运行时从网关发现的,随时可能新增;速查表里的条目是当前已验证可用的一批,完整列表以 oed services 的实时输出为准。

全局命令

命令 作用
oed --help 列出当前从网关发现的全部服务及一句话简介
oed --version 打印版本号
oed info 网关快照:services_total、缓存状态、社区信息
oed services 完整服务列表(JSON 数组),逐个给出 service_name、title、description
oed schema <service> 打印该服务完整的 OpenAPI 3.x 规范

发现服务和操作

oed 不内置命令表,所有子命令都是从 OpenAPI schema 现场推导出来的:

命令 作用
oed <service> --help 列出该服务下的全部操作名(operation_id)
oed <service> <operation> --help 列出该操作的方法、路径、每个参数对应的 --flag、是否必填
oed schema <service>.<operation> 只打印该操作对应的 schema 片段

例如 oed quickissue listIssues --help 会把 org、repo、sig、state、label 等二十来个 query 参数逐个列成 --org、--repo、--sig……不用去翻接口文档背参数名。

调用参数怎么传

场景 写法
一般的 query / path 参数 直接用 --help 里列出的 --<kebab-case> flag,例如 --cve-id CVE-2019-10082
一次性传一堆 query / path 参数 --params '{"key":"value", ...}',只覆盖 query/path,不会写进请求体
POST 请求体(has_body: true 的操作) --json '{"keyword":"...", "pageSize":10}';请求体字段以 --help 输出里的 body_required_fields 为准
只想看请求会发成什么样,不真的访问网络 加 --dry-run,输出里的 url、query、body 就是实际会发送的内容

POST 操作如果把请求体字段误传进 --params,会拿到 error="body_fields_via_params"(退出码 1);这时改用 --json 重新传即可。

缓存管理

命令 作用
oed cache show 查看缓存路径、大小、年龄、TTL
oed cache refresh 丢弃 10 分钟 TTL,强制重新拉取发现数据
oed cache clear 删除缓存文件(不会动 auth.json 或 tokens/)

登录和认证

命令 作用
oed login(= oed auth login) RFC 8628 设备码流程登录 openEuler oneid
oed login --manual 从 TTY 手动粘贴令牌
oed auth status 查看当前令牌是否有效、存储后端、服务允许列表
oed auth token <bearer> [--cookie "k=v"] 直接写入令牌,适合 Agent / CI
oed auth logout 清除已存储的 oneid 令牌
oed ag login [--token <pat>] [--no-verify] 存储 AtomGit 个人访问令牌
oed ag login --status 只查是否已配置令牌,不访问网络
oed ag logout 清除已存储的 AtomGit 令牌

详见 oneid 登录 和 AtomGit(ag)认证。

退出码

退出码 含义
0 成功
1 用户错误(参数错误、请求体字段传错位置、服务不在允许列表等)
2 网络错误(网关不可达、WAF 拦截)
3 上游错误(网关或后端服务返回错误,含未授权 401)
4 未找到(资源不存在、spec_missing)

按需求查命令

下表把常见需求直接对应到验证过的真实命令,每一条都在 调用场景示例 里有完整输出可以对照。

需求 命令
看有哪些服务可用 oed services
看某个服务有哪些操作 oed <service> --help
看某个操作需要哪些参数 oed <service> <operation> --help
查 CVE 公告 oed cve getSecurityNoticeByCveId --cve-id <cve-id>
按关键词找有 PR 活动的 SIG 组 oed quickissue listPullSigs --keyword <关键词>
看全量 SIG 名称列表 oed search searchSigName
看某个 SIG 名下的仓库 oed quickissue listRepos --sig <sig-name>
看某个 SIG 的例会记录 oed meeting listSigMeetings --gn <sig-name>
按日期查会议 oed meeting listMeetings --date <YYYY-MM-DD>
查某个软件包在哪些 openEuler 版本上有制品 oed easysoftware queryRpmEulerVersions --name <pkg-name>
按 pkgId 查软件包详情(下载地址、安装方法) oed easysoftware searchRPMPkg --pkg-id <pkg-id>
查某个仓库的 Issue 列表 oed quickissue listIssues --repo <org/repo> --state open
查某个仓库的 PR 列表 oed quickissue listPulls --repo <org/repo>
拉取某个 PR 门禁失败的 CI 日志 oed CI getPRCILogs --arch <arch> --repo <repo> --pr <jenkins-build-no>
论坛最新话题 oed forum listLatestTopics --per-page <n>
社区统一搜索 oed search multisearchDocByKeyword --json '{"keyword":"...","lang":"zh"}'
登录 oneid oed login
查看登录状态 oed auth status
存 AtomGit 个人访问令牌 oed ag login
强制刷新发现缓存 oed cache refresh