ragfica.pages.dev

Como integrar validação de CPF em pipeline GitHub Actions

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.

Pré-requisitos

Passo 1: Criar script de validação de CPF

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()

Passo 2: Configurar GitHub Actions

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

Passo 3: Adicionar arquivo de CPFs para validação

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

Exemplo Prático

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

Conclusão

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.