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."
fiUso 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."
fichmod +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)--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}`
});