From 0aed327265343ad093c4063007a104c359cf858b Mon Sep 17 00:00:00 2001 From: ThomasTDS Date: Sun, 20 Sep 2026 11:32:34 -0300 Subject: [PATCH] Configura gate de cobertura no Codecov MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Duas metas em codecov.yml: código novo/alterado em cada PR (patch) precisa vir 100% coberto, e a cobertura total do projeto (project) não pode cair mais de 1 ponto percentual — margem pequena só pra não travar por arredondamento. Complementa o pip-audit, que já bloqueia por segurança; agora também bloqueia por qualidade de teste. --- README.md | 3 +++ codecov.yml | 9 +++++++++ 2 files changed, 12 insertions(+) create mode 100644 codecov.yml diff --git a/README.md b/README.md index a2063e6..8d0dcd5 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ qa-api-python/ ├── conftest.py # Fixtures (contexto por cenário) e captura de evidência de falha ├── pyproject.toml # Dependências, scripts e configuração (pytest, ruff, mypy) ├── .pre-commit-config.yaml # Hooks de pre-commit (ruff, mypy) +├── codecov.yml # Metas de cobertura que bloqueiam o merge no Codecov ├── LICENSE └── README.md # Este arquivo ``` @@ -91,6 +92,8 @@ O CI roda `mypy`, `ruff check`, `ruff format --check` e `pip-audit` antes dos te Cada execução de `pytest` já gera cobertura de `api/` e `models/` (código dos API Clients e dos schemas), impressa no terminal e também em `reports/coverage.xml` (não versionado). No CI esse arquivo é enviado para o [Codecov](https://codecov.io/gh/ThomasTDS/qa-api-python), que mantém o histórico e mostra o badge no topo deste README. +O Codecov também bloqueia o merge do PR (configuração em `codecov.yml`) se: o código novo/alterado no PR (`patch`) não vier 100% coberto, ou se a cobertura total do projeto (`project`) cair mais de 1 ponto percentual — uma margem pequena, só pra não travar por causa de arredondamento. + Um hook de pre-commit (framework `pre-commit`, instalado via `pre-commit install` após o `pip install`) roda `ruff --fix` e `ruff format` nos arquivos staged, e também `mypy .` no projeto inteiro, antes de cada commit — então a maioria dos problemas de lint, formatação ou tipo já é pega localmente antes de chegar no CI. ### Rodar contra outra URL diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..a81732b --- /dev/null +++ b/codecov.yml @@ -0,0 +1,9 @@ +coverage: + status: + project: + default: + target: auto + threshold: 1% + patch: + default: + target: 100%