Validar CPFs de forma automática em um pipeline de CI/CD evita que dados incorretos sejam processados ou commitados, garantindo a integridade dos dados desde o início. Integrar essa validação em GitHub Actions permite que você execute o check antes de cada merge, poupando tempo e reduzindo retrabalho.
cpfs.txt)Primeiro, crie um script Python que valide CPFs usando o algoritmo padrão dos dígitos verificadores. O script lerá os CPFs de um arquivo e retornará quais são válidos ou inválidos.
def valida_cpf(cpf: str) -> bool:
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
# Cálculo do primeiro dígito verificador
soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf[:9]))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
# Cálculo do segundo dígito verificador
soma = sum(int(digito) * (11 - i) for i, digito in enumerate(cpf[:10]))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
return str(digito1) + str(digito2) == cpf[-2:]
def main():
with open('cpfs.txt', 'r') as f:
cpfs = f.read().splitlines()
for cpf in cpfs:
if valida_cpf(cpf):
print(f"CPF {cpf} é válido")
else:
print(f"CPF {cpf} é inválido")
exit(1)
if __name__ == "__main__":
main()
Crie um arquivo de workflow em .github/workflows/valida-cpf.yml para executar o script em cada push ou pull request.
name: Validação de CPF
on: [push, pull_request]
jobs:
valida-cpf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configurar Python
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Instalar dependências
run: |
pip install -r requirements.txt
- name: Executar validação de CPF
run: |
python valida_cpf.py
Crie um arquivo cpfs.txt na raiz do repositório com um CPF por linha. O script lerá este arquivo e validará cada entrada.
12345678900
11111111111
40812132851
| CPF de Entrada | Válido? | Motivo |
|---|---|---|
| 12345678900 | Não | Dígitos verificadores incorretos |
| 11111111111 | Não | Sequência inválida (todos dígitos iguais) |
| 40812132851 | Sim | CPF válido segundo algoritmo |
Com este método, você automatiza a validação de CPFs em seu pipeline do GitHub Actions, garantindo que apenas dados corretos prossigam no fluxo de desenvolvimento. A integração é rápida, confiável e evita retrabalho causado por dados inválidos.