fix: files manually
Some checks failed
quality-gates / verify (push) Failing after 7s

This commit is contained in:
2026-09-01 17:21:58 +01:00
parent 56c9eaa459
commit d8a4b6b3c1
36 changed files with 656 additions and 216 deletions

View File

@@ -3,10 +3,10 @@ from __future__ import annotations
from dataclasses import dataclass
from typing import Any
from kab_ingestion.github import GitHubConnector
from kab_ingestion.models import IngestionRequest, IngestionResult
from kab_ingestion.sharepoint import SharePointConnector
from .card import AGENT_CARD, AgentCard
from .kab_ingestion.connectors.github import GitHubSCMConnector
from .kab_ingestion.connectors.sharepoint import SharePointCMSConnector
from .kab_ingestion.domain.models import IngestionRequest, IngestionResult
from .publication import publish_document
from .settings import Settings, get_settings
from .validation import validate_document
@@ -19,22 +19,27 @@ class IngestionService:
cms: Any = None
def ingest(self, request: IngestionRequest) -> list[IngestionResult]:
if request.source not in self.settings.allowed_sources:
return []
results = []
for document in self.scm.fetch(request):
report = validate_document(document)
if not report.valid:
from .kab_ingestion.domain.models import IngestionResult
results.append(IngestionResult(document, False, "invalid", "; ".join(report.errors)))
continue
results.append(publish_document(document, self.cms, self.settings.publish_enabled, self.settings.require_governance_approval))
return results
from .workflows import create_ingestion_workflow
from .states.ingestion_state import IngestionState
workflow = create_ingestion_workflow(
scm=self.scm,
cms=self.cms,
allowed_sources=self.settings.allowed_sources,
publish_enabled=self.settings.publish_enabled,
require_governance_approval=self.settings.require_governance_approval,
)
initial_state: IngestionState = {
"request": request,
"tenant_id": request.metadata.get("tenant_id", "default_tenant"),
}
final_state = workflow.invoke(initial_state)
return final_state.get("published_results", [])
def create_agent_app(settings: Settings | None = None) -> dict[str, Any]:
config = settings or get_settings()
scm = GitHubSCMConnector(config.github_token, config.github_api_base)
cms = SharePointCMSConnector(config.sharepoint_site_url, config.sharepoint_access_token) if config.sharepoint_site_url and config.sharepoint_access_token else None
scm = GitHubConnector(config.github_token, config.github_api_base)
cms = SharePointConnector(config.sharepoint_site_url, config.sharepoint_access_token) if config.sharepoint_site_url and config.sharepoint_access_token else None
service = IngestionService(config, scm, cms)
return {"card": AGENT_CARD, "service": service, "routes": {"/health": "health", "/card": "card", "/ingest": "ingest"}, "triggers": {"github": "github_trigger"}}
return {"card": AGENT_CARD, "service": service, "routes": {"/health": "health", "/card": "card", "/ingest": "ingest"}, "triggers": {"github_push": "github_trigger", "manual_ingest": "manual_trigger"}}