#183 [P2F] Add investigation for migrating issue tickets
Merged 3 months ago by t0xic0der. Opened 3 months ago by t0xic0der.
fedora-infra/ t0xic0der/arc gogs-tick  into  main

@@ -0,0 +1,111 @@ 

+ .. _tkts:

+ 

+ Migrating issue tickets

+ =======================

+ 

+ This document investigates the necessary methods required to migrate issue 

+ tickets from the source namespace on Pagure to the destination namespace on

+ Forgejo. As both Pagure and Forgejo support REST API, I will focus on using

+ that to conveniently automate the migration process.

+ 

+ Exporting issue tickets from Pagure

+ -----------------------------------

+ 

+ As this has already been covered

+ `here <https://fedora-arc.readthedocs.io/en/latest/pagure2gitlab/pagureinfo.html>`_,

+ it will not be documented again. Please feel free to open an issue ticket

+ or a pull request against the namespace if more information is sought about

+ this.

+ 

+ Importing issue tickets into Forgejo

+ ------------------------------------

+ 

+ The Forgejo API follows the REST standard and is documented with the OpenAPI

+ or Swagger format, making it incredibly easy for developers to understand the

+ behaviour of Forgejo API. The documentation is also interactive in nature and

+ it is highly recommended for folks to take it for a spin with the required

+ correct credentials.

+ 

+ The following items are considered within the scope for the migration.

+ 

+ - *Issue ticket title and body*

+ 

+ - *Labels associated with the issue tracker*

+ 

+ - *Milestones associated with the issue tracker*

+ 

+ - *User information like creator and assignee*

+ 

+ - *Status of the issue ticket*

+ 

+ - *Comments under the issue ticket*

+ 

+ The following items are considered beyond the scope for the migration.

+ 

+ - *Reactions to issue tickets*

+ 

+   While it is convenient to create reactions under an issue ticket in a

+   destination namespace on a Forgejo deployment, it is tricky to retrieve

+   that information from the source namespace on a Pagure deployment.

+   Reactions can also be retracted at any given point in time from under

+   an issue ticket, making them an unreliable communication medium,

+   regardless of how convenient they can be to the users.

+ 

+ - *Reactions to comments*

+ 

+   While it is convenient to create reactions under a comment entry in a

+   destination namespace on a Forgejo deployment, it is tricky to retrieve

+   that information from the source namespace on a Pagure deployment.

+   Reactions can also be retracted at any given point in time from under

+   a comment entry, making them an unreliable communication medium,

+   regardless of how convenient they can be to the users.

+ 

+ The following items are considered nice to haves for the migration.

+ 

+ - *Attachments to issue tickets*

+ 

+   Pagure maintains an alternative Git repository for storing attachments

+   associated with issue tickets in the source namespace and Forgejo provides

+   means to upload them in the destination namespace using the REST API. It

+   can however be tricky to scan the body of an issue ticket to discern these

+   assets from the source and reinstate them at the destination on a case by

+   case basis. I understand the importance of this though so an attempt will

+   be made to implement this after all the core requirements are fulfilled.

+ 

+ - *Attachments to comments*

+ 

+   Pagure maintains an alternative Git repository for storing attachments

+   associated with comment entries in the source namespace and Forgejo provides

+   means to upload them in the destination namespace using the REST API. It

+   can however be tricky to scan the body of an comment entry to discern these

+   assets from the source and reinstate them at the destination on a case by

+   case basis. I understand the importance of this though so an attempt will

+   be made to implement this after all the core requirements are fulfilled.

+ 

+ Some caveats

+ ~~~~~~~~~~~~

+ 

+ - Labels and milestones have to created in the destination namespace before they

+   can be associated with an issue ticket as the request body makes use of lists of

+   Label ID and Milestone ID for validation.

+ 

+ - A separate dictionary needs to be maintained for mapping label names from the

+   source namespace with the label identifiers at the destination namespace to ensure

+   consistency in the information migrated.

+ 

+ - A separate dictionary needs to be maintained for mapping milestone names from

+   the source namespace with the milestone identifiers at the destination namespace to

+   ensure consistency in the information migrated.

+ 

+ - At the moment, Forgejo does not support the creation of an issue ticket with a

+   custom identifier which means that ensuring an empty issue tracker in the destination

+   namespace is mandatory for smooth functioning.

+ 

+ - At the moment, Forgejo does not support the creation of private issue tickets,

+   and hence, migration of certain repositories that make use private issue tickets,

+   would have to be held back or made to GitLab.

+ 

+ - As mentioned above, discerning attachments from issue tickets and comment entries

+   to effectively replace their placeholders with the changed URLs at the destination

+   namespace would be an interesting problem.

+ 

Signed-off-by: Akashdeep Dhar akashdeep.dhar@gmail.com

[P2F] Add investigation for migrating issue tickets

Metadata Update from @t0xic0der:
- Request assigned

3 months ago

rebased onto bfb1cbd

3 months ago

Pull-Request has been merged by t0xic0der

3 months ago
Metadata