generated from coulomb/repo-seed
Milestone 6 API completeness
This commit is contained in:
@@ -6,6 +6,7 @@ from pathlib import Path
|
||||
|
||||
from repo_registry.core.models import (
|
||||
Ability,
|
||||
AbilitySummary,
|
||||
AnalysisRun,
|
||||
CandidateAbility,
|
||||
CandidateCapability,
|
||||
@@ -13,6 +14,7 @@ from repo_registry.core.models import (
|
||||
CandidateFeature,
|
||||
CandidateGraph,
|
||||
Capability,
|
||||
CapabilitySummary,
|
||||
Evidence,
|
||||
Feature,
|
||||
ObservedFact,
|
||||
@@ -975,6 +977,56 @@ class RegistryStore:
|
||||
).fetchall()
|
||||
return [self._analysis_run_from_row(row) for row in rows]
|
||||
|
||||
def list_abilities(self) -> list[AbilitySummary]:
|
||||
with self.connect() as connection:
|
||||
rows = connection.execute(
|
||||
"""
|
||||
SELECT a.id, a.repository_id, r.name AS repository_name,
|
||||
a.name, a.description, a.confidence
|
||||
FROM approved_abilities a
|
||||
JOIN repositories r ON r.id = a.repository_id
|
||||
ORDER BY r.name ASC, a.name ASC, a.id ASC
|
||||
"""
|
||||
).fetchall()
|
||||
return [
|
||||
AbilitySummary(
|
||||
id=row["id"],
|
||||
repository_id=row["repository_id"],
|
||||
repository_name=row["repository_name"],
|
||||
name=row["name"],
|
||||
description=row["description"],
|
||||
confidence=row["confidence"],
|
||||
)
|
||||
for row in rows
|
||||
]
|
||||
|
||||
def list_capabilities(self) -> list[CapabilitySummary]:
|
||||
with self.connect() as connection:
|
||||
rows = connection.execute(
|
||||
"""
|
||||
SELECT c.id, c.repository_id, r.name AS repository_name,
|
||||
c.ability_id, a.name AS ability_name,
|
||||
c.name, c.description, c.confidence
|
||||
FROM approved_capabilities c
|
||||
JOIN approved_abilities a ON a.id = c.ability_id
|
||||
JOIN repositories r ON r.id = c.repository_id
|
||||
ORDER BY r.name ASC, a.name ASC, c.name ASC, c.id ASC
|
||||
"""
|
||||
).fetchall()
|
||||
return [
|
||||
CapabilitySummary(
|
||||
id=row["id"],
|
||||
repository_id=row["repository_id"],
|
||||
repository_name=row["repository_name"],
|
||||
ability_id=row["ability_id"],
|
||||
ability_name=row["ability_name"],
|
||||
name=row["name"],
|
||||
description=row["description"],
|
||||
confidence=row["confidence"],
|
||||
)
|
||||
for row in rows
|
||||
]
|
||||
|
||||
def get_snapshot(self, snapshot_id: int) -> RepositorySnapshot:
|
||||
with self.connect() as connection:
|
||||
row = connection.execute(
|
||||
|
||||
Reference in New Issue
Block a user