Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Validate CI environment JSON objects before accessing their fields

未关闭 适合新手
#856 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
78/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
python
领域
ci-cd

调研方向

从第 536 行附近 tools/ci/common.py 中的环境变量解码逻辑开始,然后查找针对 CI 配置和无效输入的测试。检查 WAVE_RELEASE_INPUTS 和 WAVE_CI_MATRIX 如何解码,以及现有的 CI configuration error/退出码 2 约定如何接受测试。完成标准是:无效的 JSON 对象类型会报错,且不产生 traceback 或 runner/provisioning 命令;同时,缺失变量、{} 和格式错误的 JSON 保持指定行为。

由索引模型根据 Issue 内容生成。

描述

bug good first 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

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

wavefnd/Wave 的其他 Issue

查看 wavefnd/Wave 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。