2011-07-12 20 views
23

Utilizamos Trac para un proyecto de código abierto en el que estoy trabajando. Me gustaría exportar todas nuestras entradas abiertas a Github's Issues. He encontrado un par de pequeños guiones que podrían hacerlo, pero me preguntaba si alguien ha hecho esto y tiene sugerencias.Cómo exportar Trac a Github Issues

Idealmente, convertiría la sintaxis de descripción de trac en un markdown y también exportaría metadatos como información de hitos, pero incluso una exportación simple y funcional probablemente sea correcta.

Respuesta

14

https://github.com/trustmaster/trac2github Parece que podría funcionar bien, cubriendo hitos, tickets, comentarios, conversión de nombres de usuarios y asignación de asignaturas.

+0

Esto parece funcionar maravillosamente, excepto que no se crean etiquetas, por lo que veo. ¿No conoces un guión que también se ocupa de las etiquetas? (nota, he enviado una [solicitud de función] (https://github.com/trustmaster/trac2github/issues/2) al propietario de trac2github) –

+0

Este script solo admite bases de datos MySQL, no SQLite, consulte https: // github.com/trustmaster/trac2github/issues/5 – yegor256

+2

Al escribir estas líneas, la secuencia de comandos trac2github ahora admite etiquetas, así como los backends SQLite y PostgreSQL Trac. – ctrueden

3

Exporté los detalles del ticket a un archivo CSV utilizando una consulta Trac y los convertí en problemas Github usando PyGithub. Puede encontrar el script de Python y la consulta de Trac en http://pypi.python.org/pypi/tratihubis/.

La ventaja del enfoque CSV es que no necesita acceso directo a la base de datos y funciona con cualquier base de datos porque todo lo que necesita es una consulta Trac. Además, puede limpiar manualmente el archivo CSV antes de la importación y p. eliminar tickets que no desea convertir a problemas.

Gracias a PyGithub, todo esto funciona con Github API v3. La API v2 ha quedado obsoleta, por lo que es posible que algunas secuencias de comandos anteriores que ya están haciendo lo mismo no funcionen.

1

También he escrito una pequeña utilidad trac-hub que hace el trabajo: http://mavam.github.io/trac-hub.

Utiliza octokit para acceder a API de github y sequel para interactuar con la base de datos de trac. Como resultado, es bastante fácil de adaptar a su instalación de trac.

1

recientemente que tenía que hacer esto sin tener acceso a la base directa para el servidor Trac y escribió un script en Python que utiliza la interfaz XML-RPC de Trac:

https://github.com/acdha/migrate-trac-issues-to-github

Hace algunos intentos de preservar las asignaciones del usuario, convierta el marcado de Trac en la descripción y los comentarios del ticket, migre los enlaces de compromiso, reescriba las referencias de los tickets a los números de emisión de Github correspondientes y preserve los datos de Trac originales para las búsquedas.