forked from roskakori/tratihubis
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README.txt
68 lines (55 loc) · 2.59 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Tratihubis
==========
Tratihubis converts Trac tickets to Github issues by using the following steps:
1. The user manually exports the Trac tickets to convert to a CSV file.
2. Tratihubis reads the CSV file and uses the data to create Github issues and
milestones.
For more information, visit <http://pypi.python.org/pypi/tratihubis/>.
-----
May, 2015
Edits for GENI-NSF use:
- SQL edits for Trac 0.11 backed by PostgreSQL, and export keywords,
priorities, and CC list.
- Support labels from keywords and priorities.
- Add option `--skipExisting`: If there are existing tickets or pull requests, skip importing
those tickets. Useful to pick up where an import left off.
- Fix up translator from wiki to Markdown to properly convert links,
and links to commit messages, etc.
- Try to support logging the name of the github user even when we
don't have a Github key for them, and try to have the commenter and
ticket reporter be the right person where possible.
- Support repositories belonging to an organization, not the user.
- Watch the Github API rate limit and sleep until the reset time.
Add additional pauses during large imports to avoid Github abuse
prevention limits (not entirely successfully).
- Include Trac CC list in ticket comment (stripping email domain from
the CC list).
- Change print statements to log messages.
- Add option `ticketToStartAt` in config file, to allow resuming import.
- Cache Github objects, and optionally use `update()` if
`--updateObjects` is supplied. API calls take 5 seconds+ each, and
this eliminates many calls.
-----
Usage:
1) Export Tickets from Trac
For each `.sql` file included, create a new Trac report
View Tickets -> Available Queries -> Create New Report
Paste in the SQL from one of the files. Run the report, and at the
bottom click the link to save it as CSV.
2) Write a tratihubis config file
See sample-ticket-export.cfg
3) Configure repository
- Create labels for all Trac keywords, resolutions, priorities, and
ticket types that you want to preserve
- Ensure all users for whom you have tokens and who will be issue
creators are listed as collaborators on the repository
- Enable issues
Do this for both a practice repository and your real repository.
3) Practice ticket imports
Run your ticket import into a new / practice repository. Check that it
works and the new github issues look good. Then delete that
repository.
4) Import tickets
Run command something like: `python ./tratihubis.py ../my-ticket-export.cfg --skipExisting --really`
Note the use of `--skipExisting` to allow picking up where an
interrupted import left off.