Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Way to pull data

Using developer API

Details

Github data can be perceived in terms of the follow hierarchy, You have organization at the top followed by repositories. Each repository has issues, comments and attachments. There are labels which can cut across different issue belonging to different repositories. Milestones belong to repository and there could be organization wide projects too shared by multiple repositories.

Pros

We can generate a report and cross verify the migrated data manually. We can hand over this report with ids of each entity to client so that they can cross verify at their end too.
We can have more control over what information we have to pull from Github
We will have access to unique ids for each entity in Github so that if something fails then we can identify what has exactly failed.

Cons

Extra effort is required to implement such a bridge to pull data from Github and generate a CSV file that Jira can understand
It is not possible to get the attachments using the api

Apis required for migration

GET /orgs/:org - get organization details by Id
GET /repos/:owner/:repo - get repositories by owner and repository id
GET /repos/:owner/:repo/issues - get issues of a repository
Most of this api have links in thir responses to the object we need

Process of Migration

  • Download Third Way - Using the manual export to fetch the data from Github (using either of the above two methods)(Generate the report for downloaded data if the API(second) method was used(Used to get attachment details) and using the api approach to fetch other details(Other than attachments)

Way to pull data

Using Organization data export and API

Details

We can use best of the above two approaches to get the work done. In this approach we can export the organization data using the manual exports (or organization migration api) to get hold of the attachments attached to issues(we cannot get attachments using apis) and then fetch the other information about the organization like repositories, issues, comments, labels, milstones, releases, projects etc using the relevant github apis

Pros

We can download all the data for an organization using this approach

Cons

Export option in github UI for any user account does not give the ability to export organization data. It only allows us to download the data which is belongs to that account and not to any organization.
We may have to use Github’s Async organization migration API to get around this problem

High level steps for pulling the data

  • Export the organization data using Either UI or organization migration api (for attachments)
    POST /orgs/:org/migrations - to start the process of generating the organization data
    GET /orgs/:org/migrations/:migrationId - to check the status of migration process
    GET /orgs/:org/migrations/:migrationId/archive - to download the compressed file with organization data and attachments

  • Us the Github api to pull the data for other entities(repositories, issues, comments, projects, milestones, labels)

Process of Migration

  • Download the data from Github (using either of the above three methods)

  • Transform the data by processing it

  • Write the transformed data to a csv file in a format understood by Jira server

  • Upload the data to Jira server and check if all the issues are migrated properly in Jira server

  • Write the code to pull data from Jira server and cross verify it with report generated while pulling data from Github(Only if API method is used)

  • Take a backup from the Jira server

  • Upload the backup to Jira cloud and then check if somethings has failed or not(ideally if the Jira server backup has all the data then there should not be any issue in this step)

Image Added

Task Breakdown and Estimation

Task

Estimation in (man hours)

Comment

Get credentials for admin for Github from client

NA

Get separate VM for development work

NA

Installations on development environment & testing of Github account credentials

Implement pulling data from Github using the api(second method) to connect and pull the data

Implement the Github data processing and data transformation

Implement the ability to export the transformed data in CSV format(compatible with Jira server)

Ability to generate basic reports

Testing

Questions

...

Doubts and Clarifications

Question

Details

Clarification

Do we need to migrate pull request details?

...

Github repositories also have pull requests marked raised by users. if we have to migrate them then they have to be migrated to Bitbucket cloud

Do we need to migrate the closed issues

...

?

There are some closed issue present in the repository which somebody had already worked upon and have resolved them so do we have to migrate them also?

Do we have to create epics in Jira cloud for issues marked with label ‘epic’?

There are some issue with labels 'Epic' against them so do we have to create epic in Jira cloud for such issues?

Do we have to migrate users also?

There are users in the SiftScience accounts so Do we have to migrate these users too to Jira cloud?

What kind of ticket should we create in Jira for each issue in Github?

Github has only one issuetype called as issues and Jira has a separate field called as issuetypes, So how should we identify which one is a bug, task, story or any other type?

Tasks for POC

Task

Details

Aim

Status

Migrate 2 Closed and 2 Open Milestones along with

...

Migrate Users related

...

Migrate Comments

...

Migrate Attachments

...

project

In Gihub, create two four milestones and add few issues under each
Now close two of the milestones and keep other two open.
Also tag issues in these milestone with projects
try to migrate the data

To check if we can create closed sprints in Jira or not

Migrate User data

In Github invite some users to join the organization
Migrate these users to JIRA

To check if we have enough information to create a user in Jira from Github

Migrate Comments

In Github create comments under different issues.
Migrate these comments under issues in JIRA

To check if we can migrate the comments under a project and a issue or not

Migrate Attachments

In github create an attachment, Migrate this attach ment to JIRA

To check if we can migrate the attachment to proper issue or not

Check the release version

Try to migrate releases from Github to Jira

To see if we can migrate releases data or not