Primeiro Repositorio

Guia completo para configurar um novo projeto no GitOps.

Pre-requisitos

  • Repositorio privado no GitHub (gh repo create --private)
  • Token GitHub com permissao de leitura em releases
  • Pelo menos um release publicado (nao draft)

1. Criar .gitops.yml

Na raiz do repositorio, crie o arquivo .gitops.yml:

version: 2.0

artifacts:
  - source: meu-app
    destination: meu-app
    type: binary
    latest: true
  - source: meu-app
    destination: meu-app.zip
    type: zip
    latest: true
  - source: meu-app
    destination: latest/meu-app
    type: binary
    latest: true
  - source: meu-app
    destination: v{version}/meu-app
    type: binary
    versioned: true
  - source: meu-app
    destination: v{version}/meu-app.zip
    type: zip
    versioned: true

docs:
  - source: README.md
    destination: docs/latest/README.md
    latest: true
  - source: README.md
    destination: docs/v{version}/README.md
    versioned: true

storage:
  provider: b2
  bucket: ccs-systems
  folder_name: meu-app
  delivery_url: https://meu-app.ccs.systems

publish:
  auto_latest: true
  preserve_versions: true
  max_versions: 10

metadata:
  project: meu-app
  type: client
  language: rust

Commit e push:

git add .gitops.yml
git commit -m "chore: adiciona .gitops.yml"
git push origin dev

2. Registrar no GitOps

Via Dashboard

  1. Acesse app.gitops.borlot.com.br
  2. Faca login
  3. Clique em Adicionar Repositorio
  4. Digite devborlot/meu-app
  5. Confirme

Via MCP (Claude Code)

> Adiciona devborlot/meu-app no gitops

O MCP usara a tool add_repository.

Via API

curl -X POST https://sys.gitops.borlot.com.br/monitor/repositories \
  -H "X-API-Key: SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"repository": "devborlot/meu-app"}'

3. Configurar Webhook

Para processamento instantaneo:

curl -X POST https://sys.gitops.borlot.com.br/monitor/webhooks/devborlot/meu-app \
  -H "X-API-Key: SUA_API_KEY"

Isso cria um webhook no GitHub que envia eventos de release para o GitOps.

4. Publicar Release

Siga o fluxo padrao de release:

# Build e commit em dev
cargo build --release
cp target/release/meu-app .
git add meu-app
git commit -m "build: meu-app v1.0.0"
git push origin dev

# Merge para main e tag
git checkout main
git merge dev --no-ff -m "release: v1.0.0"
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin main --tags

# Criar GitHub Release
zip meu-app.zip meu-app
gh release create v1.0.0 --title "v1.0.0" --notes "Release inicial" ./meu-app.zip

# Voltar para dev
git checkout dev && git merge main && git push origin dev

5. Verificar Processamento

Via Dashboard

Acesse a pagina do repositorio para ver o status do release.

Via CLI

# Verificar binario
curl -sI https://meu-app.ccs.systems/meu-app | head -5

# Baixar e testar
curl -sL https://meu-app.ccs.systems/meu-app -o meu-app
chmod +x meu-app
./meu-app --version

Via MCP

> Faz um dry-run do devborlot/meu-app

Troubleshooting

Se o release nao foi processado:

  1. Verifique se e published (nao draft)
  2. Verifique o .gitops.yml na tag do release
  3. Reprocesse manualmente: POST /monitor/reprocess/devborlot/meu-app
  4. Veja os logs: docker logs gitops_borlot_com_br | grep meu-app
By Borlot.com.br on 06/03/2026