Artículo
· 9 ago, 2023 Lectura de 5 min

Uso de insignias para proyectos en Open Exchange

Cada vez es más común ver coloridas insignias o badges en el archivo README.MD, con información útil sobre un proyecto en repositorios como GitHub, GitLab y otros.

Por ejemplo:

image
image

Incluso la iniciativa sobre calidad del código que está en marcha en la comunidad actualmente también ofrece su propia insignia. Esta insignia muestra el estado de validación de código del proyecto.

Para incluirla, debes añadir la siguiente línea en el README.MD:

 [![Quality Gate Status](https://community.objectscriptquality.com/api/project_badges/measure?project=intersystems_iris_community%2Fappmsw-zpm-shields&metric=alert_status)](https://community.objectscriptquality.com/dashboard?id=intersystems_iris_community%2Fappmsw-zpm-shields)

Y en el directorio del proyecto en GitHub /.github/workflows/, añadir el archivo objectscript-quality.yml. Tras eso, podrás ver esta insignia:

image

Existen diferentes servicios que otorgan estas insignias.

Un ejemplo es Shield.io
Simplifica la creación de enlaces, incluyendo Markdown
image

Aquí tenéis ejemplos de insignias excelentes que se han utilizado en algunos proyectos.

A medida que el proyecto del gestor de paquetes ZPM crece, los recursos necesarios para almacenar los módulos de los diferentes paquetes también crecen.

Cada vez es más frecuente que necesites información detallada de un paquete sin tener que abrir los archivos del proyecto, preferiblemente visible de forma sencilla en la primera página. Datos como:

  • ¿Qué versión del proyecto se almacena en el repositorio de paquetes? Necesito verlo sin abrir el archivo module.xml
  • ¿Cómo se relaciona esa versión con la que está en el repositorio público? ¿Es el momento de actualizar la versión o no?
  • ¿Qué puertos se mapean en la configuración de docker?

Todo esa información se puede consultar con insignias a través del servicio shields.io.

Mostrar la versión del proyecto zpm tomado del archivo module.xml

image

![Repo-GitHub](https://img.shields.io/badge/dynamic/xml?color=gold&label=GitHub%20module.xml&prefix=ver.&query=%2F%2FVersion&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsergeymi37%2Fzapm%2Fmaster%2Fmodule.xml)

Se puede complicar el enlace añadiendo la posibilidad de hacer click para abrir el archivo correspondiente module.xml:

[![Repo-GitHub](https://img.shields.io/badge/dynamic/xml?color=gold&label=GitHub%20module.xml&prefix=ver.&query=%2F%2FVersion&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsergeymi37%2Fzapm%2Fmaster%2Fmodule.xml)](https://raw.githubusercontent.com/sergeymi37/zapm/master/module.xml)

Mostrar la versión del proyecto zpm tomado del servicio

image

![OEX-zapm](https://img.shields.io/badge/dynamic/json?url=https:%2F%2Fpm.community.intersystems.com%2Fpackages%2Fzapm%2F&label=ZPM-pm.community.intersystems.com&query=$.version&color=green&prefix=zapm)

Ejemplo de un enlace con una solicitud de un servicio:

[![OEX-zapm](https://img.shields.io/badge/dynamic/json?url=https:%2F%2Fpm.community.intersystems.com%2Fpackages%2Fzapm%2F&label=ZPM-pm.community.intersystems.com&query=$.version&color=green&prefix=zapm)](https://pm.community.intersystems.com/packages/zapm)

Mostrar qué puertos son mapeados en la configuración de docker

image

 ![Docker-ports](https://img.shields.io/badge/dynamic/yaml?color=blue&label=docker-compose&prefix=ports%20-%20&query=%24.services.iris.ports&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsergeymi37%2Fzapm%2Fmaster%2Fdocker-compose.yml)

Por ejemplo, un link para abrir el fichero docker-compose.yml:

[![Docker-ports](https://img.shields.io/badge/dynamic/yaml?color=blue&label=docker-compose&prefix=ports%20-%20&query=%24.services.iris.ports&url=https%3A%2F%2Fraw.githubusercontent.com%2Fsergeymi37%2Fzapm%2Fmaster%2Fdocker-compose.yml)](https://raw.githubusercontent.com/sergeymi37/zapm/master/docker-compose.yml)

Sin embargo, para métricas más complejas o sus combinaciones, e incluso para proyectos dentro de una red local privada, se ha decidido crear este servicio REST, que muestra la versión del módulo ZPM desde el archivo del repositorio y desde https://pm.community.intersystems.com/

Tras la instalación, se tiene un servicio zpm-shields al que hay que proporcionar acceso sin autenticación.

Enlaces para obtener un archivo svg que puede ser insertado en el README.MD:

Por ejemplo:

![Repo](http://localhost:52773/zpm-shields/repo/mode?module=https:%2F%2Fgithub.com%2FSergeyMi37%2Fzapm&color=blue)

donde los valores del parámetro son:
zpm-shields/repo - extracción desde el archivo module.xml para obtener la versión
module - enlace al repositorio
color - por ejemplo #00987

![Registry](http://localhost:52773/zpm-shields/registry/mode?project=appmsw-dbdeploy&color=gold)

donde los valores del parámetro son:
zpm-shields/registry - obtener la versión por petición desde el servicio
project - nombre del proyecto

![Repo+Registry](http://localhost:52773/zpm-shields/both/mode?module=sergeymi37%2Fappmsw-dbdeploy&project=appmsw-dbdeploy&color=FFA07A)

donde los valores del parámetro son:
zpm-shields/both - extracción desde el archivo module.xml, obtiene la versión desde el servicio
project - nombre del proyecto
module - enlace al repositorio

El servicio también se puede usar para recursos ZPM locales. Para hacerlo, hay que utilizar la ruta completa del repositorio local y un registro privado.

A mí me gustan mucho estas insignias. Y creo que también podrían seros útiles a vosotros.

Comentarios (0)1
Inicie sesión o regístrese para continuar