Vamos a extender un CLI que proporciona alguna funcionalidad simple relevante para trabajar con diferentes sistemas de gestión de control de origen, herramientas como GitHub y GitLab. Así que vamos a sumergirnos.
Entonces, nuestro ejemplo de hoy es un CLI realmente simple llamado Asistente de Gestión de Control de Origen. Lo llamaremos SEM Helper abreviado. Así que echemos un vistazo aquí y básicamente tenemos un comando llamado Describir y estamos llamando a Describir GitHub y luego espera un par de parámetros, el propietario y el repositorio. Así que estamos tratando de describir un repositorio. Así que si le damos un propietario y un repositorio también, estamos devolviendo información muy simple, si el repositorio está bifurcado y si está archivado también.
Así que si lo vemos conceptualmente, básicamente tenemos un sistema central que puede decir repo.describe, por ejemplo. Y luego tenemos un conjunto de plugins que se pueden llamar, en este caso, es específicamente GitHub. Y devolvemos algunos metadatos muy simples, por ejemplo, para verdadero, archivado, falso. Así que vamos a entrar en el código y echemos un vistazo a lo que hemos configurado aquí.
Es una configuración muy simple, básica, lista para usar, siguiendo la documentación de TypeScript. Verás aquí que tenemos un índice de origen y estamos usando Oclef CLI. Así que no tenemos que preocuparnos por el análisis de parámetros ni nada de eso. Verás que también hay un directorio de comandos, así como un directorio de plugins de librería. En los comandos aquí, tenemos describir GitHub, que es lo que acabas de ver ejecutándose. Y en describir GitHub, tiene algunos argumentos, tiene un ejemplo, una descripción y la funcionalidad principal aquí es cargar un plugin, cargar un plugin de GitHub, y luego estamos llamando a plugin.describir y enviándole el repositorio y eso. Y eso es todo. Y luego en los plugins de librería, hay un directorio de GitHub en el que hay un poco de código, que es obtener credenciales y luego la llamada a la API de descripción en sí. Así que necesitamos poder obtener el token y luego estamos llamando en este caso, OctoKit rest, que es una biblioteca de GitHub y llamando al repositorio específico para obtener la información que queremos. Así que echemos un vistazo de nuevo dentro de los plugins. También tenemos un archivo de índice y tipos. Así que en el archivo de índice, verás que hay nuestra función de carga de plugin y toma un tipo de SCM, que son todos los SCM admitidos. Este es un enum de todos los SCM admitidos. Y queremos poder admitir también GitLab. Así que hagámoslo. Así que vamos a agregar y registrar GitHub así como GitLab como un plugin admitido aquí. Así que vamos a decir, GitLab equals GitLab. De acuerdo, y veamos qué pasa. Así que ahora que hemos hecho eso, verás que hay en nuestro archivo de carga de plugin en ese índice.
Comments