How to Migrate Repository from Pagure

DRAFT DOCUMENTATION: This documentation is currently in draft form and may not be fully tested and correct. Please verify all procedures before use and report any issues or inaccuracies.

Purpose

This document outlines the steps required to migrate repositories from Pagure to Fedora Forge, ensuring proper transfer of repository contents, issue tickets, and pull requests to the new Forgejo-based platform.

Scope

This procedure applies to Fedora Project contributors who need to migrate repositories from the legacy Pagure service to the new Fedora Forge platform. This includes subprojects, Special Interest Groups (SIGs), and other official Fedora Project repositories.

Prerequisites

  • Repository Access: You must have access to the source repository on Pagure and the necessary privileges to create repositories in the target organization on Fedora Forge.

  • Organization Permissions: You must have the ability to create repositories under the target namespace in Fedora Forge. If you don’t have these privileges, consult a member from the relevant subproject or SIG, or contact the Fedora Infrastructure team.

Do NOT create or use an API key for standard repository migration. The API key is only needed for migrating private tickets. Using an API key in the standard migration will cause the migrator to import only private tickets instead of the full repository content. If you haven’t set the repository to private, these private tickets will become publicly visible.

We recommend migrating your other personal repositories present on Pagure over to Codeberg, which is also based on Forgejo and supports native migration of repository contents, issue tickets and pull requests from Pagure using the instructions provided here — with some minor changes here and there.

Procedure

The migration process involves two main steps: accessing the Fedora Forge migration tool and configuring the repository migration.

Access Fedora Forge Migration Tool

  1. Log into Fedora Forge using your Fedora Account credentials and navigate to the destination organization where you want to create the migrated repository.

  2. Click on the New migration button to begin the migration process. pagure migration new migration button

  3. Click on the Pagure button at the bottom of the migration page. pagure migration select pagure source

Configure Repository Migration

  1. Fill in the migration form with the information from your source repository:

    1. Repository Name: Enter the desired name for the migrated repository

    2. Clone URL: Enter the Git clone URL from your Pagure repository

    3. Description: Copy the repository description from Pagure (optional)

    4. Visibility: Set to public for publicly accessible content

    5. Leave the token field empty - this is crucial for standard repository migration. pagure migration form filled

      Do NOT enter an API key in the token field. If you provide an API key here, the migrator will only import private tickets instead of the full repository content (code, public issues, pull requests, etc.). This will result in an incomplete migration. Additionally, if you haven’t set the repository to private, these private tickets will become publicly visible, potentially exposing confidential information.

  2. Click on the Migrate repository button to start the migration. pagure migration start migration button

  3. Wait for the migration to complete. This creates a repository with all publicly accessible data. pagure migration completion success

Verification

  • Confirm that the migrated repository appears in the target organization on Fedora Forge.

  • Verify that all repository contents (code, branches, tags) have been successfully migrated.

  • Check that issue tickets and pull requests have been transferred correctly.

  • Test repository access permissions for team members.

  • Verify that the repository is accessible via Git clone operations.