Repository navigation
chore(release): promover develop a release (Sprint 4) - #6
Merged
Merged
Conversation
- Pruebas de humo con JUnit 5: arranque del contexto de Spring y endpoint de salud (/health y /api/v1/rules/health). - JaCoCo 0.8.12 genera target/site/jacoco/jacoco.xml, la ruta que lee SonarQube por defecto. - Workflow CI: mvn verify en cada PR y push a main; publica el reporte de cobertura como artefacto. - README documenta como ejecutar pruebas y cobertura. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…6 (SCRUM-1123) Co-Authored-By: Claude Opus 5.5 <[email protected]>
…res uniformes y rutas del Gateway
- CorrelationIdFilter: X-Correlation-ID al MDC (patron de logs ya lo leia) y
a la respuesta; "none" si falta, igual que Core.
- GlobalExceptionHandler + ApiError: forma {error, code, correlationId}
comun con Core para 400/404/405/415/500.
- HealthController separado; RulesController responde con y sin el prefijo
/api/v1/rules porque el Gateway lo recorta antes de reenviar (antes
/api/v1/rules/evaluate-rate llegaba como /evaluate-rate y daba 404).
- Quita @crossorigin("*"): CORS es responsabilidad unica del Gateway.
- CI tambien en push a develop.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
…les Service
POST /api/v1/rules/categories/evaluate (tambien sin prefijo, por el Gateway)
con el contrato declarado por Core en US-03.1.1-M2.2: { allowed,
ruleSetVersion, violations[] } + normalized.
- CategoryRuleEvaluator: funcion pura con las reglas de
crear_categoria_servicio() (migracion 003): nombre normalizado 3-60 con
letra (MANI-CAT-422N), flujo operativo permitido (MANI-CAT-422F); UPDATE
parcial; OPERATE exige categoria activa (MANI-CAT-422C).
- Tenant solo desde X-Tenant-Id (claim del Gateway/Core); tenantId del
cuerpo distinto => 403 TENANT_MISMATCH. CREATE/UPDATE exigen rol ADMIN.
- CategoryRulesProperties: parametros en mani.rules.category.* con override
por tenant y version trazable; configuracion incoherente falla el arranque.
- El 409 por nombre duplicado sigue en el indice unico (requiere estado).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ra/Quality Gate - CategoryRuleEvaluatorTest: limites 2/3/60/61, conteo por caracteres como char_length (emoji), letras Unicode, normalizacion, flujos, acumulacion de violaciones, UPDATE parcial, OPERATE, reglas configurables, determinismo. - CategoryRulesPropertiesTest: binding real con override por tenant (UUID), version trazable y configuracion incoherente que impide el arranque. - CategoryRulesControllerTest: contrato HTTP completo, prefijo del Gateway, roles ADMIN/admin_tenant vs ALLY, TENANT_REQUIRED/TENANT_MISMATCH, 400/401/403/415; UnexpectedErrorTest: 500 uniforme sin filtrar detalle. - jacoco:check en verify (lineas >= 85 %, ramas >= 80 %); hoy 93.6 % / 87.8 %. - CI: SonarCloud con sonar.qualitygate.wait=true cuando existe SONAR_TOKEN; publica reportes de Surefire. 85 pruebas, mvn verify en verde. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…-java [SCRUM-1123] Esqueleto de pruebas unitarias del servicio Java (JUnit 5 + JaCoCo)
…ia-rules-java [SCRUM-1070] US-03.1.1-M6: reglas de categoría en el Rules Service Java
[SCRUM-1123] Sincroniza develop con main (PR #1 entró a main)
…e reglas Agrega quality-gate.yml en dos jobs: pruebas, cobertura JaCoCo y compilado en ubuntu-latest; scanner en el runner self-hosted de la VM de Calidad con espera del Quality Gate (proyectos mani-java y mani-java-pr). Los PRs desde forks fallan el check en vez de omitirlo. La configuracion de Sonar pasa del pom.xml (SonarCloud) a sonar-project.properties, y ci.yml deja de intentar el analisis de SonarCloud.
…onarqube [SCRUM-1265] Quality Gate de SonarQube self-hosted para el servicio de reglas
El analisis de mani-java avisaba 'Missing sonar.java.test.libraries'. El job de pruebas copia tambien las dependencias de alcance test a target/test-dependency, se publican en el artefacto y el properties las declara en sonar.java.test.libraries.
[SCRUM-1265] Agrega las dependencias de prueba al análisis de SonarQube
santiagohb2830
requested review from
Nicolas11Leon,
SarAlbN1 and
dsavilam
as code owners
October 20, 2026 16:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Qué hace
Promueve a
release(QA) todo lo fusionado endevelopdurante el Sprint 4. Es parte de la promoción conjunta de los 6 repos (Core, Gateway, Rules, Dispatch, Flutter y Landing): el Gateway dedevelopcierra las rutas internas de Core (SCRUM-1073) y espera los endpoints de Coredevelop, así que se fusionan juntos.develop:9f7ab3creleaseantes:f8582aaConflictos
Ninguno:
releasees ancestro dedevelop, el PR es directo desdedevelop.Verificación
CI y Quality Gate de
developen verde en9f7ab3c. Checks obligatorios del PR: «Pruebas y cobertura» y «Sonar Quality Gate».Se fusiona con merge commit (sin squash). El push a
releasepublica la imagen:stagingen GHCR; el despliegue en la VM de QA es manual.