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.
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.
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" }
}
}
}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 }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.
approve.analyze_github_integration com grade A/B e 0 critical.ready_for_production.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.