-
Notifications
You must be signed in to change notification settings - Fork 13
termie/lp2gh
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ready to make the switch? Here's how. Read these: - https://github.com/termie/lp2gh/blob/master/docs/moving_branches.rst - https://github.com/termie/lp2gh/blob/master/docs/moving_issues.rst -- milestone as label or milestone as milestone -- blueprints as issues -- status as label -- importance as label -- assignee as assignee or assignee as mention General order of events for a full import: (+ == done, - == in progress) + Generate all default labels that don't exist + Import all the milestones + Make a milestone name -> milestone id mapping db + Import bugs + Gather up all the tags that are used and generate those first + First pass import simply, setting basic values, labels + Build old id -> new id mapping db + Second pass + Add all comments, translating auto-linkable values + Build a 'summary' text that includes appropriate @mentions, possibly translating from a mapping db of lp names to gh names. + Update the description translating auto-linkable values and apply the milestones - Import blueprints - First pass set basic values - Build spec name -> new id mapping db - Second pass - Update the description translating auto-linkable values - Build a 'summary' comment that includes appropriate @mentions, possibly translating from a mapping db of lp names to gh names. - Add whiteboard comments, translating auto-linkable values Summary bug template <<EOF Imported from Launchpad using lp2gh. * date created: %(date_created)s * owner: @%(owner)s * assignee: @%(assignee)s * marked duplicate of issue #%(new_issued_id)s * the following issues have been marked duplicates of this: * issue #%(duplicate_1)s * issue #%(duplicate_n)s * the launchpad url was %(lp_url)s EOF Summary blueprint template <<EOF Imported from Launchpad using lp2gh. * date created: %(date_created)s * drafter: @%(drafter)s * assignee: @%(assignee)s * marked duplicate of issue #%(new_issued_id)s * the following issues have been associated with this: * issue #%(issue_1)s * issue #%(issue_n)s * this spec depends on these specs: * spec #%(issue_1)s * spec #%(issue_n)s * full spec url: %(url)s * the launchpad url was %(lp_url)s EOF Whiteboard blueprint template <<EOF The whiteboard from the launchpad original: %(whiteboard)s EOF Exported bugs look like {'id': bug.id, 'status': bug_task.status, 'importance': bug_task.importance, 'assignee': assignee and assignee.name or None, 'owner': owner.name, 'milestone': milestone and milestone.name, 'title': bug.title, 'description': bug.description, 'duplicate_of': duplicate_of.id, 'duplicates': [x.id for x in duplicates] 'date_created': to_timestamp(bug_task.date_created), 'comments': [message_to_dict(x) for x in messages]}, 'tags': bug.tags.split(), 'security_related': bug.security_related, 'lp_url': bug.web_link, id -> local mapping db of new ids to old ids status -> label and state importance -> (optional) label assignee -> (optional) to comment with mention owner -> (optional) comment with mention milestone -> (optional) milestone or label title -> title description -> body duplicate_of_link --> comment pointing to new id of duplicated duplicates_collection_link --> comment mentioning new ids of duplicates comments -> commments comment pointing to original launchpad link tags -> labels Those comments look like: {'owner': owner.name, 'content': message.content, 'date_created': to_timestamp(message.date_created), } Exported milestones look like: {'name': ms.name, 'date_targeted': date_targeted and to_timestamp(date_targeted) or None}) Exported specs look like: {'assignee': assignee and assignee.name or None, 'bugs': [x.id for x in spec.bugs], 'definition_status': spec.definition_status, 'dependencies': [x.name for x in spec.dependencies], 'date_created': util.to_timestamp(spec.date_created), 'drafter': drafter and drafter.name or None, 'implementation_status': spec.implementation_status, 'lifecycle_status': spec.lifecycle_status, 'milestone': milestone and milestone.name or None, 'name': spec.name, 'priority': spec.priority, 'summary': spec.summary, 'title': spec.title, 'whiteboard': spec.whiteboard, 'url': spec.specification_url, 'lp_url': spec.web_link, } Status labels are: ['New', 'Incomplete', 'Invalid', "Won't Fix", 'Confirmed', 'Triaged', 'In Progress', 'Fix Committed', 'Fix Released'] Definition status labels are: Approved Pending Approval Review Drafting Discussion New Superseded Obsolete Implementation status labels are: Unknown Not started Deferred Needs Infrastructure Blocked Started Slow progress Good progress Beta Available Needs Code Review Deployment Implemented Informational Lifecycle status labels are: Not started Started Complete Importance is: Critical High Medium Low Wishlist Undecided Priorities are: Not Undefined Low Medium High Essential
About
launchpad to github migration tool
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published