Skip to content

Repository files navigation

🧩 GitHub2Teams

GitHub2Teams es un servicio ligero y autogestionado que escucha webhooks de GitHub y envía notificaciones formateadas a canales de Microsoft Teams.

Permite manejar múltiples repositorios y canales desde un panel web seguro, con autenticación por sesión y configuración persistente.


🚀 Características

  • Soporte completo para eventos de Pull Requests (opened, reopened, closed / merged).
  • Detección automática de merges desde eventos push.
  • Envío de tarjetas enriquecidas a Microsoft Teams con información de PR, etiquetas y milestone.
  • Panel web protegido con login y sesión segura.
  • Configuración persistente en data/config.json.
  • Compatible con Docker y listo para producción.

🐳 Despliegue con Docker Compose

Crea un archivo docker-compose.yml como este:

version: '3.9'services:
github2teams:
image: carolusx74/github2teams:latestcontainer_name: github2teamsrestart: alwaysports:
- "8011:8000"volumes:
- ./data:/app/dataenvironment:
# 🔐 Clave usada para validar firmas HMAC de GitHub
- WEBHOOK_SECRET=my-webhook-secret# 👤 Credenciales del panel de administración
- ADMIN_USER=admin
- ADMIN_PASS=superseguro123# 🔑 Secreto de sesión para cookies seguras
- SESSION_SECRET=c61b4c13c2bf401e03f1c4870677b81b39eff7a0db46972d966cfe4adc743d76networks:
- github2teams-netnetworks:
github2teams-net:
driver: bridge

Luego ejecuta:

docker-compose up -d

El panel estará disponible en:

👉 http://localhost:8011/admin


⚙️ Configuración de GitHub

  1. En tu repositorio de GitHub, ve a
    Settings → Webhooks → Add webhook.

  2. En Payload URL, ingresa la URL pública del endpoint:

    https://tuservidor.com/github
    
  3. En Content type, selecciona
    application/json.

  4. En Secret, ingresa el mismo valor definido en
    WEBHOOK_SECRET del docker-compose.yml.

  5. Marca solo los eventos:

    • ✅ Pull requests
    • ✅ Pushes
  6. Guarda el webhook y prueba el envío desde GitHub.


🧠 Panel de administración

Desde el panel /admin puedes:

  • Agregar o eliminar repositorios.
  • Registrar múltiples URLs de Teams por repositorio.
  • Configurar o actualizar la clave HMAC.
  • Enviar mensajes de prueba.
  • Cerrar sesión segura.

💡 Ejemplo de uso

  • Repositorio:empresa/proyecto
  • Webhook de Teams:
    https://outlook.office.com/webhook/...

Cuando se abra un nuevo Pull Request o se haga merge, el canal de Teams recibirá una tarjeta similar a:

🟩 New Pull Request #42
feature/login → main
Autor: @carlospensa
Labels: fix, CORE
Milestone: v1.2.0


🔐 Seguridad

  • El panel requiere autenticación (ADMIN_USER / ADMIN_PASS).
  • Cada sesión usa un SESSION_SECRET único.
  • Los webhooks se validan mediante HMAC-SHA256.
  • Configuración sensible persistida localmente (data/config.json).

☕ Apoyar el proyecto

Si este proyecto te resulta útil, podés invitarme un café o contribuir a su mantenimiento 💙

Ko-fi
Buy me a coffee ☕


📜 Licencia

Distribuido bajo la MIT License.
Consulta el archivo LICENSE para más detalles.


👨‍💻 Autor

Carlos Javier Torres Pensa
Desarrollador Android & DevOps — Argentina 🇦🇷
📧 carlosjtp.777@gmail.com
🌐 https://pensa.com.ar

© 2025 Carlos Javier Torres Pensa — All rights reserved.

About

GitNotify (GitHub2Teams) es un API que permite recibir notificaciones de Pull Request en un canal de Microsoft Teams.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages