generated from coulomb/repo-seed
repository metadata editing in the UI
This commit is contained in:
@@ -292,6 +292,13 @@ def repository_detail(
|
||||
{render_repository_facts(languages, frameworks)}
|
||||
<div class="grid">
|
||||
<section class="panel">
|
||||
<h2>Repository Metadata</h2>
|
||||
<form class="stack" method="post" action="/ui/repos/{repository_id}/edit">
|
||||
<label>Name <input name="name" value="{escape(repository.name)}" required></label>
|
||||
<label>Description <textarea name="description" rows="2">{escape(repository.description or '')}</textarea></label>
|
||||
<label>Branch <input name="branch" value="{escape(repository.branch)}" required></label>
|
||||
<button class="secondary" type="submit">Save Repository</button>
|
||||
</form>
|
||||
<h2>Run Analysis</h2>
|
||||
<form class="stack" method="post" action="/ui/repos/{repository_id}/analysis-runs">
|
||||
<label>Override source path <input name="source_path" placeholder="Optional local path"></label>
|
||||
@@ -355,6 +362,23 @@ def repository_detail(
|
||||
return page(repository.name, body)
|
||||
|
||||
|
||||
@router.post("/ui/repos/{repository_id}/edit")
|
||||
def edit_repository_from_form(
|
||||
repository_id: int,
|
||||
name: str = Form(...),
|
||||
description: str = Form(""),
|
||||
branch: str = Form("main"),
|
||||
service: RegistryService = Depends(get_service),
|
||||
) -> RedirectResponse:
|
||||
service.update_repository(
|
||||
repository_id,
|
||||
name=name,
|
||||
description=description,
|
||||
branch=branch or "main",
|
||||
)
|
||||
return RedirectResponse(f"/ui/repos/{repository_id}", status_code=303)
|
||||
|
||||
|
||||
@router.post("/ui/repos/{repository_id}/abilities")
|
||||
def create_ability_from_form(
|
||||
repository_id: int,
|
||||
|
||||
@@ -365,6 +365,21 @@ def test_ui_register_analyze_and_approve_loop(tmp_path):
|
||||
detail_response = client.get(repository_path)
|
||||
assert detail_response.status_code == 200
|
||||
assert "Run Analysis" in detail_response.text
|
||||
assert "Repository Metadata" in detail_response.text
|
||||
|
||||
edit_repository_response = client.post(
|
||||
f"{repository_path}/edit",
|
||||
data={
|
||||
"name": "UI Repo Edited",
|
||||
"description": "Edited in the UI.",
|
||||
"branch": "develop",
|
||||
},
|
||||
follow_redirects=False,
|
||||
)
|
||||
assert edit_repository_response.status_code == 303
|
||||
detail_response = client.get(repository_path)
|
||||
assert "UI Repo Edited" in detail_response.text
|
||||
assert "develop" in detail_response.text
|
||||
|
||||
run_response = client.post(
|
||||
f"{repository_path}/analysis-runs",
|
||||
@@ -389,7 +404,7 @@ def test_ui_register_analyze_and_approve_loop(tmp_path):
|
||||
approved_detail = client.get(approve_response.headers["location"])
|
||||
assert approved_detail.status_code == 200
|
||||
assert "Approved Ability Map" in approved_detail.text
|
||||
assert "Review UI Repo Repository Usefulness" in approved_detail.text
|
||||
assert "Review UI Repo Edited Repository Usefulness" in approved_detail.text
|
||||
assert "Language: Python" in approved_detail.text
|
||||
assert "Framework: FastAPI" in approved_detail.text
|
||||
assert "interface:app.py:3" in approved_detail.text
|
||||
|
||||
Reference in New Issue
Block a user