Pular para conteúdo

Forgejo — forja Git (sem CI)

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-12

Aplica-se a: todo perfil.

O Forgejo (fonte.xadm.biz) é a forja Git da X-Adm. O CI/CD roda no GitHub Actions (0027); o Forgejo não roda Actions. Ele é:

  • git origin dos repositórios, com push-mirror para gustavoxadm/<repo> no GitHub, de onde o CI lê;
  • edição web de Markdown por quem não usa Git;
  • registro de pacotes Maven (as libs do xadm-commons) e de imagens (fonte.xadm.biz/xadm/<slug>);
  • host da Release de artefato de app cliente offline.

Fluxo de trabalho

  • master é o branch estável e implantável — em todo repo.
  • Branches de trabalho: feature/nome-curto, fix/issue-123.
  • Mudança nasce numa issue → branch → commits → pull request → revisão → merge. A doc da mudança vai no mesmo PR.

Quem não usa Git edita o Markdown pela interface web (botão de editar → commit ou PR); o commit chega ao GitHub pelo push-mirror, e o pipeline.yml valida.

has_actions=false — passo obrigatório da migração

O Forgejo lê .forgejo/, .gitea/ e .github/: com o Actions ligado ele tentaria rodar o pipeline.yml e falharia. Desligue por repo, via API:

PATCH https://fonte.xadm.biz/api/v1/repos/xadm/<repo>
Authorization: token <FORGEJO_FULL_TOKEN>   # token repo-admin; o token do registro (write:package) dá 403
{ "has_actions": false }

Não afeta o push-mirror.

Deploy

O deploy não passa pelo Forgejo: o pipeline.yml chama o control-plane (Deploy). Os recursos que o Coolify ainda builda do git em auto-deploy estão listados lá.

Release de artefato de app cliente offline

App servido online tem a proveniência na imagem do registro. App cliente (jar ou apk baixável, sem deploy) publica a Release no Forgejo (tag + notas do CHANGELOG + asset) pelo job release-forgejo do pipeline.yml (opt-in), que roda no GitHub e chama a API do Forgejo com o RELEASE_TOKEN (escopo write:repository, secret do repo no GitHub).

Aviso de falha do CI

O aviso de falha é a notificação nativa do GitHub — e-mail ao autor do commit quando um run falha; nada no YAML.

Checklist de PR

  • [ ] Gate da stack verde (./gradlew check, flutter test…)
  • [ ] Mudou contrato ou fluxo público → doc atualizada no mesmo PR
  • [ ] Frontmatter válido nos .md novos ou alterados
  • [ ] Artefato gerado (HTML de doc, relatório) não commitado