Pagure to Forgejo Importer
Purpose
With Fedora Project deciding on moving over to Forgejo as the new git forge, it is important to devise a convenient method with which project maintainers can migrate their repository assets and issue tickets to a Forgejo namespace maintained by the Fedora Infrastructure.
Resources
Initiative proposal: https://pagure.io/fedora-infra/infrastructure-projects/issue/3
Tracking ticket: https://pagure.io/fedora-infra/forgejo-deployment/issue/10
Pagure documentation: https://docs.pagure.org/pagure/#
Forgejo API documentation: https://codeberg.org/api/swagger
Fedora Moves Towards Forgejo: https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/
Fedora Chooses Forgejo: https://communityblog.fedoraproject.org/fedora-chooses-forgejo/
Requirements
Same as the requirements for Pagure Exporter.
Nice to haves
Same as the nice to haves for Pagure Exporter.
Investigation
Following are the investigations of importing repository assets and issue tickets from Pagure to Forgejo.
Conclusions
As this proposal would very likely make use of the same foundations that were already established with the previously investigated and implemented project, it is strongly recommended to implement this project as being an extension to the existing project instead of recreating the foundations of the project again from the ground up.
Proposed Roadmap
Add a command line option to segregate options for GitLab and Forgejo support
Implement the issue tickets transfer in the command line utility
Implement the repository assets transfer in the command line utility
Ensure that the project codebase has a healthy coverage of functional tests
(Optional) Create a CI bot for reliably automating the migration process
Prepare the documentation for development and usage purposes for the tool
Make releases for Fedora Linux repositories for RPM and PyPI for containers
Announce the general availability of the project on community platforms
Estimate of work
This work will need 2 developers. The estimation for this project is 4 weeks.