Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Migrating and Moving Issues Between GitHub Issue Trackers

DZone's Guide to

Migrating and Moving Issues Between GitHub Issue Trackers

· DevOps Zone ·
Free Resource

The need for DevOps innovation has never been greater. Get the results from over 100 business value assessments in this whitepaper, Digital Darwinism: Driving Digital Transformation, to see the positive impact of DevOps first hand.

Some time ago I had to migrate issues from a Github project to another. In this particular case, I moved Plone CMS developer documentation issues from under my personal Github account to under the Plone’s collective community team project.

35990213

Github currently does not offer native support to move issues or issue trackers between projects. This is little strange, because I think it’s quite common use case that a personal project gets promoted under a team umbrella, the primary Github project gets changed and you want to move issues too.

Luckily, Github API provides some support for such manipulation. I found an old Python script gh-issue-importer.py by Max Korenkov for this very purpose. I refined the script to get it to a semi-working state to get my one off batch job done. Now, out of blue, Antoine Durieux apparently polished the script to make sure moving comments work.

So, meet gh-issue-importer.py, a crude hacked together piece of Python script shuffling your issues around. It also imports milestones and labels of Github project. The script uses raw urllib and Github v3 API for the heavy lifting.

If you know anything better for the task please let me know (in comments).

Interested in Kubernetes but unsure where to start? Check out this whitepaper, A Roundup of Managed Kubernetes Platforms from Codeship by Cloudbees, for an overview and comparison of Kubernetes platforms. 

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}