我们将 Trac 用于我正在进行的一个开源项目。我想将我们所有的公开票导出到 Github 的问题。我发现了一些可能会这样做的小脚本,但我想知道是否有人这样做并有建议。
理想情况下,它将 trac 的描述语法转换为 markdown 并导出里程碑信息等元数据,但即使是简单的、有效的导出也可能没问题。
我们将 Trac 用于我正在进行的一个开源项目。我想将我们所有的公开票导出到 Github 的问题。我发现了一些可能会这样做的小脚本,但我想知道是否有人这样做并有建议。
理想情况下,它将 trac 的描述语法转换为 markdown 并导出里程碑信息等元数据,但即使是简单的、有效的导出也可能没问题。
https://github.com/trustmaster/trac2github看起来可能运作良好,涵盖里程碑、票证、评论、转换用户名和设置受让人。
我使用 Trac 查询将工单详细信息导出到 CSV 文件,并使用PyGithub将它们转换为 Github 问题。您可以在http://pypi.python.org/pypi/tratihubis/找到 Python 脚本和 Trac 查询。
CSV 方法的优点是您不需要直接访问数据库,它适用于任何数据库,因为您只需要一个 Trac 查询。此外,您可以在导入之前手动清理 CSV,例如删除您不想转换为问题的票证。
感谢 PyGithub,所有这些都可以在 Github API v3 上运行。API v2 已被弃用,因此一些执行相同操作的旧脚本可能不再工作。
你可以试试我的trac2github PHP 脚本,它只移动票证,试图保留评论的格式和顺序。
我还编写了一个小型实用程序trac-hub来完成这项工作: http: //mavam.github.io/trac-hub。
它使用octokit来访问 github 的 API 和后续接口到 trac 的数据库。因此,很容易适应您的 trac 安装。
我最近需要在没有直接访问 Trac 服务器的数据库的情况下执行此操作,并编写了一个使用 Trac 的 XML-RPC 接口的 Python 脚本:
https://github.com/acdha/migrate-trac-issues-to-github
它尝试保留用户分配,转换工单描述和评论中的 Trac 标记,迁移提交链接,将工单引用重写到相应的 Github 问题编号,并保留原始 Trac 数据以供搜索。