Skip to content

Integración de Microsoft Forms con GitLab mediante SharePoint y Navegador

¿Recuerdas cuando Power Automate creaba issues en GitLab con un simple email y, de repente, todo dejó de funcionar tras la última versión? Pues bien, aquí tenemos un parche casero que convierte un Excel de SharePoint en formularios pre-rellenados listos para publicar en GitLab (sí, manualmente… pero sin copiar y pegar).

Contexto del proyecto

Después de que el correo dejara de valer, tocó reinventar la rueda. En lugar de pelear con APIs imposibles, descargamos el Excel desde SharePoint y abrimos automáticamente en Chrome las URLs de creación de issue. Tú solo confirmas, le das al botón “Crear” y a otra cosa.

Flujo de trabajo automatizado

  1. Descarga un Excel desde SharePoint (nada de links públicos, aquí todo va con credenciales).
  2. Lee solo las filas nuevas: olvídate de reprocesar el mismo formulario cien veces.
  3. Construye el título, descripción, etiquetas y fecha de vencimiento con un par de líneas de Python.
  4. Lanza Chrome con la URL preconstruida para que veas el formulario listo para ti.
  5. Le preguntas al usuario “¿Publicamos esta issue?” y, si responde yes, click al botón.
  6. Todo queda anotado en un log: ningún error se esconde en el script.
  7. Por último, actualiza `config.json` para saltarte las filas ya procesadas en la próxima ejecución.
Nota mental: si el script falla por culpa de un cambio en la hoja de Excel, sólo tendrás que ajustar el índice de la columna. Más fácil que reinstalar Power Automate.

Tecnologías utilizadas

  • Python 3.x
  • office365-rest-python-client para acceder a SharePoint sin sudar
  • pandas para manejar el Excel como todo un profesional
  • webbrowser + Chrome para abrir el formulario donde toque
  • JSON, datetime, urllib, os… tu surtido habitual de librerías

Configuración (config.json)

La movida

{
  "sharepoint_site_url": "https://.sharepoint.com/sites/",
  "sharepoint_username": "usuario@empresa.com",
  "sharepoint_password": "********",
  "excel_relative_url": "/sites//Documentos compartidos/formulario.xlsx",
  "starting_row": 0,
  "gitlab_url": "https://gitlab.com/namespace/proyecto/-/issues/new",
  "max_iterations": 10
}

Estructura esperada del Excel

Asegúrate de que el Excel tenga estas columnas (y en ese orden):

  • Titulo:
  • Descripcion:
  • Prioridad:
  • Area Solicitante:
  • Nombre Completo:
  • Hora de finalización
  • Archivos: (opcional, enlace a documento o imagen)
  • Columna 12: correo electrónico

Lógica de prioridad y vencimiento

Prioridad Días para vencimiento
Crítica 1 día
Alta 2 días
Media 3 días
Baja 7 días

Ejecución

Instala tus dependencias y lanza el script:

pip install pandas openpyxl office365-rest-python-client
python formToGitlab.py

Verás ventanas de Chrome abrirse. Cada vez que termines un formulario, responde s o n en la consola para continuar.

Logs

Todo el proceso queda registrado en logs/log_DD_MM_YYYY.txt. Más transparente que una pantalla en modo “invisible”.

Consideraciones de seguridad

  • No subas config.json con contraseñas al repositorio.
  • Debe existir sesión válida en GitLab antes de ejecutar.
  • Asegúrate de tener acceso al Excel compartido.

¿Y ahora?

Esta integración demuestra que, cuando algo falla, puedes construir tu propio puente con unas pocas líneas de código. Si quieres más frikadas similares, aquí estamos para diseñar tu próxima locura automatizada.

Volver arriba