state-hub/api/services/repository_identity.py
tegwick 8988a093f2
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Multi-Context Image / build-and-push (push) Successful in 24s
feat: persist repository rename identity
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a049a4-ee9f-78e1-9d66-2cb0f9bea3e3
2026-08-28 22:08:21 +02:00

23 lines
743 B
Python

from sqlalchemy.ext.asyncio import AsyncSession
from api.models.managed_repo import ManagedRepo
from api.models.repository_rename import RepositoryForgeIdentity, RepositorySlug
def stage_initial_repository_identity(
session: AsyncSession, repo: ManagedRepo
) -> None:
"""Attach non-guessed identity state to a newly flushed repository row."""
if repo.id is None:
raise ValueError("repository must be flushed before identity records are staged")
session.add_all(
[
RepositoryForgeIdentity(repo_id=repo.id),
RepositorySlug(
repo_id=repo.id,
slug=repo.slug,
kind="canonical",
protected=True,
),
]
)