Repository navigation
Teste confere as permissões do docs.yml - #307
Conversation
O docs.yml só roda em push na main e em workflow_dispatch, então nenhum check de PR lia as permissões dele. O teste afirma que o workflow só concede contents: read, que o job deploy tem exatamente pages: write e id-token: write, e que nenhum outro job escreve (#268).
Bloco de evidênciaCaso concreto na base (
|
| Mutação | Esperado | Obtido |
|---|---|---|
sem o bloco permissions do deploy |
reprova o teste do deploy |
reprova |
deploy sem id-token: write |
reprova o teste do deploy |
reprova |
deploy com contents: write a mais |
reprova o teste do deploy |
reprova |
build com permissions: {contents: write} |
reprova o teste dos outros jobs ({'build': ['contents']}) |
reprova |
build com permissions: write-all |
reprova o teste dos outros jobs ({'build': ['write-all']}) |
reprova |
workflow com contents: write |
reprova o teste do nível do workflow | reprova |
workflow com pages: write a mais |
reprova o teste do nível do workflow | reprova |
docs.yml atual |
passa | 3 passed |
Suíte
Comando: uv run --extra dev --extra all --extra search-all --extra polars --extra excel --extra codex pytest -q -p no:cacheprovider --cov=dataframeit --cov-branch --cov-report=term-missing
| passados | pulados | falhas | cobertura | |
|---|---|---|---|---|
base ec332656 |
2192 | 0 | 0 | 99,96% (codex.py 723-724) |
ramo 42cc28ac |
2195 | 0 | 0 | 99,96% (codex.py 723-724) |
As duas linhas descobertas são o except ImportError do import opcional do openai_codex, que não roda com o extra codex instalado, e aparecem igual na base; o PR não toca src/. ruff format --check, ruff check, ty check, vulture e deptry src saem com 0 no ramo. import yaml sob uv run --extra dev dá PyYAML 6.0.3, que vem pelo pre-commit; o deptry do CI examina só src/ e não acusa o import do teste.
O simplificador de diff passou sobre o ramo antes do commit e não fez corte.
Risco: baixo, só um teste novo e uma linha de CHANGELOG; desfazer com o revert do squash.
SHA revisado: 42cc28a
…cs-yml # Conflicts: # CHANGELOG.md
O
docs.ymlsó roda empushnamain, filtrado porpaths, e emworkflow_dispatch, e nenhum job dotests.ymllia as permissões dele. Um PR que tirassepages: writeouid-token: writedo jobdeploypassava em todos os checks, inclusive nozizmor, e o deploy só falhava depois do merge.O que muda:
tests/test_permissoes_do_docs_yml.pylê odocs.ymlcomyaml.safe_load, pelo caminho relativo à raiz do repositório (Path(__file__)), e afirma:contents: read;deploytem exatamentepages: writeeid-token: write;deploytem escopo de escrita, contando o atalhowrite-all; obuildentra nessa conferência, e o teste exige que ele exista para não passar vazio.O teste roda no job
unite nos demais que rodam a suíte. O PyYAML chega ao extradevpelopre-commit(6.0.3 no ambiente local, também com--resolution lowest-direct, porque opre-commitsempre o exige), e odeptrysó examinasrc/, então nenhuma dependência nova foi declarada.Entrada em
Adicionadono CHANGELOG, porque muda o que reprova um PR de quem contribui.Closes #268