跳转到主要内容

将Trac工单转换为Github问题

项目描述

Tratihubis通过以下步骤将Trac工单转换为Github问题

  1. 用户手动导出Trac工单以转换为CSV文件。

  2. Tratihubis读取CSV文件并使用数据创建Github问题和里程碑。

安装

要安装tratihubis,请使用pip或easy_install

$ pip install tratihubis

如有必要,这也会安装PyGithub包。

用法

关于要转换的Trac工单的信息必须以CSV文件的形式提供。要获取此CSV文件,请使用存储在query_tickets.sqlquery_comments.sql中的SQL语句创建新的Trac查询。然后执行查询,通过点击“以其他格式下载:逗号分隔的文本”并选择例如/Users/me/mytool/tickets.csv/Users/me/mytool/comments.csv作为输出文件来保存结果。

接下来创建一个配置文件来描述如何登录到GitHub以及要转换的内容。例如,您可以将以下内容存储在 ~/mytool/tratihubis.cfg

[tratihubis]
user = someone
password = secret
repo = mytool
tickets = /Users/me/mytool/tickets.csv
comments = /Users/me/mytool/comments.csv

然后运行

$ tratihubis ~/mytool/tratihubis.cfg

这会检查输入数据和GitHub信息的有效性,并将要执行的操作记录到控制台日志中。

要实际创建GitHub问题,您需要启用命令行选项 --really

$ tratihubis --really ~/mytool/tratihubis.cfg

请注意,如果操作失误,GitHub问题和里程碑无法删除。您的唯一补救措施是删除整个仓库并重新开始。因此,在启用 --really 之前,请确保 tratihubis 的操作符合您的需求。

用户映射

如果Trac用户在GitHub上的用户名不同,您可以指定映射。例如

users = johndoe: jdoe78, *: me

这将把Trac用户 johndoe 映射到GitHub用户 jdoe78,其他人映射到用户 me。默认值是

users = *:*

这会将每个Trac用户映射到具有相同名称的GitHub用户。

标签映射

GitHub标签在某种程度上模仿了Trac在票据的 typeresolution 字段中存储的功能。默认情况下,GitHub支持以下标签

  • bug

  • duplicate

  • enhancement

  • invalid

  • question

  • wontfix

另一方面,Trac有一个 type 字段,默认情况下可以是

  • bug

  • enhancement

  • task

此外,关闭的Trac票据有一个 resolution,其中之一可以是

  • duplicate

  • invalid

  • wontfix

labels 配置选项允许将Trac字段映射到GitHub标签。例如

labels = type=defect: bug, type=enhancement: enhancement, resolution=wontfix: wontfix

在这里,labels 是一个逗号分隔的映射列表,其形式为 <trac-field>=<trac-value>:<github-label>

如果类型或标签包含ASCII字母、数字和下划线(_)之外的其他字符,请将它们放在引号之间

labels = type="software defect": bug

附件

有关此内容的详细信息,请参阅 问题 #19 <https://github.com/roskakori/tratihubis/issues/19>:添加对 attachmentsprefix 的文档。

限制

即使原始Trac票据或原始Trac评论是由不同用户打开的,GitHub问题和评论的作者始终是配置中指定的用户。

GitHub问题和评论的时间戳是当前时间,而不是Trac的时间。

GitHub问题描述包含原始Trac Wiki标记,没有翻译到GitHub Markdown。

Trac里程碑的到期日期不会迁移到GitHub里程碑,因此当转换完成时,您必须手动设置它。

没有票据的Trac里程碑不会转换为GitHub里程碑。

支持

如有疑问和问题,请在 <https://github.com/roskakori/tratihubis/issues> 打开一个问题。

要获取源代码或创建自己的分支以实现修复或改进,请访问 <https://github.com/roskakori/tratihubis>。

许可证

版权 (c) 2012-2013,Thomas Aglassinger。保留所有权利。在 BSD 许可证 下分发。

更改

版本 0.5,2013-02-13

(由 Steven Di Rocco 贡献)

  • 添加了对文件附件的支持。

  • 添加了对GitHub API限制导致的信息丢失的处理方案:* 在每个评论的顶部添加了trac评论者和日期。* 在每个问题中自动添加注释,显示原始作者、作者日期和最后修改日期。

  • 修复了与PyGithub 1.8不兼容的API调用。

版本 0.4,2012-05-04

  • 添加了 labels 配置选项以将Trac状态和解决映射到GitHub标签。

版本 0.3,2012-05-03

  • 添加了 comments 配置选项以转换Trac票据评论。

  • 已添加对已关闭相应Trac票据的问题的关闭。

  • 添加了对分配给用户的验证。他们必须有一个活跃的Github用户。

版本 0.2,2012-05-02

  • 添加了将Trac用户映射到Github用户的配置选项 users

  • 添加了二进制文件,以便运行 tratihubis 而不是 python -m tratihubis

  • 将日志中的假设问题号改为考虑现有问题。

版本 0.1,2012-05-01

  • 首次发布。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

tratihubis-0.5.zip (29.8 kB 查看散列)

上传时间

支持者