Pagure Exporter is now available in the Fedora package repositories and PyPI. The Pagure Exporter tool enables the migration of a Pagure repository (including metadata and issues) to a GitLab repository. Install
pagure-exporter from Fedora Linux repositories or PyPI to get started.
With most of the projects used in the Fedora Project community moving away from Pagure to the Fedora Project’s namespace on GitLab.com, Justin W. Flory proposed an initiative to the Community Platform Engineering team. The objective was to investigate and develop a self-service tool capable of helping contributors to the community migrate their project assets from Pagure to GitLab as reliably as possible, similar to the pagure-importer tool from Trac in 2015.
After investigation and development of a prototype by ARC investigators, Michal Konecny and Akashdeep Dhar as well as a backlog refinement process, the project was scoped for implementation as a part of the Fedora Infrastructure and Release Engineering work for Q4 2023 by the team’s then-product owner, Aoife Moloney.
After around a month and a half of designing, developing and testing by Akashdeep Dhar, the Pagure Exporter tool is now published for use in Fedora Linux repositories and PyPI.
Install Pagure Exporter on Fedora Linux
A package is available in the official Fedora repositories. As of publishing time, the package is available on Fedora Linux 38, 39, and Rawhide.
sudo dnf install pagure-exporter
Install Pagure Exporter from PyPI
A package is available as a PyPI project. This can be used from any distribution:
pip install pagure-exporter
Future plans for Pagure Exporter
While the application has a set of known issues, it has the following set of features today, which will expand as the development progresses:
- Transferring repository files from Pagure projects to GitLab
- Filtering repository transfer operation by branch names
- Transferring issue tickets from Pagure projects to GitLab
- Filtering issue ticket transfer operation by statuses and identities
- Migrating states, comments, and tags/labels for issues
- Inbuilt logging library is used for better compatibility with journaling
Apart from the features mentioned above, the following things encourage community members to participate in the project’s development:
- Excellent overall codebase quality is ensured with 100% coverage of functional code
- Over 75 checks are provided for unit-based and integration-based codebase testing
- GitHub Actions and Pre-Commit CI are enabled to automate maintaining code quality
- Documentation related to usage, development and testing are provided