javascript

Obtener lista de archivos modificados en commit de GitHub desde la web

Hoy vamos a ver cómo listar los archivos modificados en un commit de GitHub desde la interfaz web, no desde la línea de comandos.

Cuando estamos en github.com podemos ver un commit que muestra los archivos modificados o creados, pero no los muestra en forma de lista para copiar y pegar.

En este post te mostraré cómo obtener la lista de la ruta completa de los archivos creados o modificados en ese commit, usando la consola de depuración.

Nota: seguramente esto se puede hacer desde la línea de comandos, pero veamos cómo hacerlo con JavaScript desde el navegador.

Analizando ruta de archivo modificado

Si abrimos el inspector de elementos vemos que el elemento que tiene la ruta del archivo del commit tiene las clases Link--primary y Truncate-text.

Archivo modificado en commit de GitHub

Entonces debemos obtener todos los elementos con querySelectorAll y luego listar el contenido del texto.

Lista completa de archivos modificados en commit

Obtenemos la lista con:

document.querySelectorAll(".Link--primary.Truncate-text")

Luego necesitamos crear un arreglo que se pueda mapear, para esto usamos Array.from y convertimos la colección de elementos a un arreglo.

Lo que resta es mapear ese arreglo, para convertir cada elemento HTML a una cadena.

Y luego necesitamos convertirlo de vuelta a cadena, imprimiendo esa cadena en la consola:

console.log(Array.from(document.querySelectorAll(".Link--primary.Truncate-text")).map(elemento => elemento.textContent).join("\n"));

Si yo ejecuto ese código desde la consola de depuración del navegador en un commit, aparece el siguiente listado:

app/Http/Controllers/ReporteController.php
app/Models/CancionSolicitada.php
resources/views/reportes/index.blade.php
resources/views/reportes/pdf.blade.php

Tú puedes mejorar el script, hacerlo más legible o lo que quieras. Yo lo dejé así para que sea fácil copiar y pegar en la consola.

Conclusión

Si te preguntas por qué hice ese fragmento de código es porque me parece interesante cómo podemos extraer varias cosas con JavaScript mapeando y trabajando con cadenas.

Además, a veces mis clientes necesitan que les indique cuáles archivos modifiqué y me da pereza hacer el listado manualmente, sobre todo cuando son varios archivos modificados.

Acá te dejo más tutoriales de JavaScript.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.