generated from coulomb/repo-seed
repository CRUD
This commit is contained in:
@@ -48,6 +48,24 @@ class RepositoryCreate(BaseModel):
|
||||
}
|
||||
|
||||
|
||||
class RepositoryUpdate(BaseModel):
|
||||
name: str | None = None
|
||||
description: str | None = None
|
||||
branch: str | None = None
|
||||
|
||||
model_config = {
|
||||
"json_schema_extra": {
|
||||
"examples": [
|
||||
{
|
||||
"name": "Renamed Repository",
|
||||
"description": "Updated curator-facing summary.",
|
||||
"branch": "main",
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class AbilityCreate(BaseModel):
|
||||
name: str
|
||||
description: str = ""
|
||||
@@ -305,6 +323,34 @@ def get_repository(
|
||||
raise HTTPException(status_code=404, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@app.patch("/repos/{repository_id}")
|
||||
def update_repository(
|
||||
repository_id: int,
|
||||
payload: RepositoryUpdate,
|
||||
service: RegistryService = Depends(get_service),
|
||||
) -> dict[str, object]:
|
||||
try:
|
||||
return asdict(
|
||||
service.update_repository(
|
||||
repository_id,
|
||||
**payload.model_dump(exclude_unset=True),
|
||||
)
|
||||
)
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status_code=404, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@app.delete("/repos/{repository_id}", status_code=204)
|
||||
def delete_repository(
|
||||
repository_id: int,
|
||||
service: RegistryService = Depends(get_service),
|
||||
) -> None:
|
||||
try:
|
||||
service.delete_repository(repository_id)
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status_code=404, detail=str(exc)) from exc
|
||||
|
||||
|
||||
@app.post("/repos/{repository_id}/analysis-runs", status_code=201)
|
||||
def create_analysis_run(
|
||||
repository_id: int,
|
||||
|
||||
Reference in New Issue
Block a user