diff --git a/src/repo_registry/web_ui/views.py b/src/repo_registry/web_ui/views.py index 060ed4f..8ed4a01 100644 --- a/src/repo_registry/web_ui/views.py +++ b/src/repo_registry/web_ui/views.py @@ -292,6 +292,13 @@ def repository_detail( {render_repository_facts(languages, frameworks)}
+

Repository Metadata

+
+ + + + +

Run Analysis

@@ -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, diff --git a/tests/test_web_api.py b/tests/test_web_api.py index 2e731ba..3bd6bd5 100644 --- a/tests/test_web_api.py +++ b/tests/test_web_api.py @@ -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