Add separate version tracking for artifacts

- Add package_versions table with immutable version records
- Support version detection from explicit param, metadata, or filename
- Add version API endpoints (list, get, delete)
- Update ref resolution to check versions before tags
- Add version column to tags table in frontend UI
- Add Create Tag form for pointing tags at existing artifacts
- Update seed data with version records
- Add 16 integration tests for version functionality
This commit is contained in:
Mondo Diaz
2026-01-15 22:25:24 +00:00
parent a98ac154d5
commit f4ced408b2
14 changed files with 1288 additions and 34 deletions

View File

@@ -97,6 +97,7 @@ def upload_test_file(
content: bytes,
filename: str = "test.bin",
tag: Optional[str] = None,
version: Optional[str] = None,
) -> dict:
"""
Helper function to upload a test file via the API.
@@ -108,6 +109,7 @@ def upload_test_file(
content: File content as bytes
filename: Original filename
tag: Optional tag to assign
version: Optional version to assign
Returns:
The upload response as a dict
@@ -116,6 +118,8 @@ def upload_test_file(
data = {}
if tag:
data["tag"] = tag
if version:
data["version"] = version
response = client.post(
f"/api/v1/project/{project}/{package}/upload",