# Github Issues Migration Plan
There are overall two areas
1) The figuring out of our processes
2) The actual migration of data
## The Processes
### Bugzilla
Downstream already links to Github Issues
Upstream
* Add a comment linking to BZ (https://bugzilla.redhat.com/show_bug.cgi?id=1234)
* Add a "bugzilla" label to the Github Issue
Port the Redmine Bugzilla script (which already runs on GHA) to be for GHA and
### JIRA
We don't have any integration today. Other folks are working on adding JIRA <-> GHI integration so that can help out with this portion later.
We should be able to rely on Satellite bugzilla <-> JIRA automation? (rchan suggestion)
For other stakeholders: any future integration is TBD
### Epics
#### Labeling Epics
TBD: Either use `[EPIC]` in the issue title, or create an `Epic` label
#### Identifying sub-issues and parent issues
option 1: In the parent issue description list the issues as clickable links and then child issues would show "a related"
option 2: Use a project board to organize the epic
### Issue Relation
Referencing another issue shows a relation
### Tags
Common labels use common colors
* Bugzilla
* High Priority
* Low Priority (maybe?)
* Katello
* GalaxyNG
* Documentation
* Easy Fix
* Wishlist (maybe?)
* Triaged
* Bug
* Feature
* Performance (maybe?)
* Demo-worthy ;)
Example label system (one of the better ones I've seen, skip to page 3-5 for the general ones) https://github.com/servo/servo/labels
We won't have Installer and Operator or CI/CD because they'll have their own GHI projects now
Default labels: https://docs.github.com/en/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization
#### Project Specific labels
* Pulp2 (for RPM project only)
* Dev Environment (for installer only)
### Private issues and comments
We won't have these
### Querying and Filtering
* You can see issues for the pulp org: https://github.com/issues?q=user%3Apulp+
* Filter by label: https://github.com/issues?q=archived%3Afalse+user%3Apulp+label%3A%22Needs+Cherry+Pick%22
Filter syntax: https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests
We won't have saved queries, but instead we can have a wiki page that will have links on it basically acting as saved queries
### Handling the workflow
NEW: Open and no assignee
ASSIGNED: Open with assignee
POST: Open and has linked:pr
MODIFIED: Issue was closed via merge PR with `closes #1234`
CLOSED - CURRENTRELEASE: Closed and on a milestone
https://docs.github.com/en/github/searching-for-information-on-github/searching-on-github/searching-issues-and-pull-requests#search-for-linked-issues-and-pull-requests
### Indicating a Release Blocker
Add an open issue to the milestone.
### Moving Issues between projects
Yes GHI can move issues between projects
### Checklist templates
Put these onto a wiki page as escaped markdown content and then paste it into the issue you need it in
### Sprint
Have a sprint label for the current sprint
To look at old sprints: have a query that uses sprint start and end dates and look for issues that were closed in that time window
Alternatively we can use a project board especially if we move to kanban
### Wiki
Yes we should use the wiki, and let's let each repo decide if they want to use it
We will port this data manually: https://pulp.plan.io/projects/pulp/wiki/
### Quarter field and wishlist buckets?
[homework] Experiment with project boards https://github.com/orgs/pulp/projects
## The Migration Plan
* Which issues do we migrate over (all? open?)
* Only NEW issues
* Should we keep redmine issues (as readonly)?
* Keep redmine but make it readonly
* Changelogs still point to redmine
* Need to align to a release
* Backports/old release branches
* Port release automation to old release branches
* Move repository by repository
* Move pulpcore later/last
* Lots of issues aren't labeled properly
* Have 1-2 people working with plugins to migrate their issues
* Unify labels across repositories (see line 45)
* Needs to happen before issue migration
* Use existing tooling
* https://github.com/IQSS/redmine2github
* Status of issues?
* Add a new status for migrated issues
* Migrate milestones?
* Migrate open milestones
* Make a project checklist