feat: add controlled source ingestion and replay
All checks were successful
Build and Publish Container Image / build-and-push (push) Successful in 38s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02b22-9638-76d2-bbff-b7ea1770b118
This commit is contained in:
tegwick 2026-08-22 23:57:37 +02:00
parent b95fba9a9f
commit 879012c776
16 changed files with 1156 additions and 154 deletions

View file

@ -12,6 +12,9 @@ def test_projection_sync_is_projection_only_and_reconciles(monkeypatch) -> None:
"status": "active",
"local_path": "/fallback/active",
"host_paths": {"build-host": "/repos/active"},
"remote_url": "forgejo-remote:coulomb/active-repo.git",
"git_fingerprint": "a" * 40,
"last_state_synced_at": "2026-08-22T20:00:00Z",
},
{
"slug": "retired-repo",
@ -51,10 +54,13 @@ def test_projection_sync_is_projection_only_and_reconciles(monkeypatch) -> None:
assert result["counts"] == {
"active": 1,
"with_checkout_path": 2,
"with_source_ref": 1,
"inactive": 1,
"without_source_ref": 1,
}
assert result["reconciliation"]["matched_repo_count"] == 2
assert target["active-repo"]["checkout_path"] == "/repos/active"
assert target["active-repo"]["source_ref"]["revision"] == "a" * 40
assert target["retired-repo"]["active"] is False
assert all("/sbom/" not in path for _, _, path in calls)