gitbeans.com
Lista de espera

Tu código se queda en América Latina. La revisión habla tu idioma.

gitbeans.com es el hosting de código para desarrolladores de América Latina, pensado para proyectos de IA. Git LFS para pesos de modelos, CI compatible con GitHub Actions, revisión automática en español y portugués, y escaneo de la cadena de suministro en cada push.

Construido sobre Forgejo, con servidores en Brasil

$ git remote add origin git@gitbeans.com:tu-org/tu-proyecto.git

Ejemplo de interfaz. Repositorio y personas ficticios.

clinica-andina / historia-clinica-api

feat(auth): registrar intentos fallidos de inicio de sesión #128

Abierto valentina.r quiere integrar 3 commits de feat/log-login en main
ci / pruebas142 pruebas aprobadas en 1m 48s
supply-chain / bumblebeenpm, PyPI y MCP sin hallazgos
revisor / es1 comentario que pide cambios
app/auth/login.py +3 −0
@@ -41,6 +41,9 @@ def autenticar(dni: str, clave: str) -> Sesion:
4141 usuario = repo.buscar_por_dni(dni)
4242 if not usuario or not verificar(clave, usuario.hash):
43+ logger.warning(
44+ f"Inicio de sesión fallido para DNI {dni} a las {ahora()}"
45+ )
revisor-beans bot pide cambios línea 44

DNI completo en el log, en texto plano. Esta línea registra el documento de quien se equivocó de contraseña. Los logs suelen ir a herramientas de observabilidad, se guardan más tiempo que la base de datos y los lee más gente. El DNI identifica directamente a la persona: es un dato personal.

Sugerencia: enmascararlo antes de registrarlo. Para correlacionar intentos, usa los últimos dígitos o un hash con sal guardado fuera del log.

Cambio sugerido
-            f"Inicio de sesión fallido para DNI {dni} a las {ahora()}"+            f"Inicio de sesión fallido para DNI {enmascarar_dni(dni)} a las {ahora()}"

enmascarar_dni("30.123.456") devuelve "**.***.456". La función ya existe en app/util/privacidad.py.

GLM-5.3-Flash · nube privada Beans
4346 raise CredencialesInvalidas()
4447 return sesiones.crear(usuario)

Todo lo que un repositorio de IA necesita, en un solo lugar.

Una forja abierta y liviana con las piezas que los equipos de IA usan a diario: archivos grandes, pipelines, revisión y seguridad de las dependencias.

Git LFS para pesos de modelos

Versiona checkpoints, adaptadores LoRA y datasets junto al código. Los archivos grandes van al almacenamiento LFS, también en Brasil.

CI con la sintaxis de GitHub Actions

Forgejo Runner, derivado de act_runner, entiende jobs, steps y uses tal como ya los escribes. Tus workflows migran con pocos cambios.

Las acciones que dependen de funciones exclusivas de GitHub pueden requerir ajustes.

Revisión automática en español y portugués

En cada pull request, un revisor basado en PR-Agent comenta en tu idioma: errores, datos personales expuestos, pruebas que faltan. Sigue los criterios de los agentes revisores de ECC.

Escaneo de la cadena de suministro

En cada git push, Bumblebee revisa paquetes npm y PyPI y la configuración de servidores MCP contra un catálogo de versiones comprometidas. En las computadoras del equipo cubre también extensiones del editor y del navegador.

Modelos abiertos, sin API externa

La revisión corre con GLM-5.3-Flash o Qwen3-Coder, de pesos abiertos, en la nube privada de Beans Tech. Sin costo de API externa y sin que el código salga de la infraestructura.

Alojado en Brasil

Repositorios, artefactos de CI y archivos LFS en infraestructura propia en territorio brasileño. Una respuesta simple cuando el área legal pregunte dónde está el código.

Qué pasa en cada git push.

El escaneo corre antes que todo. Un paquete comprometido detiene el pipeline y aparece en el pull request con el motivo, para que alguien decida con información.

  1. Llega el push

    Forgejo recibe los commits y los objetos LFS, y dispara los workflows de .forgejo/workflows/.

  2. Se escanean las dependencias

    Bumblebee lee los lockfiles de npm y PyPI y la configuración de servidores MCP, y los compara con un catálogo de paquetes y versiones comprometidos. Lo que coincide bloquea; lo que sale de la política de la organización genera una alerta.

  3. Corre el CI

    Pruebas y builds se ejecutan en Forgejo Runner, compatible con Actions, en máquinas en Brasil.

  4. El revisor comenta

    Si hay un pull request, PR-Agent lee el diff y comenta en tu idioma, en la línea correcta, con sugerencias aplicables.

