{"id":18772231,"url":"https://github.com/doctrine/jira-github-issues","last_synced_at":"2025-07-07T12:06:11.388Z","repository":{"id":43036846,"uuid":"47478712","full_name":"doctrine/jira-github-issues","owner":"doctrine","description":"Scripts to migrate Jira to Github issues","archived":false,"fork":false,"pushed_at":"2020-04-27T12:36:01.000Z","size":19,"stargazers_count":39,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-28T14:29:56.046Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doctrine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-06T00:56:43.000Z","updated_at":"2025-02-01T06:58:45.000Z","dependencies_parsed_at":"2022-09-03T06:10:45.476Z","dependency_job_id":null,"html_url":"https://github.com/doctrine/jira-github-issues","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doctrine%2Fjira-github-issues","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doctrine%2Fjira-github-issues/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doctrine%2Fjira-github-issues/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doctrine%2Fjira-github-issues/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doctrine","download_url":"https://codeload.github.com/doctrine/jira-github-issues/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doctrine%2Fjira-github-issues/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258009518,"owners_count":22635829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T19:28:14.804Z","updated_at":"2025-07-07T12:06:11.370Z","avatar_url":"https://github.com/doctrine.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jira to Github Issues Migration\n\nWe are using the [Github Import API\nBeta](https://gist.github.com/jonmagic/5282384165e0f86ef105) to migrate issues\nfrom Jira via REST API to Github.\n\nReasons for our move are the constant Spam Problems on our public Jira that we couldn't\nget under control and the amount of maintenance we have to put into Jira.\n\nDownsides of the migration are:\n\n- the lack of multi milestone support on Github\n- the lack of \"good\" search engine and filtering on Github issues\n- the general wonkyness of Github issues\n- no security issue support\n\nTo keep all history we are importing issues from Jira.\n\nConfiguration: Create a `.env` file with the following environment variables:\n\n```\nJIRA_URL=http://server/path/to/jira\nJIRA_USER=foo\nJIRA_PASSWORD=bar\nGITHUB_USERNAME=name of the user importing the tickets\nGITHUB_TOKEN=token for the user, propably requires admin token with everything\n```\n\nThis repository contains all the scripts necessary for the migration.\n\n* `version_to_milestones.php` script to download all versions of a project and create equivalent\n  milestones in Github Issue Tracker. It keeps a map of version-id/number to\n  milestone-id in the data directory for the import.\n\n* `export_jira_tickets.php` script to download all Jira issues per project and put them into a\n  folder, one file per issue with the Github import API format. This\n  script is using the Github milestones and labels as input.\n  **REQUIRES CHANGES** to the `$knownIssueTypes` and the `$knownAssigneesMap`\n  variables for mapping issue types to labels in a following step and assigning\n  the right Github users as creator or assignee of an issue.\n\n* `import_tickets.php` script to push all tickets to a Github import API queue and poll for\n  status, assigning each downloaded jira issue its appropriate Github Issue ID.\n\n* `issue_numbers.php` script to fetch all imported tickets from Github and store the mapping\n  into a file in the data folder that is needed for further processing.\n\n* `attachments.php` script uses the imported issue numbers to create secret\n  Gists for non-binary attachments of a Jira ticket and links them into the\n  Github ticket by posting a comment.\n\n* `assign_label.php` script to create labels according to Resolutions and Issue Types\n  for a Jira Project in Github Issue tracker from the previously fetched import issue numbers.\n\n* `jira_versions_to_github_releases.php` script to pull all versions from Jira and prepare a list of releases to\n  create on Github, including release notes with adjusted ticket references and\n  then push them. This script creates a hashmap of Jira Version Id to Github\n  Release Id for future Redirects when Jira is decommissioned. **INCOMPLETE**\n\n* `generate-issues-map.php` script to pull all tickets from Github, extract the Jira Ticket Number\n  from it and create a map of Jira Ticket Key to Github Id for future Redirects\n  when Jira is decommissioned.\n\nWant to use this as external party? Things to watch out for:\n\n- There is some configuration code in `export_jira_tickets.php` that must be\n  adjusted.\n- Also in `export_jira_tickets.php` is commeted out code for handling inward\n  and outward links between tickets.  For us, the commented version currently\n  generates Markdown links to the Jira URLs, where we have redirects in place\n  to go to the Github issue.\n- The Markdown converter currently detects Doctrine Jira Project Keys and converts\n  them again to links to the old jira that then get redirected to the Github tracker\n  using a script on top of `generate-issues-map.php`, which also needs project key adjustments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoctrine%2Fjira-github-issues","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoctrine%2Fjira-github-issues","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoctrine%2Fjira-github-issues/lists"}