Validate CI environment JSON objects before accessing their fields
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
从第 536 行附近 tools/ci/common.py 中的环境变量解码逻辑开始,然后查找针对 CI 配置和无效输入的测试。检查 WAVE_RELEASE_INPUTS 和 WAVE_CI_MATRIX 如何解码,以及现有的 CI configuration error/退出码 2 约定如何接受测试。完成标准是:无效的 JSON 对象类型会报错,且不产生 traceback 或 runner/provisioning 命令;同时,缺失变量、{} 和格式错误的 JSON 保持指定行为。
由索引模型根据 Issue 内容生成。
描述
Problem
tools.ci.common.main parses WAVE_RELEASE_INPUTS and immediately calls .items() without checking its JSON type. A valid JSON array, string or null produces a Python traceback instead of a configuration error. WAVE_CI_MATRIX also coerces falsy non-objects to an empty object before its type check.
Starting point: environment decoding.
Reproduction
Executed at 7a8361d5c10ec3e66fc9fe4a5801622afb6bf631 on Linux amd64 with Python 3.14:
WAVE_RELEASE_INPUTS='[]' python3 -m tools.ci.test --target linux-amd64 --report-json /tmp/wave-invalid-config.json
Observed: exit 1 and AttributeError: 'list' object has no attribute 'items' at the inputs.items() expression. No build or provisioning stage ran.
Scope
Validate both environment values as JSON objects before runner/stage work. Reuse the existing CI configuration error/exit-2 convention. Keep omitted values and explicit empty objects supported. Difficulty: easy.
Completion criteria
- Arrays, strings, numbers, booleans and null fail with an actionable configuration error, without a traceback.
- Missing variables and
{}remain valid; malformed JSON is still rejected. - Focused tests assert no commands/provisioning occur for invalid inputs, including falsy non-objects.
- 主要语言
- Rust
- 星标
- 56
- 派生
- 21
- 平均合并
- 4 小时 19 分钟
- 30 天内合并 PR
- 49
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
wavefnd/Wave 的其他 Issue
-
enhancement good first issue needs testing
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
bug good first issue
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
bug good first issue
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
documentation enhancement good first issue
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
enhancement good first issue
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
相似的 Issue
-
documentation good first issue
难度 2/5 半天 新手友好度 72/100
sujithputta02/Esapay#13 ·
-
needs triage
难度 2/5 1-3 小时 新手友好度 72/100
topgrade-rs/topgrade#2419 ·
维护者通常 1 天内回复
-
review-bot
难度 2/5 1-3 小时 新手友好度 72/100
midagedev/bloomery#318 · 1 条评论 ·
维护者通常 1 天内回复
-
area/infra good first issue type/bug
难度 2/5 1-3 小时 新手友好度 60/100
cristim/AztecCraft#92 ·
维护者通常 1 天内回复
-
Standalone Unix updater reports success when curl fails (`curl | sh` masks the exit status); Windows path is unaffected可能已有人在做 @akhil9tiet 今天认领。 未关闭bug CLI windows-os
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复