arc/docs/pagure2forgejo/repo.rst
Akashdeep Dhar bfb1cbdcb2 [P2F] Add investigation for migrating repository assets
Signed-off-by: Akashdeep Dhar <akashdeep.dhar@gmail.com>
2025-02-20 13:28:22 +05:30

52 lines
2.2 KiB
ReStructuredText

.. _repo:
Migrating repository assets
===========================
This document investigates the necessary methods required to migrate repository
assets from the source namespace on Pagure to the destination namespace on
Forgejo. As both Pagure and Forgejo are Git-based forges and support transmission
via HTTPS, that is what I will suggest using for the process.
Exporting repository assets from Pagure
---------------------------------------
It is crucial for the commits at the source namespace on Pagure to be signed
in order to reliably inform about the authors of the repository assets at any
given point in time. The absence of commit signatures might lead to the info
about the commit owners to be lost during the transfer if the authoring username
does not yet exist in the destination namespace.
Various artifacts like releases will not be transferred over in a 1:1 nature
and rather parts of it, for eg. tags and branches, that are associated with the
Git repository would make it to the other side. Any Git library can be made use
of to clone the source namespace locally with pre-migration changes as long as
they are well maintained by a healthy community.
Importing repository assets into Forgejo
----------------------------------------
In ideal circumstances, it is preferable to have the users associated with a
certain source namespace on Pagure to already have their accounts in the
destination namespace on Forgejo. When that cannot be made possible, the fall
back option is to rely on the commit signatures and using the inbuilt migration
option in Forgejo by providing the clone URL.
The destination namespace has to exist and the Git repository must be blank for
the migration tooling to work as the default behaviour is to force-push commits
from the local cloned copy. Alternatively, if automation is not a concern here,
one can even make use of the internal migration utility provided by Forgejo, to
move repository assets in a Git repository.
Resources
---------
.. image:: ../_static/p2fm_migr_menu.png
:target: ../_images/p2fm_migr_menu.png
.. image:: ../_static/p2fm_migr_main.png
:target: ../_images/p2fm_migr_main.png
.. image:: ../_static/p2fm_migr_rest.png
:target: ../_images/p2fm_migr_rest.png