[P2F] Add investigation for migrating issue tickets
Signed-off-by: Akashdeep Dhar <akashdeep.dhar@gmail.com>
This commit is contained in:
parent
bfb1cbdcb2
commit
7e9e52ec78
1 changed files with 111 additions and 0 deletions
111
docs/pagure2forgejo/tkts.rst
Normal file
111
docs/pagure2forgejo/tkts.rst
Normal file
|
@ -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.
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue