Pular para conteúdo

AUR-604 — Changelog em três modos e doc humana

Medido

  • changelog_check.mode aceitava só off (padrão) e required; qualquer outro valor era recusado com "use required ou off".
  • A entrada sugerida só aparecia quando o check reprovava (required). Não havia como pedir só a sugestão, sem travar a PR.
  • As seções de changelog e de auditoria/SARIF em docs/configuration.md e os dois tutoriais tinham parágrafos longos, histórico de cards e jargão interno.
  • O site MkDocs não renderizava Mermaid, e o teste do site recusa qualquer requisição externa (o tema buscaria o Mermaid num CDN).

O que mudou

arquivo responsabilidade
internal/config/changelog_check.go ChangelogMode (off, suggest, required) com sinônimos (desligado, sugerir, obrigatorio); ParseChangelogMode recusa o resto listando os três; EffectiveMode, Required, Active.
cmd/aurumcode/changelog_sides.go evaluateChangelog devolve veredito, regra e modo (changelogEvaluation); a regra existe em suggest e required.
cmd/aurumcode/cmd_changelog.go Em suggest, entrada ausente ou fraca: sem entrada útil (...), sugestão e exitChangelogSuggested (0). required sem mudança.
cmd/aurumcode/changelog_suggestion.go O bloco do resumo do job e do parecer usa o texto do modo.
cmd/aurumcode/pr_changelog_suggestion.go review --pr põe a sugestão no parecer em suggest e em required (Active).
internal/i18n/catalog.yml changelog.suggestion.intro_suggest em pt-BR e en.
mkdocs.yml, docs/javascripts/mermaid.min.js pymdownx.superfences com a cerca mermaid; Mermaid 11.4.1 servido pelo próprio site (sha256 no comentário do mkdocs.yml), sem CDN.
docs/configuration.md Seções de changelog e de auditoria/SARIF reescritas: o que é, quando usar, como ligar, exemplo, o que acontece se falhar, com diagrama.
docs/tutorials/changelog.md, docs/tutorials/auditoria-sarif.md Texto curto, diagrama, caso 7 modo-sugerir.
demo/tutoriais/changelog Caso modo-sugerir (base repo-exemplo/base-sugerir com mode: sugerir); linha em tests/fixtures/tutorials/mapa.tsv.

O modo continua vindo da base da PR e, com política central que declara a seção, da política. Em suggest, um arquivo de changelog ilegível (indeterminado) não recebe sugestão e também sai 0.

Provas

tests/acceptance/AUR-604.sh (cópia de go.mod go.sum cmd internal pkg):

id prova última linha
AC-001 TestAUR604AC001SuggestModeSuggestsAndPasses: suggest e sugerir saem 0 com a sugestão colável no log e no resumo; política central em suggest decide sobre repositório required; o parecer --pr traz "Suggestion only". AUR-604/AC-001/pass
AC-002 TestAUR604AC002RequiredModeUnchanged: exit 1, sugestão e texto de required. AUR-604/AC-002/pass
AC-003 TestAUR604AC003OffOrAbsentDoesNothing: off e seção ausente saem 0 sem sugestão nem bloco no parecer. AUR-604/AC-003/pass
AC-004 TestAUR604AC004UnknownModeRefused: talvez recusado com off, suggest ou required; sinônimos mapeados. AUR-604/AC-004/pass
AC-005 grep nas docs: os três modos, mode: suggest, saída modo-sugerir, --auditoria, --sarif, Code scanning, exemplo JSON, cerca mermaid e superfences no mkdocs.yml. AUR-604/AC-005/pass
MUT-001 exitChangelogSuggested = 1 AUR-604/MUT-001/rejected (suggest mode failed the check)
MUT-002 parecer só com Required() AUR-604/MUT-002/rejected (suggest mode left the suggestion out of the review body)

Tutorial: AURUMCODE_TUT_IMAGE=aurum-tutoriais:aur604 bash demo/tutoriais/changelog/run.sh all gravou out/modo-sugerir.log com exit_code=0 e RESULTADO: modo sugerir: a PR sem entrada passou e o check trouxe a entrada sugerida; run.sh --check termina em CHECK OK.