supply-chain / bumblebee  #312 Ejemplo
$ gitbeans scan --ecosistemas npm,pypi,mcp
  motor: bumblebee · catálogo de exposición actualizado
▸ package-lock.json      412 paquetes
▸ requirements.txt        38 paquetes
▸ .mcp.json                2 servidores

  ok         npm   express@4.21.2
  ok         pypi  fastapi==0.115.6
  ok         pypi  pydantic==2.10.4
  … 447 sin hallazgos

  BLOQUEADO  npm   formatea-rut@1.0.3
             versión presente en el catálogo de paquetes comprometidos
             postinstall descarga y ejecuta un script de un host desconocido

  ALERTA     mcp   servidor "planillas-local"
             no está en la lista de servidores MCP aprobados

✗ escaneo fallido: 1 bloqueo, 1 alerta
  check obligatorio en main: merge bloqueado hasta revisión humana
$ gitbeans scan --ecossistemas npm,pypi,mcp
  motor: bumblebee · catálogo de exposição atualizado
▸ package-lock.json      412 pacotes
▸ requirements.txt        38 pacotes
▸ .mcp.json                2 servidores

  ok         npm   express@4.21.2
  ok         pypi  fastapi==0.115.6
  ok         pypi  pydantic==2.10.4
  … 447 sem achados

  BLOQUEADO  npm   formata-cpf-br@1.0.3
             versão presente no catálogo de pacotes comprometidos
             postinstall baixa e executa script de host desconhecido

  ALERTA     mcp   servidor "planilhas-local"
             fora da lista de servidores MCP aprovados

✗ varredura falhou: 1 bloqueio, 1 alerta
  check obrigatório em main: merge bloqueado até revisão humana

Un workflow que ya sabes leer.

La misma estructura de GitHub Actions. Cambia el directorio y entran tres pasos propios de gitbeans: escaneo, revisión y acceso a modelos.

.forgejo/workflows/ci.yml
name: cion:  push:    branches: [main]  pull_request:jobs:  escaneo:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: gitbeans/scan@v1      # Bumblebee        with:          ecosistemas: npm, pypi, mcp          bloquear-en: comprometido  pruebas:    needs: escaneo    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4        with:          lfs: true            # descarga los pesos del modelo      - uses: actions/setup-python@v5        with:          python-version: "3.12"      - run: pip install -r requirements.txt      - run: pytest -q  revision:    if: github.event_name == 'pull_request'    runs-on: ubuntu-latest    steps:      - uses: gitbeans/revisor@v1   # PR-Agent        with:          idioma: es          modelo: glm-5.3-flash     # o qwen3-coder          enfoque: datos-personales, seguridad, pruebas        env:          LLM_GATEWAY: https://lgpd.io   # gateway de privacidad
name: cion:  push:    branches: [main]  pull_request:jobs:  varredura:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: gitbeans/scan@v1      # Bumblebee        with:          ecossistemas: npm, pypi, mcp          bloquear-em: comprometido  testes:    needs: varredura    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4        with:          lfs: true            # baixa os pesos do modelo      - uses: actions/setup-python@v5        with:          python-version: "3.12"      - run: pip install -r requirements.txt      - run: pytest -q  revisao:    if: github.event_name == 'pull_request'    runs-on: ubuntu-latest    steps:      - uses: gitbeans/revisor@v1   # PR-Agent        with:          idioma: pt-BR          modelo: glm-5.3-flash     # ou qwen3-coder          foco: dados-pessoais, seguranca, testes        env:          LLM_GATEWAY: https://lgpd.io   # gateway de privacidade

Escaneo antes de las pruebas

needs: escaneo evita que un paquete bloqueado llegue a instalarse en el runner de pruebas.

Pesos del modelo en el checkout

lfs: true trae los archivos LFS del repositorio, para pruebas que cargan el modelo de verdad.

Revisor con modelo abierto

Eliges el modelo, el idioma y el enfoque de la revisión. Las llamadas pasan por el gateway lgpd.io y el código no va a APIs externas.

Compatible con .github/workflows

Si el repositorio no tiene .forgejo/workflows/, Forgejo usa .github/workflows/. Los parámetros de gitbeans/scan y gitbeans/revisor se publican con la documentación del lanzamiento.

Construido sobre Forgejo.

