Saltar al contenido principal
La Configuración Centralizada te permite mantener cada ajuste de code review y cada Kody Rule en un único repositorio en lugar de editarlos por repositorio en la interfaz web. Cada cambio fluye a través de un pull request en ese repositorio, dándote historial de versiones, revisión y rollback sobre tu configuración de revisión. Úsala cuando quieras:
  • Una única fuente de verdad para el comportamiento de revisión a través de muchos repositorios.
  • Configuración-como-código: historial, revisión en PR, rollback, validación en CI.
  • Kody Rules consistentes (reglas de revisión y memorias) en toda la organización.
  • Cambios de configuración gestionados desde el CLI o CI.

Cómo Funciona

  1. Elige un repositorio para almacenar tu configuración centralizada.
  2. Habilita la Configuración Centralizada en la UI y apúntala a ese repositorio.
  3. Elige un modo de sincronización inicial:
    • pr — Kodus abre el PR de inicialización con tu configuración efectiva actual y las reglas.
    • manual — Kodus genera los archivos; tu equipo los descarga y abre el PR.
  4. Después del primer merge, cada merge futuro en el repositorio centralizado propaga automáticamente los cambios a Kodus.
El repositorio centralizado refleja la jerarquía de alcance de Kodus (Global → Repositorio → Directorio) a través de su estructura de carpetas.

Estructura del Repositorio

El repositorio centralizado usa rutas de carpetas para mapear archivos a alcances. La estructura cubre tanto la configuración de revisión (kodus-config.yml) como las Kody Rules (.kody-rules/).
El nombre del repositorio es arbitrario — elige el que mejor se adapte a tu organización. A continuación se usa kodus-config como convención.
kodus-config/
├── kodus-config.yml                      ← configuración global
├── .kody-rules/
│   ├── review/                           ← reglas de revisión globales
│   │   └── require-tests-for-endpoints.yml
│   └── memories/                         ← memorias globales
│       └── logging-convention.yml

├── backend-api/                          ← corresponde a un repo de Kodus
│   ├── kodus-config.yml                  ← overrides a nivel de repositorio
│   ├── .kody-rules/
│   │   ├── review/
│   │   │   └── no-raw-sql.yml
│   │   └── memories/
│   │       └── auth-module-layout.yml
│   │
│   └── src/auth/                         ← corresponde a un subdirectorio del repo
│       ├── kodus-config.yml              ← overrides a nivel de directorio
│       └── .kody-rules/
│           ├── review/
│           └── memories/

└── frontend-web/
    └── kodus-config.yml
Reglas:
  • Un kodus-config.yml en la raíz del repositorio centralizado se aplica globalmente.
  • Una carpeta de nivel superior cuyo nombre coincida con un repositorio de Kodus (p. ej. backend-api/) limita los archivos a ese repositorio.
  • Una ruta anidada dentro de una carpeta de repositorio (p. ej. backend-api/src/auth/) limita los archivos a ese directorio, siguiendo el mismo modelo de herencia que la interfaz web.
  • Las reglas bajo .kody-rules/review/ se convierten en reglas de revisión; las reglas bajo .kody-rules/memories/ se convierten en memorias.
Cualquier archivo sin un alcance coincidente se ignora en la sincronización.

Archivos de Configuración

Cada kodus-config.yml usa el mismo esquema que el kodus-config.yml por repositorio documentado en Configuración General. Los campos se aplican al nivel de la carpeta donde vive el archivo y siguen las reglas de herencia habituales (ver Herencia y Overrides de Configuración). Ejemplo mínimo:
version: '1.2'
reviewOptions:
  security: true
  kody_rules: true
  error_handling: true
suggestionControl:
  groupingMode: full
  limitationType: pr
  maxSuggestions: 9
  severityLevelFilter: medium
ignorePaths:
  - yarn.lock
  - package-lock.json
automatedReviewActive: true

Archivos de Kody Rules

Cada regla es un único archivo YAML bajo .kody-rules/review/ (reglas estándar) o .kody-rules/memories/ (memorias). El nombre del archivo es arbitrario — Kodus identifica las reglas por el campo title y por la ruta canónica del archivo almacenada con la regla. Ejemplo de regla de revisión (.kody-rules/review/require-tests-for-endpoints.yml):
title: Require tests for new endpoints
rule: |
  Every new HTTP endpoint handler must include at least one integration test
  that exercises the happy path and one common failure mode.
