Skip to content

About

Extensión gratuita para Chrome, Edge y Firefox que analiza código ABAP dentro de GitHub: nota, hallazgos y la línea exacta de cada uno.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CleanCore para GitHub: revisa código ABAP dentro de GitHub

CleanCore para GitHub

Extensión gratuita para Chrome, Edge y Firefox que analiza el código ABAP dentro de GitHub.
Abres un archivo, un pull request o un repositorio y ves la nota, los problemas y la línea exacta de cada uno.

Tests Manifest V3 Sin servidores Licencia MIT

Instalar en Microsoft Edge · Descargar para Chrome

El panel analiza un report ABAP en GitHub, salta a la línea de un error, cambia de sistema y analiza un repositorio completo

Qué hace

Dónde Qué ves
Un archivo ABAP Nota de 0 a 100, errores, avisos y sugerencias por categoría (ABAP Cloud, migración a S/4HANA, sintaxis obsoleta, rendimiento, seguridad, buenas prácticas). Cada hallazgo enlaza a su línea, con la explicación y la corrección.
Un pull request Cuántos problemas nuevos introduce el cambio en las líneas añadidas, cuántos corrige y en qué archivos, con enlace a la línea en la vista de cambios.
Un repositorio Si el repositorio tiene ABAP, un botón para analizar todos sus archivos: nota media y los archivos con peor nota.
  • 72 reglas para 6 sistemas, de ECC 6.0 (7.00) a SAP BTP ABAP Environment: las mismas de CleanCore Check.
  • Cambias el sistema de destino y la nota se recalcula al momento.
  • Desactiva reglas desde el propio hallazgo o desde las opciones.
  • Copia el informe en Markdown para pegarlo en una revisión.
  • Sigue el tema claro u oscuro de GitHub.
  • Atajo de teclado: Alt + Shift + C.

Capturas

Archivo ABAP Detalle de un hallazgo
Panel con la nota 19 de un report de 2009 y sus 23 errores Detalle del hallazgo de credenciales en el código, con la explicación y el antes y después
Tema oscuro Repositorio completo
El panel en el tema oscuro de GitHub Análisis de los 47 archivos ABAP de un repositorio con la nota media y los peores archivos
Pull request
Resumen de un pull request real de abapGit: ningún problema nuevo en las líneas cambiadas

Privacidad

El análisis se hace en tu navegador. El código no se envía a ningún servidor.

La extensión solo se conecta a github.com, api.github.com y raw.githubusercontent.com para leer el código que ya estás viendo. No tiene analítica ni servidores propios. Un script comprueba en cada cambio que el paquete no contiene otros dominios ni datos personales. Detalle completo en PRIVACIDAD.md.

Permiso Para qué
github.com Mostrar el panel en las páginas de GitHub
raw.githubusercontent.com Leer el archivo en bruto, sin depender del diseño de la página
api.github.com Leer los archivos de un pull request y la lista de archivos de un repositorio
storage Guardar tus preferencias (sistema, reglas desactivadas)

Sin token, GitHub permite 60 consultas por hora a su API, suficiente para el uso normal. Para repositorios privados o muchos pull requests, puedes añadir en las opciones un token de solo lectura, que se guarda únicamente en tu navegador.

Instalación

  • Edge: instalar desde Microsoft Edge Add-ons
  • Firefox: Firefox Add-ons (en revisión)
  • Chrome: descarga el ZIP de Chrome y Edge de la última versión, descomprímelo y cárgalo como extensión sin empaquetar: chrome://extensions → Modo de desarrollador → Cargar descomprimida.

Cómo funciona

src/
├─ content/        detecta la página de GitHub, obtiene el código, lo analiza y pinta el panel
│  ├─ github.ts    direcciones de GitHub (archivo, pull request, repositorio)
│  ├─ fetch.ts     lectura de código y de la API, con caché y control del límite de consultas
│  ├─ diff.ts      líneas añadidas en un pull request y comparación por regla
│  └─ panel.ts     panel con Shadow DOM: los estilos de GitHub no le afectan
├─ engine/         motor de CleanCore Check (copiado de Proyecto-SAP-ABAP, no se edita aquí)
├─ options/        página de opciones
├─ popup/          ventana del icono
└─ background/     atajo de teclado

Detalles que importan:

  • GitHub navega sin recargar la página. La extensión detecta los cambios de dirección y vuelve a analizar.
  • El panel vive en un Shadow DOM y usa hojas de estilo construidas, así que no choca con la política de seguridad de GitHub ni con sus estilos.
  • El código nunca se interpreta como HTML. El resaltado se construye nodo a nodo; hay un test que inyecta HTML malicioso en un archivo ABAP y comprueba que se muestra como texto.
  • En los pull requests se analizan la versión anterior y la nueva de cada archivo. Un problema es "nuevo" si está en una línea añadida; los totales de introducidos y corregidos se comparan por regla, porque las líneas se desplazan al editar.
  • El motor es el mismo que el de la web. Se copia con npm run motor y un test comprueba con su huella SHA-256 que nadie lo ha editado a mano.

Desarrollo

Requiere Node 22 o superior.

npm install
npx playwright install chromium   # navegador para los tests de extremo a extremo
npm run build                     # genera dist/chrome y dist/firefox
npm test                          # tests unitarios
npm run test:e2e                  # la extensión cargada en Chromium contra un GitHub simulado
npm run privacidad                # comprueba dominios y datos personales en el paquete
npm run empaquetar                # ZIP para las tiendas en paquetes/
npm run todo                      # todo lo anterior

Para probar en GitHub real: npm run build y carga dist/chrome como extensión sin empaquetar, o ejecuta node scripts/probar-en-vivo.mjs <url>.

Calidad

  • 18 tests unitarios (direcciones de GitHub, diferencias de pull requests, motor y resaltador).
  • 16 tests de extremo a extremo con la extensión cargada en Chromium: archivo, cambio de sistema, desactivar reglas, plegar y cerrar, tema oscuro, navegación sin recarga, error de lectura, pull requests, límite de consultas, repositorios, opciones y seguridad frente a HTML malicioso.
  • Validación del paquete de Firefox con web-ext lint de Mozilla: 0 errores, 0 avisos.
  • GitHub Actions ejecuta todo en cada cambio.

Limitaciones

  • No es un parser completo de ABAP ni sustituye al ATC de SAP o a abaplint: es una revisión rápida con reglas por sentencias.
  • Las explicaciones de las reglas están en español; la interfaz, en español e inglés.
  • Analiza archivos .abap (formato de abapGit). Las vistas CDS y las definiciones de comportamiento aún no.

¿Un falso positivo? Cada hallazgo tiene un enlace que abre una incidencia con la regla y el fragmento.

Autor

Abel González Guerra · github.com/abelg02 · Parte de Herramientas ABAP.

Proyecto independiente. No afiliado a SAP. SAP y ABAP son marcas de SAP SE.

About

Extensión gratuita para Chrome, Edge y Firefox que analiza código ABAP dentro de GitHub: nota, hallazgos y la línea exacta de cada uno.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages