Vetrix Docs

Repository transfers

Repository transfers move a repository from its current owner to a different user on the instance. As an administrator you start a transfer from a dedicated page: you pick the source repository and the target user, review a preflight summary of exactly what will change, and then confirm a one-way, destructive move. A separate history page lists every recent and in-flight transfer so you can watch one run to completion and look back at earlier ones. Both pages sit in the Repositories group of the admin sidebar.

This page appears only if your administrator account has the corresponding permission.

Where to find it

  • Transfer a repository
    • URL: gitvetrix.com/admin/repos/transfer
    • Navigation: Open the admin area, then in the sidebar select Repositories and choose Transfer. The page is titled Transfer repository.
  • Review past transfers
    • URL: gitvetrix.com/admin/transfers
    • Navigation: In the same Repositories group, select Transfer history.

Start a transfer

  1. Open Transfer repository.
  2. In the Source repository field, search for the repository you want to move. Type part of an owner or name to filter the list, or type the full owner/name to look up a private repository directly, then choose it from the results.
  3. In the Target user field, search by username for the account the repository should move to, then choose it.
  4. As soon as both fields are set, the page runs a preflight check and shows a Preflight result card. While it works, it shows Running preflight….
  5. Read the Preflight result card (see the next section) to confirm the move does what you expect.
  6. Select Execute transfer. This button stays disabled until the preflight passes with no blocking errors.

Until you have picked both a source and a target, the page shows the reminder Pick a source repository and a target user to see the preflight result. If you type a full owner/name that does not exist, the field shows a Not found message.

Read the preflight result

The Preflight result card summarizes what the transfer will change before you commit to it. A badge at the top reads Ready to transfer when the move can proceed, or Blocking errors when it cannot.

The card reports four things:

  • Collaborators to drop — the number of collaborators who will lose access because they are not also collaborators on the destination, with their usernames and permission levels listed. A count of zero shows None.
  • Group grants to drop — the number of group bindings that will be removed, with each group and its permission listed. A count of zero shows None.
  • Pages to follow — how many Pages spaces move with the repository.
  • Name collision at target — whether the target already owns a repository with the same name. No collision means the name is free.

When the transfer cannot proceed, the card lists each blocking reason, such as the target user not being found, a name collision at the target, another transfer already in flight for the repository, or the source repository no longer existing. Resolve the listed reasons and the badge returns to Ready to transfer. While any blocking reason remains, Execute transfer stays disabled and a note beside it reads Resolve the blocking errors above before executing.

Confirm and execute the transfer

Selecting Execute transfer opens a confirmation dialog titled Transfer owner/repo. The dialog explains that the move is one-way: collaborators who are not also collaborators on the destination lose access, and the original owner keeps no administrative rights.

  1. Read the summary and the Destructive action notice.
  2. In the confirmation field, type the repository's full owner/name exactly as shown in the field's label. The confirm button stays disabled until what you type matches.
  3. Select Transfer repository to run the move, or Cancel to close the dialog without changes.

On success the page opens the new transfer's detail view, where you can watch it progress. If another transfer is already running for the same repository, the dialog shows an inline message with a View the existing transfer link instead of starting a second one.

Review transfer history

The Transfer history page lists recent and in-flight transfers across the instance in a table. Each row shows the transfer's State, its Source repo and Target user, and its Started and Completed times. The Actions column has a Details link that opens the full record for that transfer.

To narrow the list, use the filters above the table:

  • State — choose a single state to show, or All states to clear the filter.
  • Target user — type a username to show only transfers headed to that account.

When nothing matches, the page shows No transfers found. When no transfers have run at all, it says none have been recorded yet. Use the pager below the table to move between pages of results.

Track a single transfer

Selecting Details on a history row opens the transfer's detail page. A Back to transfer history link returns you to the list.

While a transfer is still running, the page updates on its own and shows Polling for state updates every 2s…; it stops refreshing once the transfer reaches a final state. A badge shows the current state, and if the transfer failed, a Failure detail panel explains why.

The detail page shows the transfer's core fields, including its Source repo ID, Source user ID, Target user ID, Requested by, and the Created at, Started at, and Completed at times. A Manifest digest section shows the recorded manifest, with a control to copy it; it reads Manifest summary not yet available. until the digest exists. An Archive paths section lists two read-only paths — labeled pg_dump and Manifest — and notes that downloading them from the admin UI is not available.

Understand transfer states

A transfer moves through a series of states, shown as a badge on the history and detail pages:

  • Queued — recorded and waiting to start.
  • Preflight passed — the pre-move checks cleared.
  • Preflight failed — the pre-move checks did not clear; the transfer stops here.
  • Executing — the move is underway.
  • Verifying — the move is being checked.
  • Completed — the transfer finished successfully.
  • Failed — the transfer stopped after starting; the detail page explains why.

Troubleshooting

  • Execute transfer is disabled. The preflight has not passed. Read the Preflight result card, resolve each blocking reason it lists, and wait for the badge to read Ready to transfer.
  • The confirm button will not enable. The text you typed does not exactly match the repository's owner/name. Retype it as shown in the field's label.
  • "Another transfer is already in flight for this repository." A transfer for the same source repository is still running. Use the View the existing transfer link, or open Transfer history, to watch it finish before starting another.
  • A private repository does not appear in the source list. Type its full owner/name to look it up directly rather than searching by keyword.