API Reference
search

Production Readiness Gate

Antes de promover sua integração de homologação para produção, o gate confere 5 sinais em paralelo (etapas de homologação aprovadas, probe diário contra a API Iterpec, auditoria do seu repositório, trilha de sessão da última execução e relatório de smoke do seu CI) e devolve uma decisão única ready: true|false com score 0–100 e grade A–F. Use no CI para bloquear deploy automaticamente.

1. Obtenha seu token de workspace

Solicite em comercial@iterpec.com um token wsk_* vinculado ao seu CID. O mesmo token autentica os endpoints MCP, GraphQL do catálogo e o gate de produção.

2. Endpoint público

GET /api/public/production-readiness · auth Authorization: Bearer wsk_* · query repo=owner/name (opcional) e fail_if_not_ready=1 (retorna HTTP 409 quando não pronto).

# 1) Verifica o estado (HTTP 200 sempre que o token é válido)
curl -fsS \
  -H "Authorization: Bearer $ITERPEC_WORKSPACE_TOKEN" \
  "https://iterpec.com/api/public/production-readiness?repo=acme/booking"

# 2) Modo "bloquear deploy": retorna HTTP 409 quando ready=false
curl -fsS \
  -H "Authorization: Bearer $ITERPEC_WORKSPACE_TOKEN" \
  "https://iterpec.com/api/public/production-readiness?fail_if_not_ready=1&repo=acme/booking"

Resposta:

{
  "ok": true,
  "report": {
    "workspace_cid": "acme",
    "ready": true,
    "score": 92,
    "grade": "A",
    "blockers": [],
    "warnings": ["audit > 30d — rode analyze_github_integration_deep"],
    "gates": {
      "steps":         { "status": "ok",   "detail": "7/7 etapas aprovadas" },
      "live_probe":    { "status": "ok",   "detail": "0 falhas consecutivas, p95=412ms" },
      "audit":         { "status": "ok",   "detail": "grade A, 0 critical, 1 high" },
      "session_trace": { "status": "ok",   "detail": "última trilha ready_for_production" },
      "smoke":         { "status": "ok",   "detail": "última execução passed há 14h" }
    }
  }
}

3. GitHub Actions (template pronto)

Crie o secret ITERPEC_WORKSPACE_TOKEN em Settings → Secrets and variables → Actions e copie o YAML abaixo. Também disponível em /templates/iterpec-production-gate.github-actions.yml.

# .github/workflows/iterpec-production-gate.yml
name: iterpec-production-gate

on:
  pull_request: { branches: [main] }
  push:         { branches: [main] }

jobs:
  gate:
    runs-on: ubuntu-latest
    steps:
      - name: Check Iterpec readiness
        env:
          TOKEN: ${{ secrets.ITERPEC_WORKSPACE_TOKEN }}
        run: |
          set -e
          curl -fsS \
            -H "Authorization: Bearer $TOKEN" \
            "https://iterpec.com/api/public/production-readiness?fail_if_not_ready=1&repo=${{ github.repository }}" \
            | tee readiness.json
          jq -r '.report.score' readiness.json
      - uses: actions/upload-artifact@v4
        if: always()
        with: { name: iterpec-readiness, path: readiness.json }

4. Badge para o README

Endpoint SVG público: cole o markdown abaixo no seu README — o GitHub Camo cacheia a imagem e o token nunca aparece em texto para quem visualiza o repo.

![iterpec readiness](https://iterpec.com/api/public/production-readiness/badge.svg?token=YOUR_WSK_TOKEN&repo=acme/booking)
Exemplos:ready

5. O que cada gate verifica

  • steps (35%) — todas as etapas obrigatórias (search, conditions, booking, detail, cancel, multi_room) com decisão approve.
  • live_probe (25%) — probe diário 11:00 UTC contra o domínio ativo, < 2 falhas consecutivas.
  • audit (15%) — última analyze_github_integration com grade A/B e 0 critical.
  • session_trace (15%) — última trilha multi-turno marcada ready_for_production.
  • smoke (10%) — último relatório do seu CI passed nos últimos 30 dias.

Hard blockers: qualquer etapa rejected ou ausente, probe com 2+ falhas seguidas. Soft warnings degradam o score mas não bloqueiam.