Properly handle non-existing repositories

🔥 Problem

Similar to #356562 (closed), we need to properly handle not found repositories. These are currently being marked with status import_skipped and skipped reason not_found. We should restrict import_skipped to unexpected failures when trying to initiate/complete a migration.

🚒 Solution

If a repository is not found (it doesn't exist in the old and new registry) it means that there is nothing to do and that on the first tag pushed to it the repository will be automatically created on the new registry.

We should therefore:

  • Mark the repository as done instead with:
    • migration_status: 'import_done'
    • migration_skip_reason: 'not_found'