Comparamos las forjas self-hosted más maduras y elegimos Forgejo como motor de gitbeans.com. Estas son las razones.

  1. 01

    Software libre que no se puede cerrar

    Licencia GPLv3 o posterior y gobernanza comunitaria, con el respaldo de Codeberg e.V., una organización sin fines de lucro. La base del servicio no depende de la estrategia comercial de una sola empresa.

  2. 02

    Actions en la sintaxis que ya conoces

    Forgejo Actions ejecuta workflows al estilo GitHub Actions. Las versiones recientes suman resúmenes de jobs compatibles con $GITHUB_STEP_SUMMARY e integraciones autorizadas que acceden a la API sin secretos estáticos.

  3. 03

    Git LFS renovado

    Las versiones recientes reorganizaron el soporte a LFS: lista de archivos por repositorio, bloqueos y archivos puntero en un solo lugar. Justo lo que pide un repositorio con pesos de modelos.

  4. 04

    Ritmo predecible, pensado para durar

    Una versión por trimestre y versiones LTS con soporte extendido. Escrito en Go, liviano de operar, y con federación vía ForgeFed en desarrollo.

Motor de la forja
Forgejo, escrito en Go.
CI/CD
Forgejo Runner, derivado de act_runner, con la sintaxis de GitHub Actions.
Archivos grandes
Git LFS, para pesos de modelos y datasets.
Revisión de código
PR-Agent, proyecto abierto iniciado por Qodo, con criterios de los agentes revisores de ECC (affaan-m/ECC).
Escaneo
Bumblebee, escáner abierto de Perplexity, escrito en Go y sin dependencias externas.
Modelos
GLM-5.3-Flash (Z.ai) y Qwen3-Coder (Qwen), de pesos abiertos, en la nube privada de Beans Tech.

Los proyectos citados se usan como base técnica. Mencionarlos no indica alianza ni respaldo de sus mantenedores.

Agentes y pipelines aquí. Modelos y privacidad al lado.

gitbeans.com es la pieza de código del ecosistema Beans Tech. Los modelos y skills viven en beansbr.ai, y cada llamada a un LLM pasa por el gateway de privacidad lgpd.io.

Tu equipo

git push, pull requests, issues

Tus agentes

Agentes que abren PRs y ejecutan tareas

gitbeans.com

Forgejo, alojado en Brasil
Repositorios y LFSCódigo, checkpoints, datasets
Forgejo RunnerCI con sintaxis de Actions
Bumblebeenpm, PyPI, extensiones, MCP
PR-Agent ES · PTComentarios en cada PR

lgpd.io

Gateway de privacidad para cada llamada a un LLM

beansbr.ai

GLM-5.3-Flash, Qwen3-Coder y skills, en la nube privada Beans

El revisor y los agentes llaman a los modelos siempre a través de lgpd.io. El código fuente no sale de la infraestructura de Beans Tech en Brasil.

Plataformas del ecosistema Beans Tech

Para quienes escriben software en América Latina.

Del proyecto personal al sistema de un organismo público, con la misma herramienta y el código en la región.

Desarrolladores y startups

Un lugar para el código y los modelos, con un CI que ya sabes escribir y una revisión que habla tu idioma.

  • Repositorios con LFS para fine-tunes
  • Revisión automática en cada PR
  • Alerta antes de instalar un paquete malicioso

Empresas reguladas

Bancos, hospitales y estudios jurídicos que necesitan saber dónde está su código y por dónde pasa.

  • Código y artefactos en territorio brasileño
  • Revisión con modelos en la nube privada Beans
  • Checks que señalan datos personales en logs

Sector público

Organismos y empresas públicas que desarrollan sistemas propios y prefieren infraestructura regional.

  • Hosting en Brasil, sobre software libre
  • Pipelines en el formato que los equipos ya conocen
  • Revisión y documentación en español y portugués

Lista de espera

gitbeans.com está en lanzamiento.

Cuéntanos quién eres y qué quieres alojar. El registro se hace en el formulario seguro de Beans Tech (JotForm), que se abre en una pestaña nueva.

Qué conviene contarnos

  • Quién eres: persona, startup, empresa regulada u organismo público.
  • Qué quieres alojar: código, pesos de modelos, datasets, pipelines.
  • De dónde vienes: GitHub, GitLab, Bitbucket o un servidor propio.
  • Tu idioma de trabajo: español, portugués o ambos.

El equipo de Beans Tech responde al correo que indiques en el formulario.