¿Alguna vez te ha tocado enfrentarte a un misterioso "Connection Refused" al intentar acceder a…
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
- Descarga un Excel desde SharePoint (nada de links públicos, aquí todo va con credenciales).
- Lee solo las filas nuevas: olvídate de reprocesar el mismo formulario cien veces.
- Construye el título, descripción, etiquetas y fecha de vencimiento con un par de líneas de Python.
- Lanza Chrome con la URL preconstruida para que veas el formulario listo para ti.
- Le preguntas al usuario “¿Publicamos esta issue?” y, si responde yes, click al botón.
- Todo queda anotado en un log: ningún error se esconde en el script.
- 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 sudarpandas
para manejar el Excel como todo un profesionalwebbrowser
+ 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.