Saltar al contenido principal
Página traducida

Esta página se tradujo del inglés con ayuda de IA. Si hay diferencias entre ambas, la versión en inglés es la referencia.

Monitor de actividad de proyectos de código abierto con StackQL

En esta guía mostraremos cómo alojar por su cuenta un sistema de supervisión y alertas en tiempo real para los mantenedores de software de código abierto en GitHub.

stackql es una herramienta de código abierto que permite a los usuarios consultar recursos en la nube y de SaaS e interactuar con ellos mediante el lenguaje SQL y bibliotecas y herramientas de visualización y análisis de datos. ¡Denos una ⭐ si le gusta!

Reciba alertas como esta en Slack y Discord en tiempo real:

Monitor de OSS

Probado con backend SQL integrado docker linux

Descripción general​

Cuando busqué herramientas para supervisar nuestro proyecto de código abierto, descubrí que la mayoría no funcionaban como prometían o no funcionaban en absoluto (en el caso de las aplicaciones de terceros en GitHub), así que creé la nuestra, que usted puede poner en marcha y usar en su proyecto de código abierto de GitHub...

El proyecto oss-activity-monitor usa stackql para supervisar en tiempo real la actividad de proyectos de código abierto, lo que incluye notificaciones en tiempo real de:

  • ⭐ nuevos stargazers de repositorios de GitHub
  • 👀 nuevos watchers de repositorios de GitHub
  • 🍴 nuevos forks de repositorios de GitHub
  • 📊 nuevos issues de repositorios de GitHub
  • 🙋 nuevos seguidores de organizaciones de GitHub
  • 📦 nuevas descargas de archivos de versiones de GitHub
  • 🍺 nuevas descargas de homebrew

Funcionamiento​

El proyecto se despliega en un contenedor (con docker u otra plataforma de despliegue de contenedores) y está creado con python y el paquete pystackql, con los providers github y homebrew de stackql. Se usan vistas materializadas e instrucciones SELECT para capturar y comparar el estado entre las métricas actuales y las anteriores de los endpoints supervisados de GitHub y Homebrew, como se describe en el siguiente diagrama:

por ejemplo, dada esta vista materializada, creada y rellenada con stackql:

CREATE OR REPLACE MATERIALIZED VIEW mvw_github_repo_stargazers AS
SELECT login FROM github.activity.repo_stargazers
WHERE owner = 'your-org' and repo = 'your-repo'

la siguiente consulta de stackql sondea GitHub en busca de nuevos stargazers...

SELECT c.login
FROM github.activity.repo_stargazers c
LEFT JOIN mvw_github_repo_stargazers mvw
ON c.login = mvw.login
WHERE mvw.login IS NULL
AND c.owner = 'your-org' AND c.repo = 'your-repo'

después, el estado se actualiza con...

REFRESH MATERIALIZED VIEW mvw_github_repo_stargazers

se repiten patrones similares para los watchers de repositorios, los issues, los seguidores de organizaciones, las descargas de archivos de versiones y las descargas de homebrew.

Ejecutar el proyecto​

Siga los pasos que se indican a continuación para poner en marcha el proyecto en local o en su plataforma en la nube preferida.

1. Clonar el repositorio​

git clone https://github.com/stackql/oss-activity-monitor.git
# or
git clone git@github.com:stackql/oss-activity-monitor.git

2. Configurar las variables de entorno​

Para configurar el proyecto se necesitan las siguientes variables de entorno (se proporcionan como variables de entorno; en el ejemplo siguiente, en un archivo .env):

VariableDescripciónValor de ejemplo
LOG_LEVELNivel de log (INFO para logs generales; DEBUG para logs detallados)INFO
SLEEP_INTERVALTiempo de espera en segundos entre ciclos de solicitudes5
GITHUB_REPONombre del repositorio de GitHubstackql
GITHUB_REPO_OWNERNombre de la organización o del propietario de GitHubstackql
HOMEBREW_FORMULA_NAMENombre de la fórmula de Homebrew, si existestackql
STACKQL_GITHUB_USERNAMESu nombre de usuario de GitHubjeffreyaven
STACKQL_GITHUB_PASSWORDSu token de acceso personal de GitHubghp_yourpersonalaccesstoken
SLACK_WEBHOOK_URLURL del webhook de Slack para enviar notificacioneshttps://hooks.slack.com/services/...
DISCORD_WEBHOOK_URLURL del webhook de Discord para enviar notificacioneshttps://discord.com/api/webhooks/...

3. Construir el contenedor​

docker build --no-cache -t oss-activity-monitor .

4. Ejecutar el contenedor​

docker run --env-file .env oss-activity-monitor

¡Eso es todo! Ahora recibirá alertas en tiempo real cuando haya actividad en su proyecto de código abierto. Para detener el contenedor, use:

docker stop $(docker ps -a -q --filter ancestor=oss-activity-monitor)

Denos una ⭐ en GitHub