将Trac工单转换为Github问题
项目描述
Tratihubis通过以下步骤将Trac工单转换为Github问题
用户手动导出Trac工单以转换为CSV文件。
Tratihubis读取CSV文件并使用数据创建Github问题和里程碑。
安装
要安装tratihubis,请使用pip或easy_install
$ pip install tratihubis
如有必要,这也会安装PyGithub包。
用法
关于要转换的Trac工单的信息必须以CSV文件的形式提供。要获取此CSV文件,请使用存储在query_tickets.sql和query_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在票据的 type 和 resolution 字段中存储的功能。默认情况下,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 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | b8bfcaffa2978f571542dc520bd962a821aa76100152c39416cb748c86fdc85f |
|
MD5 | 788c1d344488d848a2e77b834dd916d4 |
|
BLAKE2b-256 | 7c697ef0f270f62a29a6b1b87e35cea78ba178556d47f382c86f2f6dec7350a8 |