Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Validate CI environment JSON objects before accessing their fields

Aperta Adatta ai principianti
#856 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
ci-cd

Direzione di ricerca

Inizia dalla decodifica dell’ambiente in tools/ci/common.py, intorno alla riga 536, poi individua i test mirati per la configurazione CI e gli input non validi. Verifica come vengono decodificati WAVE_RELEASE_INPUTS e WAVE_CI_MATRIX e come viene testata la convenzione esistente CI configuration error/codice di uscita 2. Il lavoro è completato quando i tipi di oggetto JSON non validi causano un errore senza traceback né comandi del runner o di provisioning, mentre le variabili mancanti, {} e il JSON malformato mantengono il comportamento specificato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.
Lingua principale
Rust
Stelle
56
Fork
21
Merge medio
4h 19m
PR unite (30g)
49

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di wavefnd/Wave

Tutte le issue di wavefnd/Wave

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.