Skip to content

[FEATURE] Observar creación de usuario en Firebase y sincronizar perfil público desde GitHub #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
JonDotsoy opened this issue Apr 19, 2025 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@JonDotsoy
Copy link
Member

Se propone implementar una funcionalidad clave para el módulo de Perfiles de ChelaJS que permita detectar automáticamente cuando un nuevo usuario se registra mediante GitHub (vía Firebase Authentication) y, como respuesta, iniciar un flujo de sincronización de perfil a través de Cloud Functions y Cloud Run.

Este proceso permitirá construir un perfil enriquecido del usuario con la información pública disponible en su cuenta de GitHub, incluyendo nombre, bio, avatar, y el contenido del README.md de su perfil (si existe).

Objetivos de esta funcionalidad:
• Observar el evento onCreate de Firebase Auth (sólo usuarios GitHub).
• Publicar un evento estructurado en Pub/Sub con el UID y username de GitHub.
• Procesar este evento en un servicio Cloud Run desacoplado.
• Consultar la API pública de GitHub y obtener:
• Información básica del perfil (bio, nombre, avatar, ubicación, etc.)
• Archivo README.md del perfil para análisis semántico posterior.
• Persistir el perfil completo en Firestore bajo el documento profiles/{uid}.

Contexto:

Esta funcionalidad es el primer paso del pipeline de identidad de usuarios en ChelaJS. Permite construir perfiles reales, visibles, y conectados con el entorno técnico del usuario sin necesidad de formularios. Además, permite interoperar con otros módulos de la plataforma (eventos, participación, postulaciones, recomendaciones).

Criterios de aceptación:
• El sistema debe registrar automáticamente a cualquier usuario que haga login con GitHub.
• El evento onCreate debe generar un mensaje válido en Pub/Sub.
• El servicio en Cloud Run debe poder consumir el mensaje sin error.
• Se debe consultar correctamente el endpoint público de GitHub /users/:username.
• Si el perfil tiene un README disponible, debe descargarse y almacenarse.
• Toda la información debe guardarse en Firestore con el campo lastUpdatedAt.
• Deben existir logs y mensajes de error claros en caso de falla (ej. perfil inexistente, 404 de GitHub).

Notas adicionales:
• La sincronización no debe ocurrir si el usuario ya tiene un perfil registrado.
• El procesamiento del README puede delegarse a una fase posterior si es necesario.
• El diseño debe ser extensible para permitir futuras actualizaciones manuales o periódicas del perfil.

@JonDotsoy JonDotsoy added the enhancement New feature or request label Apr 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants