- Nuestro dev team usa GitHub y Waffle para organizar los sprints de desarrollo.
- Los managers utilizan JIRA.
- Los devs no queremos cambiar nuestro flujo de trabajo; los managers le tienen miedo a GitHub.
- Necesitamos sincronizar ambas plataformas.
Pero cuesta y no tenemos forma de pagarlo. Ver Agile Sprint Planning: GitHub Issues and Atlassian JIRA.
https://zapier.com/zapbook/github/jira
El problema con Zapier es que en sus triggers de GitHub no tiene "Issue Comment", y en las acciones de JIRA sólo tiene Create Issues.
JIRA DVCS Connector Plugin conecta issues de GitHub con JIRA a través de smart commits, p. ej. "JRA-123 #time 2d 5h".
Configuración
- Integrating JIRA with your projects - GitHub Help.
- Linking Bitbucket Cloud and GitHub accounts to JIRA Software - Atlassian.
Problemas
- Esto sólo conecta a través de commits
- ¿Qué pasa con la creación de issues?
- ¿Qué sucede con las etiquetas?
- El OAuth de DVCS connector pide acceso RW a todas mis organizaciones.
Necesitamos:
- Crear issues desde GitHub
- Crear issues desde JIRA
- Crear comentarios desde GitHub. Esto ya se puede realizar con los JIRA smart-commits.
- Crear comentarios desde JIRA
- Cerrar issues desde GitHub. Esto ya se puede realizar con los JIRA smart-commits.
- Cerrar issues desde JIRA.
- Mover issues a validación cuando se crea un release (y se sube a producción).
- About Webhooks - GitHub
- Webhooks - GitHub Developers
- JIRA Webhooks Overview
- JIRA REST API Example - Create Issue
curl -u user:pass -X POST --data @issue.json -H "Content-Type: application/json" https://fubar.atlassian.net/rest/api/2/issue/
Algunas librerías En Node.js (stars:151, forks: 29), Python (31, 27), Go (43, 26).
Pero puppet labs ya tiene un servicio de Sinatra (17, 13) que permite:
- Nuevos PRs se pueden asociar a issues de JIRA
- Nuevos PRs que no están asociados a JIRA issues, se agregan en el backlog
- Cerrar y reabrir PRs agrega un comentario en el issue en JIRA
- Comentar en un PR agrega comentarios en el issue de JIRA
- Importar masivamente PRs a JIRA
Los eventos de GitHub webhooks que nos interesan son:
Los eventos de JIRA webhooks que nos interesan son:
Los API endpoints de JIRA:
Hacer nuestros propios syncs con Webhooks, con esto evitamos dar acceso a JIRA a todas nuestras organizaciones, y desarrollamos las sincronizaciones pendientes que no provee el conector.
En paralelo probamos una solución en Go y otra en Sinatra (la de puppet labs).
En Go se puede combinar esta librería de webhooks, y está de JIRA.
- (2015-12-01T15:30:00-0600) El DVCS connector no funcionó: https://github.com/mxabierto/dgm/issues/682
- (2015-12-01T16:30:00-0600) Vamos a probar el proyecto de puppet labs
- (2015-12-01T17:30:00-0600) El config del webhook no se puede hacer desde cli porque tengo 2FA.
- (2015-12-02T17:15:00-0600) Se resolvió la instalación de puppet-webhooks. Escribí una wiki. El entry point es pull_request_app, GitHub Controller se encarga de entender los eventos. Ahí es donde podríamos agregar más funcionalidad.
- (2015-12-04T16:45:00-0600) Se descarta Zapier por falta de Triggers y Actions de GitHub y JIRA