chevah / trac-to-github

Hacks used to migrate from Trac sqlite to GitHub
MIT License
1 stars 0 forks source link

Adapt Twisted Trac ticket migration script #23

Closed danuker closed 2 years ago

danuker commented 2 years ago

Fixes #17 See also: #16

Importing the 8 sample tickets took 3 minutes (2.666 tickets/minute; all Twisted tickets would take 64.66 hours if the sample is representative)

Changes:

Checkboxes for a lot of details - [x] status change history - [x] include status changes and changers - [x] include owner changes - [x] merge comments/statuschanges occurring at the same time - [x] ~~Check API to notify subscribed users on GitHub, based on CC field~~ There is no field for adding subscribers, neither with the [Import API](https://gist.github.com/jonmagic/5282384165e0f86ef105), [nor with the slow API](https://docs.github.com/en/rest/issues/issues#update-an-issue). - [x] ~~remove emails from CC field ([example](https://github.com/chevah/trac-migration-staging/issues/71))~~ Consider using cc__user1 cc__user2 as searchable keywords, but do not give out email domains. That way, users can search for `cc__themselves` and manually subscribe. - [x] description must have date of creation (not just modified) - [x] fix ["Replying to ___" links](https://github.com/chevah/trac-migration-staging/issues/71#issuecomment-1126534877) from comments - Added a comment anchor. - [x] Create and reuse GitHub milestones from Trac milestones - [x] GitHub mapping of top users (ask permission from them?) - [x] may automatically map those with oauth_state - [x] remove `@` GitHub mention for those without oauth_state - looks like not a lot of users have an `oauth_state` `session_attribute`: `select author, count(author), name from ticket_change left join session_attribute on author=sid and name='oauth_state' group by author order by count(*) desc;` - [x] Create labels for all the "fixed" metadata - see #17 - [x] Create "bug" label for tickets of type "bug" (as opposed to Trac "task") - [x] Check what else applies from #16 - [x] ~~Consider treating [CommitTicketReference](https://github.com/chevah/trac-migration-staging/issues/74#issuecomment-1132018042)s~~ [Ugly but works already](https://github.com/chevah/trac-migration-staging/issues/77#issuecomment-1132520698). - [x] Unquote the large commit hash, so it's an easier to click link - [x] Remove extraneous punctuation - [x] Fix mentioning unknown users (but still attempt `USER_MAPPING` first). - [x] ~~Link directly to the new expected ~~GitHub URLs~~ ticket IDs (i.e. just #1234). This has the advantage that the redirect is not needed, but if someone creates a ticket or PR during the import, the already-imported tickets might link to it, wrongly.~~ Should happen already after generating `tickets_expected_gold.tsv` with the target ticket IDs. Will check in `twisted/twisted-trac-migration`.

reviewers: @adiroiban

Here are some sample outputs generated by commit 89a0d66. If you want more, ask me.

danuker commented 2 years ago

needs-review

danuker commented 2 years ago

needs-changes