Pular para conteúdo

AUR-572: ajuda completa por subcomando e parecer sem "No issues found." com inconclusivo

O problema

Os tutoriais do AUR-563 mediram duas coisas: aurumcode --help listava só review e fix embora sbom, sign e xbom existam (e xbom --help imprimia uma linha de uso sem flags); e um SAST inconclusivo ainda imprimia No issues found., com o estado real só nas linhas SAST ... inconclusive (achados 3 e 5 de docs/specs/AUR-563.md).

O que muda

  • cmd/aurumcode/subcommands.go: um registro único (subcommands(): nome, resumo, exemplo, construtor do FlagSet, função). O despacho de run, o --help geral e o --help de cada subcomando leem esse registro; não há lista paralela. Cada subcomando declara suas flags em um construtor (newReviewFlagSet, newFixFlagSet, newSBOMFlagSet, newSignFlagSet, newXBOMFlagSet) usado pelo parser e pela ajuda, que imprime PrintDefaults do próprio FlagSet: a ajuda não pode listar flag que o parser não conhece nem esquecer uma que ele conhece.
  • Rodapé comum da ajuda de cada subcomando: Configuração e referência: docs/configuration.md (seção <título>), gerado uma vez em printSubcommandHelp a partir do campo docSection do registro (sem lista paralela).
  • parseSubcommandFlags unifica a convenção: --help pedido é stdout e saída 0; erro de uso é stderr e saída 2.
  • internal/render.NoFindingsLine(reason): No issues found. só quando o motivo de inconclusivo é vazio; senão Sem achados nas fontes concluídas; inconclusivo: <motivos>. O motivo é gate.Result.Reason, que já junta SAST, Dependency-Track, analysis_data, cobertura parcial e provedor (mesmo vocabulário do gate), sem repetição.
  • docs/getting-started.md e docs/configuration.md documentam as duas coisas.

Fora do escopo: flags novas; formato do parecer além dessa frase; o caminho --pr (o parecer publicado já traz o estado inconclusivo próprio).

Prova

tests/acceptance/AUR-572.sh all: AC-001 (a ajuda geral lista os cinco; cada <sub> --help traz toda flag do FlagSet, comparada por VisitAll), AC-002 (SAST inconclusivo -> sem No issues found. e com a frase; caso limpo mantém a frase), AC-003 (AUR-561..564.sh AC-003 verdes), AC-002-MUT-001 (voltar a imprimir No issues found. com inconclusivo reprova AC-002).