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

`darnit validate` crashes on openssf-baseline.toml summarising levels

Aperta Adatta ai principianti
#589 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
cli

Direzione di ricerca

Leggi packages/darnit/src/darnit/cli.py, in particolare cmd_validate e il raggruppamento per livello vicino alla riga 416; confrontalo con il modo in cui darnit audit legge i livelli dai tag. Riproduci il problema usando openssf-baseline.toml, incluso nel progetto, seguendo i passaggi dell’issue. Il lavoro è completato quando darnit validate termina con codice di uscita 0 e stampa la suddivisione per livello dei controlli il cui livello è memorizzato nei tag.

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

Descrizione

needs triage

Description

darnit validate on the bundled openssf-baseline.toml reports the framework as valid, then raises a TypeError and exits non-zero. The level breakdown in cmd_validate (packages/darnit/src/darnit/cli.py) groups controls by ctrl.level. The baseline TOML now keeps the level in tags, so ctrl.level is None for those controls, and sorted() fails when the keys mix int and None. darnit audit reads the level from tags and reports it correctly.

Steps to Reproduce

  1. pip install "darnit-mcp==0.1.1" "darnit-core==0.1.1" "darnit-baseline==0.1.1"
  2. darnit validate "$(python -c 'import importlib.resources as r; print(r.files("darnit_baseline") / "openssf-baseline.toml")')"

Expected Behavior

Exit 0 with the per-level breakdown.

Actual Behavior

INFO: Framework 'openssf-baseline' is valid
INFO:   Controls: 66
INFO:   Adapters: 0
Traceback (most recent call last):
  File "/opt/darnit/lib/python3.13/site-packages/darnit/cli.py", line 416, in cmd_validate
    logger.info(f"  By level: {', '.join(f'L{k}={v}' for k, v in sorted(by_level.items()))}")
TypeError: '<' not supported between instances of 'int' and 'NoneType'

Environment

  • darnit version: 0.1.1
  • Python version: 3.13
  • OS: Debian trixie (Docker)

Additional Context

We hit this running darnit in Alpha-Omega's scrutineer, which bundles it in its runner image for an OpenSSF Baseline compliance scan, with darnit validate as a build-time smoke test. The same code is still on main at 24a4fed. Reading the level as ctrl.level or ctrl.tags.get("level") there would match what the audit path does.

Lingua principale
Python
Stelle
22
Fork
27
Merge medio
2g 28m
PR unite (30g)
40

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 darnitdevorg/darnit

Tutte le issue di darnitdevorg/darnit

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.