RTx::ToGitHub - Convert tickets to GitHub issues


version 0.09




This is a tool to convert RT tickets to GitHub issues. When you run it, it will:

1. Prompt you for any info it needs

Run with --no-prompt to disable prompts, in which case it will either use the command line options you provide or look in various config files and git config for needed info.

2. Make GitHub issues for each RT ticket

The body of the ticket will be the new issue body, with replies converted to comments. Requestors and others participating in the discussion will be converted to @username mentions on GitHub. The conversion is based on a one-time data dump made by pulling author data from MetaCPAN to make an email address to GitHub username map. Patches to this map are welcome.

Only tickets with the "new", "open", "patched", or "stalled" status are converted. Stalled tickets are given a "stalled" label on GitHub.

3. Close the RT ticket

Unless you pass the --no-resolve option.


This command accepts the following flags:


Run in dry-run mode. No issues will be created and no RT tickets will be resolved. This will just print some output to indicate what _would_ have happened.


By default you will be prompted to enter various bits of info, even if you give everything needed on the CLI. If you pass this flag, then only CLI options and inferred config values will be used.


The github user to use. This defaults to looking for a "github.user" config item in your git config.


The github token to use. This defaults to looking for a "github.token" config item in your git config.


The repo name to use. By default this is determined by looking at the URL for the remote named "origin". This should just be the repo name by itself, without a username. So pass "Net-Foo", not "username/Net-Foo".


Your PAUSE ID. If you have a ~/.pause file this will be parsed for your username.


Your PAUSE password. If you have a ~/.pause file this will be parsed for your password.


The distribution name which is used for your RT queue name. By default, this is taken by looking for [MY]META.* files or looking in a dist.ini in the current directory. This falls back to the repo name.


If you pass this flag then the RT tickets are not marked as closed as they are converted.


You can specify a single RT ticket to convert by giving a ticket ID number.


By default, if a matching issue already exists on GitHub, the ticket will not be converted. Pass this flag to force a new issue to be created anyway.


Much of the code in this module was taken from David Golden's conversion script at


Bugs may be submitted at

I am also usually active on IRC as 'autarch' on irc://


The source code repository for RTx-ToGitHub can be found at


If you'd like to thank me for the work I've done on this module, please consider making a "donation" to me via PayPal. I spend a lot of free time creating free software, and would appreciate any support you'd care to offer.

Please note that I am not suggesting that you must do this in order for me to continue working on this particular software. I will continue to do so, inasmuch as I have in the past, for as long as it interests me.

Similarly, a donation made in this way will probably not make me work on this software much more, unless I get so many donations that I can consider working on free software full time (let's all have a chuckle at that together).

To donate, log into PayPal and send money to, or use the button at


Dave Rolsky <>


  • Dan Stewart <>

  • Michiel Beijen <>


This software is Copyright (c) 2020 by David Golden and Dave Rolsky.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004

The full text of the license can be found in the LICENSE file included with this distribution.