swiftb0y / lp2gh Goto Github PK
View Code? Open in Web Editor NEWThis project forked from termie/lp2gh
launchpad to github migration tool
This project forked from termie/lp2gh
launchpad to github migration tool
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.