diff --git a/docs/_static/p2fm_migr_main.png b/docs/_static/p2fm_migr_main.png new file mode 100644 index 0000000..d8e73b4 Binary files /dev/null and b/docs/_static/p2fm_migr_main.png differ diff --git a/docs/_static/p2fm_migr_menu.png b/docs/_static/p2fm_migr_menu.png new file mode 100644 index 0000000..82b824b Binary files /dev/null and b/docs/_static/p2fm_migr_menu.png differ diff --git a/docs/_static/p2fm_migr_rest.png b/docs/_static/p2fm_migr_rest.png new file mode 100644 index 0000000..a8bad95 Binary files /dev/null and b/docs/_static/p2fm_migr_rest.png differ diff --git a/docs/pagure2forgejo/repo.rst b/docs/pagure2forgejo/repo.rst new file mode 100644 index 0000000..6becee6 --- /dev/null +++ b/docs/pagure2forgejo/repo.rst @@ -0,0 +1,52 @@ +.. _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