severity: high
scope: pull_request
path: apps/api/**
examples:
  - snippet: |
      // endpoint added with matching *.spec.ts
    isCorrect: true
  - snippet: |
      // endpoint added with no test file touched in the PR
    isCorrect: false
inheritance:
  inheritable: true
  exclude: []
  include: []
Consulta Descripción General de Kody Rules para la referencia completa de campos y Herencia de Reglas para entender el comportamiento de inheritance.inheritable, exclude e include.

Flujo de Trabajo en la UI

Desde Configuración → Code Review → General:
  1. Abre Configuración Centralizada.
  2. Habilita la Configuración Centralizada.
  3. Selecciona el repositorio fuente.
  4. Elige el Método de Sincronización Inicial:
    • Automático (Crear PR ahora)
    • Manual (Sincronizar más tarde)
  5. Guarda y confirma el estado.

Comportamiento de la Interfaz Web Cuando Está Habilitada

Cuando la Configuración Centralizada está habilitada, la fuente de verdad para la configuración es el repositorio centralizado. La interfaz web refleja esto:
  • Los ajustes de code review de repositorio, directorio y globales se vuelven de solo lectura en la interfaz web. Edítalos abriendo un PR en el repositorio centralizado.
  • Las Kody Rules y los Mensajes de PR permanecen editables en la interfaz web. Guardar una edición no muta la regla directamente — Kodus abre un pull request en el repositorio centralizado con el cambio propuesto. Una vez que el PR es mergeado, el cambio se activa.
Esto preserva la garantía de “todo está revisado y versionado” mientras mantiene la experiencia de edición visual para reglas y mensajes.

Estados de Sincronización

Cada regla que proviene de la Configuración Centralizada rastrea su ciclo de vida mediante un estado:
EstadoSignificado
SYNCEDLa regla en Kodus coincide con el archivo en el repositorio centralizado.
PENDING_ADDSe creó una nueva regla vía UI/CLI y se abrió un PR; el archivo aún no existe en la rama predeterminada.
PENDING_EDITSe propuso una edición vía UI/CLI y hay un PR abierto; el archivo existente aún no ha sido actualizado.
PENDING_DELETESe propuso una eliminación vía UI/CLI y hay un PR abierto; el archivo todavía existe en la rama predeterminada.
PENDING_* vuelve a SYNCED una vez que el PR correspondiente es mergeado.

Modos de Sincronización

Kodus abre el pull request de inicialización automáticamente con tu configuración efectiva actual y las reglas.

Descargar Paquete de Configuración

Puedes descargar un ZIP con los archivos kodus-config.yml generados y el árbol .kody-rules/ que reflejan tu configuración y reglas actuales. Úsalo cuando:
  • Audites la configuración generada.
  • Compartas artefactos de configuración con otro equipo.
  • Mantengas una copia de seguridad local antes de un despliegue.
  • Inicialices el repositorio centralizado en modo manual.

Deshabilitar la Configuración Centralizada

Deshabilitar la Configuración Centralizada borra el repositorio fuente seleccionado y devuelve todos los repositorios al comportamiento estándar no centralizado (ajustes editados en la interfaz web, kodus-config.yml opcional por repositorio). Las reglas y ajustes que fueron sincronizados permanecen en Kodus — no se eliminan al deshabilitar.

CLI

Usa estos comandos para gestionar la Configuración Centralizada desde flujos de trabajo en terminal y scripts de CI.

Requisitos

  • Autenticación con clave de equipo.
  • Al menos un repositorio seleccionado en Kodus.
Autentícate con:
kodus auth team-key --key <your-key>

Verificar Estado

kodus config centralized status

Inicializar la Configuración Centralizada

kodus config centralized init [owner/repo] --sync-option <pr|manual>
Notas:
  • --sync-option tiene como valor predeterminado pr.
  • Si el repositorio se omite en una terminal interactiva, el CLI solicita la selección.
  • En entornos no interactivos, el repositorio debe proporcionarse.
Ejemplos:
kodus config centralized init kodustech/kodus-config --sync-option pr
kodus config centralized init kodustech/kodus-config --sync-option manual

Ejecutar Sincronización

kodus config centralized sync

Deshabilitar la Configuración Centralizada

kodus config centralized disable

Descargar ZIP de Configuración

kodus config centralized download --out ./centralized-config.zip
Notas:
  • --out es obligatorio.
  • La salida es un paquete ZIP con los archivos de configuración generados y el árbol .kody-rules/.

Salida en JSON

Todos los comandos centralizados soportan salida estructurada con --json.
kodus config centralized status --json
kodus config centralized init kodustech/kodus-config --sync-option pr --json
kodus config centralized sync --json
kodus config centralized disable --json
kodus config centralized download --out ./centralized-config.zip --json

Relacionados