CLI Corporativo
~30 min Avançado Parte 5

CLI Corporativo

Claude Code em pipelines CI/CD, automação com scripts, pre-commit hooks e integrações corporativas — leve a IA para dentro do seu fluxo de engenharia.

O verdadeiro poder do Claude Code aparece quando ele sai do uso interativo e passa a integrar pipelines automatizados. Revisões de código em PRs, análises de segurança noturnas, relatórios de sprint gerados automaticamente — tudo isso é possível com o CLI do Claude Code.

Claude Code em pipelines CI/CD

Claude Code pode ser integrado diretamente em workflows do GitHub Actions. O caso de uso mais comum é o code review automático em pull requests:

# .github/workflows/claude-review.yml
name: Code Review com Claude

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Code Review com Claude
        run: |
          CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
          claude --output-format json \
            "Revise estes arquivos modificados: $CHANGED
             Aponte: bugs, problemas de segurança, violações de estilo.
             Retorne JSON: { issues: [], score: 0-10 }" \
            > review.json
          cat review.json
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

Automação com scripts

Para além do CI/CD, Claude Code pode ser usado em scripts shell para automações recorrentes. Exemplo de script de revisão diária automatizada:

#!/bin/bash
# daily-review.sh — revisão diária automatizada

CHANGED=$(git diff --name-only HEAD~1)
echo "Arquivos modificados: $CHANGED"

claude --output-format json "
  Analise estes arquivos modificados: $CHANGED
  Verifique:
  1. Bugs potenciais
  2. Violações de estilo
  3. Problemas de segurança
  Retorne JSON: { issues: [], score: 0-10 }
" > review-$(date +%Y%m%d).json

# Extrair score e notificar se baixo
SCORE=$(cat review-$(date +%Y%m%d).json | jq '.score')
if [ "$SCORE" -lt 7 ]; then
  echo "Score abaixo de 7 — verificar review."
fi

Uso em pre-commit hooks

Integrar Claude Code aos hooks do git permite verificação automática antes de cada commit, evitando que código problemático entre no repositório:

#!/bin/bash
# .git/hooks/pre-commit

STAGED=$(git diff --cached --name-only)

if echo "$STAGED" | grep -q "\.ts$"; then
  echo "Verificando TypeScript com Claude..."
  result=$(claude --output-format json \
    "Verifique erros de TypeScript em: $STAGED" 2>/dev/null)
  issues=$(echo $result | jq '.issues | length')

  if [ "$issues" -gt 0 ]; then
    echo "Claude encontrou $issues problemas. Verifique antes de commitar."
    echo $result | jq '.issues[]'
    exit 1
  fi
  echo "Nenhum problema encontrado."
fi
Para que o hook funcione, certifique-se de que ele tem permissão de execução: chmod +x .git/hooks/pre-commit

Flags essenciais para uso não-interativo

Flag Descrição Quando usar
--output-format json Retorna a resposta em JSON estruturado Scripts que processam a saída
--no-auto-accept Requer confirmação para cada ação Ambientes de produção com supervisão
--dangerously-skip-permissions Executa sem pedir confirmações CI/CD totalmente automatizado
--no-update-check Não verifica atualizações Ambientes offline ou air-gapped
--model Seleciona o modelo a usar Otimização de custo em CI/CD

Integrações corporativas

Exemplos de integrações com ferramentas presentes no dia a dia de times de engenharia:

# Integração com Jira — analisa e implementa ticket
claude "analise o ticket PROJ-123 e implemente a solução descrita"

# Notificação no Slack após análise
claude --output-format text \
  "resuma as mudanças do deploy de hoje em bullet points" | \
  curl -s -X POST $SLACK_WEBHOOK \
    -H 'Content-type: application/json' \
    -d "{\"text\": \"$(cat)\"}"

# Relatório semanal de atividade
claude "gere um relatório semanal das modificações do git desta semana,
  agrupado por área funcional" > relatorio-$(date +%V).md

# Análise de performance de bundle
claude --output-format json \
  "analise este bundle-stats.json e aponte os maiores contribuidores para o tamanho" \
  < bundle-stats.json | jq '.recommendations'

Segurança em ambientes corporativos

Ao usar Claude Code em produção e pipelines corporativos, siga estas boas práticas de segurança:

# NUNCA exponha API keys em scripts ou no repositório.
# Use um secrets manager:
ANTHROPIC_API_KEY=$(aws secretsmanager get-secret-value \
  --secret-id claude-api-key \
  --query SecretString \
  --output text)

# GitHub Actions: use secrets do repositório
# ${{ secrets.ANTHROPIC_API_KEY }}

# GitLab CI: use CI/CD variables
# $ANTHROPIC_API_KEY

# Vault (HashiCorp):
ANTHROPIC_API_KEY=$(vault kv get -field=api_key secret/claude)
Nunca use --dangerously-skip-permissions em workflows que operam em repositórios de produção sem uma camada de revisão humana no pipeline.

Casos de uso reais em empresas

Code Review em PRs

Análise automática de cada pull request: bugs, segurança, cobertura de testes, violações de padrão.

Análise de Segurança

Varredura noturna do codebase buscando vulnerabilidades, secrets expostos e dependências desatualizadas.

Migração de Legado

Refatoração de codebases legadas em escala — renomeação, modernização de padrões, adição de tipos.

Geração de Docs

Documentação automática de APIs, changelogs e relatórios de sprint gerados a partir do histórico git.

Alertas Inteligentes

Notificações no Slack/Teams quando análises detectam problemas acima de um threshold de severidade.

Exercício: script de revisão automática em CI

Objetivo

Criar um workflow do GitHub Actions que rode Claude Code em todo pull request, analise os arquivos modificados e poste um comentário no PR com o resultado da revisão em formato JSON.

Solução

# .github/workflows/claude-pr-review.yml
name: Claude PR Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Run Review
        id: review
        run: |
          CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD)
          claude --output-format json \
            "Revise: $CHANGED. Retorne { score: 0-10, issues: [], summary: '' }" \
            > review.json
          echo "score=$(jq -r '.score' review.json)" >> $GITHUB_OUTPUT
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

      - name: Post Comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const review = JSON.parse(fs.readFileSync('review.json'));
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: `**Claude Review — Score: ${review.score}/10**\n\n${review.summary}`
            });

Recursos

0%