kodit 0.5.1__py3-none-any.whl → 0.5.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kodit might be problematic. Click here for more details.
- kodit/_version.py +2 -2
- kodit/application/factories/server_factory.py +25 -0
- kodit/application/services/enrichment_query_service.py +95 -0
- kodit/domain/tracking/__init__.py +1 -0
- kodit/domain/tracking/resolution_service.py +81 -0
- kodit/domain/tracking/trackable.py +21 -0
- kodit/infrastructure/api/v1/dependencies.py +15 -0
- kodit/infrastructure/api/v1/routers/repositories.py +99 -0
- {kodit-0.5.1.dist-info → kodit-0.5.2.dist-info}/METADATA +1 -1
- {kodit-0.5.1.dist-info → kodit-0.5.2.dist-info}/RECORD +13 -9
- {kodit-0.5.1.dist-info → kodit-0.5.2.dist-info}/WHEEL +0 -0
- {kodit-0.5.1.dist-info → kodit-0.5.2.dist-info}/entry_points.txt +0 -0
- {kodit-0.5.1.dist-info → kodit-0.5.2.dist-info}/licenses/LICENSE +0 -0
kodit/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '0.5.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 5,
|
|
31
|
+
__version__ = version = '0.5.2'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 5, 2)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -12,6 +12,9 @@ from kodit.application.services.code_search_application_service import (
|
|
|
12
12
|
from kodit.application.services.commit_indexing_application_service import (
|
|
13
13
|
CommitIndexingApplicationService,
|
|
14
14
|
)
|
|
15
|
+
from kodit.application.services.enrichment_query_service import (
|
|
16
|
+
EnrichmentQueryService,
|
|
17
|
+
)
|
|
15
18
|
from kodit.application.services.queue_service import QueueService
|
|
16
19
|
from kodit.application.services.reporting import ProgressTracker
|
|
17
20
|
from kodit.application.services.sync_scheduler import SyncSchedulerService
|
|
@@ -39,6 +42,7 @@ from kodit.domain.services.git_repository_service import (
|
|
|
39
42
|
from kodit.domain.services.physical_architecture_service import (
|
|
40
43
|
PhysicalArchitectureService,
|
|
41
44
|
)
|
|
45
|
+
from kodit.domain.tracking.resolution_service import TrackableResolutionService
|
|
42
46
|
from kodit.infrastructure.bm25.local_bm25_repository import LocalBM25Repository
|
|
43
47
|
from kodit.infrastructure.bm25.vectorchord_bm25_repository import (
|
|
44
48
|
VectorChordBM25Repository,
|
|
@@ -127,6 +131,8 @@ class ServerFactory:
|
|
|
127
131
|
self._architecture_service: PhysicalArchitectureService | None = None
|
|
128
132
|
self._enrichment_v2_repository: EnrichmentV2Repository | None = None
|
|
129
133
|
self._architecture_formatter: PhysicalArchitectureFormatter | None = None
|
|
134
|
+
self._trackable_resolution_service: TrackableResolutionService | None = None
|
|
135
|
+
self._enrichment_query_service: EnrichmentQueryService | None = None
|
|
130
136
|
|
|
131
137
|
def architecture_formatter(self) -> PhysicalArchitectureFormatter:
|
|
132
138
|
"""Create a PhysicalArchitectureFormatter instance."""
|
|
@@ -351,3 +357,22 @@ class ServerFactory:
|
|
|
351
357
|
session_factory=self.session_factory
|
|
352
358
|
)
|
|
353
359
|
return self._git_tag_repository
|
|
360
|
+
|
|
361
|
+
def trackable_resolution_service(self) -> TrackableResolutionService:
|
|
362
|
+
"""Create a TrackableResolutionService instance."""
|
|
363
|
+
if not self._trackable_resolution_service:
|
|
364
|
+
self._trackable_resolution_service = TrackableResolutionService(
|
|
365
|
+
commit_repo=self.git_commit_repository(),
|
|
366
|
+
branch_repo=self.git_branch_repository(),
|
|
367
|
+
tag_repo=self.git_tag_repository(),
|
|
368
|
+
)
|
|
369
|
+
return self._trackable_resolution_service
|
|
370
|
+
|
|
371
|
+
def enrichment_query_service(self) -> EnrichmentQueryService:
|
|
372
|
+
"""Create a EnrichmentQueryService instance."""
|
|
373
|
+
if not self._enrichment_query_service:
|
|
374
|
+
self._enrichment_query_service = EnrichmentQueryService(
|
|
375
|
+
trackable_resolution=self.trackable_resolution_service(),
|
|
376
|
+
enrichment_repo=self.enrichment_v2_repository(),
|
|
377
|
+
)
|
|
378
|
+
return self._enrichment_query_service
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"""Application service for querying enrichments."""
|
|
2
|
+
|
|
3
|
+
import structlog
|
|
4
|
+
|
|
5
|
+
from kodit.domain.enrichments.enrichment import EnrichmentV2
|
|
6
|
+
from kodit.domain.tracking.resolution_service import TrackableResolutionService
|
|
7
|
+
from kodit.domain.tracking.trackable import Trackable
|
|
8
|
+
from kodit.infrastructure.sqlalchemy.enrichment_v2_repository import (
|
|
9
|
+
EnrichmentV2Repository,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class EnrichmentQueryService:
|
|
14
|
+
"""Finds the latest commit with enrichments for a trackable.
|
|
15
|
+
|
|
16
|
+
Orchestrates domain services and repositories to fulfill the use case.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(
|
|
20
|
+
self,
|
|
21
|
+
trackable_resolution: TrackableResolutionService,
|
|
22
|
+
enrichment_repo: EnrichmentV2Repository,
|
|
23
|
+
) -> None:
|
|
24
|
+
"""Initialize the enrichment query service."""
|
|
25
|
+
self.trackable_resolution = trackable_resolution
|
|
26
|
+
self.enrichment_repo = enrichment_repo
|
|
27
|
+
self.log = structlog.get_logger(__name__)
|
|
28
|
+
|
|
29
|
+
async def find_latest_enriched_commit(
|
|
30
|
+
self,
|
|
31
|
+
trackable: Trackable,
|
|
32
|
+
enrichment_type: str | None = None,
|
|
33
|
+
max_commits_to_check: int = 100,
|
|
34
|
+
) -> str | None:
|
|
35
|
+
"""Find the most recent commit with enrichments.
|
|
36
|
+
|
|
37
|
+
Args:
|
|
38
|
+
trackable: What to track (branch, tag, or commit)
|
|
39
|
+
enrichment_type: Optional filter for specific enrichment type
|
|
40
|
+
max_commits_to_check: How far back in history to search
|
|
41
|
+
|
|
42
|
+
Returns:
|
|
43
|
+
Commit SHA of the most recent commit with enrichments, or None
|
|
44
|
+
|
|
45
|
+
"""
|
|
46
|
+
# Get candidate commits from the trackable
|
|
47
|
+
candidate_commits = await self.trackable_resolution.resolve_to_commits(
|
|
48
|
+
trackable, max_commits_to_check
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
if not candidate_commits:
|
|
52
|
+
return None
|
|
53
|
+
|
|
54
|
+
# Check which commits have enrichments
|
|
55
|
+
enrichments = await self.enrichment_repo.enrichments_for_entity_type(
|
|
56
|
+
entity_type="git_commit",
|
|
57
|
+
entity_ids=candidate_commits,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# Filter by type if specified
|
|
61
|
+
if enrichment_type:
|
|
62
|
+
enrichments = [e for e in enrichments if e.type == enrichment_type]
|
|
63
|
+
|
|
64
|
+
# Find the first commit (newest) that has enrichments
|
|
65
|
+
for commit_sha in candidate_commits:
|
|
66
|
+
if any(e.entity_id == commit_sha for e in enrichments):
|
|
67
|
+
return commit_sha
|
|
68
|
+
|
|
69
|
+
return None
|
|
70
|
+
|
|
71
|
+
async def get_enrichments_for_commit(
|
|
72
|
+
self,
|
|
73
|
+
commit_sha: str,
|
|
74
|
+
enrichment_type: str | None = None,
|
|
75
|
+
) -> list[EnrichmentV2]:
|
|
76
|
+
"""Get all enrichments for a specific commit.
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
commit_sha: The commit SHA to get enrichments for
|
|
80
|
+
enrichment_type: Optional filter for specific enrichment type
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
List of enrichments for the commit
|
|
84
|
+
|
|
85
|
+
"""
|
|
86
|
+
enrichments = await self.enrichment_repo.enrichments_for_entity_type(
|
|
87
|
+
entity_type="git_commit",
|
|
88
|
+
entity_ids=[commit_sha],
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Filter by type if specified
|
|
92
|
+
if enrichment_type:
|
|
93
|
+
enrichments = [e for e in enrichments if e.type == enrichment_type]
|
|
94
|
+
|
|
95
|
+
return enrichments
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Tracking domain module."""
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"""Domain service for resolving trackables to commits."""
|
|
2
|
+
|
|
3
|
+
import structlog
|
|
4
|
+
|
|
5
|
+
from kodit.domain.protocols import (
|
|
6
|
+
GitBranchRepository,
|
|
7
|
+
GitCommitRepository,
|
|
8
|
+
GitTagRepository,
|
|
9
|
+
)
|
|
10
|
+
from kodit.domain.tracking.trackable import Trackable, TrackableReferenceType
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class TrackableResolutionService:
|
|
14
|
+
"""Resolves trackables to ordered lists of commits.
|
|
15
|
+
|
|
16
|
+
This is a domain service because it orchestrates multiple aggregates
|
|
17
|
+
(branches, tags, commits) without belonging to any single entity.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def __init__(
|
|
21
|
+
self,
|
|
22
|
+
commit_repo: GitCommitRepository,
|
|
23
|
+
branch_repo: GitBranchRepository,
|
|
24
|
+
tag_repo: GitTagRepository,
|
|
25
|
+
) -> None:
|
|
26
|
+
"""Initialize the trackable resolution service."""
|
|
27
|
+
self.commit_repo = commit_repo
|
|
28
|
+
self.branch_repo = branch_repo
|
|
29
|
+
self.tag_repo = tag_repo
|
|
30
|
+
self.log = structlog.get_logger(__name__)
|
|
31
|
+
|
|
32
|
+
async def resolve_to_commits(
|
|
33
|
+
self, trackable: Trackable, limit: int = 100
|
|
34
|
+
) -> list[str]:
|
|
35
|
+
"""Resolve a trackable to an ordered list of commit SHAs.
|
|
36
|
+
|
|
37
|
+
Returns commits from newest to oldest based on git history.
|
|
38
|
+
"""
|
|
39
|
+
if trackable.type == TrackableReferenceType.BRANCH:
|
|
40
|
+
return await self._resolve_branch(trackable, limit)
|
|
41
|
+
if trackable.type == TrackableReferenceType.TAG:
|
|
42
|
+
return await self._resolve_tag(trackable, limit)
|
|
43
|
+
# COMMIT_SHA
|
|
44
|
+
return [trackable.identifier]
|
|
45
|
+
|
|
46
|
+
async def _resolve_branch(
|
|
47
|
+
self, trackable: Trackable, limit: int
|
|
48
|
+
) -> list[str]:
|
|
49
|
+
"""Get commits from branch HEAD backwards through history."""
|
|
50
|
+
branch = await self.branch_repo.get_by_name(
|
|
51
|
+
trackable.identifier, trackable.repo_id
|
|
52
|
+
)
|
|
53
|
+
# Walk commit history from head_commit backwards
|
|
54
|
+
return await self._walk_commit_history(
|
|
55
|
+
branch.head_commit.commit_sha, limit
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
async def _resolve_tag(self, trackable: Trackable, limit: int) -> list[str]:
|
|
59
|
+
"""Get commits from tag target backwards through history."""
|
|
60
|
+
tag = await self.tag_repo.get_by_name(
|
|
61
|
+
trackable.identifier, trackable.repo_id
|
|
62
|
+
)
|
|
63
|
+
return await self._walk_commit_history(
|
|
64
|
+
tag.target_commit.commit_sha, limit
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
async def _walk_commit_history(
|
|
68
|
+
self, start_sha: str, limit: int
|
|
69
|
+
) -> list[str]:
|
|
70
|
+
"""Walk commit history backwards from start_sha."""
|
|
71
|
+
result = []
|
|
72
|
+
current_sha: str | None = start_sha
|
|
73
|
+
|
|
74
|
+
for _ in range(limit):
|
|
75
|
+
if not current_sha:
|
|
76
|
+
break
|
|
77
|
+
result.append(current_sha)
|
|
78
|
+
commit = await self.commit_repo.get_by_sha(current_sha)
|
|
79
|
+
current_sha = commit.parent_commit_sha or None
|
|
80
|
+
|
|
81
|
+
return result
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Trackable value objects."""
|
|
2
|
+
|
|
3
|
+
from dataclasses import dataclass
|
|
4
|
+
from enum import StrEnum
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TrackableReferenceType(StrEnum):
|
|
8
|
+
"""Types of git references that can be tracked."""
|
|
9
|
+
|
|
10
|
+
BRANCH = "branch"
|
|
11
|
+
TAG = "tag"
|
|
12
|
+
COMMIT_SHA = "commit_sha"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@dataclass(frozen=True)
|
|
16
|
+
class Trackable:
|
|
17
|
+
"""Represents a trackable reference point in a git repository."""
|
|
18
|
+
|
|
19
|
+
type: TrackableReferenceType
|
|
20
|
+
identifier: str # e.g., "main", "v1.0.0", "abc123..."
|
|
21
|
+
repo_id: int
|
|
@@ -13,6 +13,9 @@ from kodit.application.services.code_search_application_service import (
|
|
|
13
13
|
from kodit.application.services.commit_indexing_application_service import (
|
|
14
14
|
CommitIndexingApplicationService,
|
|
15
15
|
)
|
|
16
|
+
from kodit.application.services.enrichment_query_service import (
|
|
17
|
+
EnrichmentQueryService,
|
|
18
|
+
)
|
|
16
19
|
from kodit.application.services.queue_service import QueueService
|
|
17
20
|
from kodit.config import AppContext
|
|
18
21
|
from kodit.domain.protocols import (
|
|
@@ -155,3 +158,15 @@ async def get_code_search_app_service(
|
|
|
155
158
|
CodeSearchAppServiceDep = Annotated[
|
|
156
159
|
CodeSearchApplicationService, Depends(get_code_search_app_service)
|
|
157
160
|
]
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
async def get_enrichment_query_service(
|
|
164
|
+
server_factory: ServerFactoryDep,
|
|
165
|
+
) -> EnrichmentQueryService:
|
|
166
|
+
"""Get enrichment query service dependency."""
|
|
167
|
+
return server_factory.enrichment_query_service()
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
EnrichmentQueryServiceDep = Annotated[
|
|
171
|
+
EnrichmentQueryService, Depends(get_enrichment_query_service)
|
|
172
|
+
]
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
from fastapi import APIRouter, Depends, HTTPException
|
|
4
4
|
|
|
5
|
+
from kodit.domain.tracking.trackable import Trackable, TrackableReferenceType
|
|
5
6
|
from kodit.infrastructure.api.middleware.auth import api_key_auth
|
|
6
7
|
from kodit.infrastructure.api.v1.dependencies import (
|
|
7
8
|
CommitIndexingAppServiceDep,
|
|
9
|
+
EnrichmentQueryServiceDep,
|
|
8
10
|
GitBranchRepositoryDep,
|
|
9
11
|
GitCommitRepositoryDep,
|
|
10
12
|
GitRepositoryDep,
|
|
11
13
|
GitTagRepositoryDep,
|
|
12
14
|
TaskStatusQueryServiceDep,
|
|
13
15
|
)
|
|
16
|
+
from kodit.infrastructure.api.v1.schemas.enrichment import (
|
|
17
|
+
EnrichmentAttributes,
|
|
18
|
+
EnrichmentData,
|
|
19
|
+
EnrichmentListResponse,
|
|
20
|
+
)
|
|
14
21
|
from kodit.infrastructure.api.v1.schemas.repository import (
|
|
15
22
|
RepositoryBranchData,
|
|
16
23
|
RepositoryCommitData,
|
|
@@ -259,6 +266,98 @@ async def get_repository_tag(
|
|
|
259
266
|
)
|
|
260
267
|
|
|
261
268
|
|
|
269
|
+
@router.get(
|
|
270
|
+
"/{repo_id}/enrichments",
|
|
271
|
+
summary="List latest repository enrichments",
|
|
272
|
+
responses={404: {"description": "Repository not found"}},
|
|
273
|
+
)
|
|
274
|
+
async def list_repository_enrichments( # noqa: PLR0913
|
|
275
|
+
repo_id: str,
|
|
276
|
+
git_repository: GitRepositoryDep,
|
|
277
|
+
enrichment_query_service: EnrichmentQueryServiceDep,
|
|
278
|
+
ref_type: str = "branch",
|
|
279
|
+
ref_name: str | None = None,
|
|
280
|
+
enrichment_type: str | None = None,
|
|
281
|
+
limit: int = 10,
|
|
282
|
+
) -> EnrichmentListResponse:
|
|
283
|
+
"""List the most recent enrichments for a repository.
|
|
284
|
+
|
|
285
|
+
Query parameters:
|
|
286
|
+
- ref_type: Type of reference (branch, tag, or commit_sha). Defaults to "branch".
|
|
287
|
+
- ref_name: Name of the reference. For branches, defaults to the tracking branch.
|
|
288
|
+
- enrichment_type: Optional filter for specific enrichment type.
|
|
289
|
+
- limit: Maximum number of enrichments to return. Defaults to 10.
|
|
290
|
+
"""
|
|
291
|
+
# Get repository
|
|
292
|
+
repo = await git_repository.get_by_id(int(repo_id))
|
|
293
|
+
if not repo:
|
|
294
|
+
raise HTTPException(status_code=404, detail="Repository not found")
|
|
295
|
+
|
|
296
|
+
# Determine the reference to track
|
|
297
|
+
if ref_name is None:
|
|
298
|
+
if ref_type == "branch":
|
|
299
|
+
# Default to tracking branch
|
|
300
|
+
if not repo.tracking_branch:
|
|
301
|
+
raise HTTPException(
|
|
302
|
+
status_code=400, detail="No tracking branch configured"
|
|
303
|
+
)
|
|
304
|
+
ref_name = repo.tracking_branch.name
|
|
305
|
+
else:
|
|
306
|
+
raise HTTPException(
|
|
307
|
+
status_code=400,
|
|
308
|
+
detail="ref_name is required for tag and commit_sha references",
|
|
309
|
+
)
|
|
310
|
+
|
|
311
|
+
# Parse ref_type
|
|
312
|
+
try:
|
|
313
|
+
trackable_type = TrackableReferenceType(ref_type)
|
|
314
|
+
except ValueError:
|
|
315
|
+
raise HTTPException(
|
|
316
|
+
status_code=400,
|
|
317
|
+
detail=f"Invalid ref_type: {ref_type}. Must be branch, tag, or commit_sha",
|
|
318
|
+
) from None
|
|
319
|
+
|
|
320
|
+
# Create trackable
|
|
321
|
+
trackable = Trackable(
|
|
322
|
+
type=trackable_type, identifier=ref_name, repo_id=int(repo_id)
|
|
323
|
+
)
|
|
324
|
+
|
|
325
|
+
# Find the latest enriched commit
|
|
326
|
+
enriched_commit = await enrichment_query_service.find_latest_enriched_commit(
|
|
327
|
+
trackable=trackable,
|
|
328
|
+
enrichment_type=enrichment_type,
|
|
329
|
+
max_commits_to_check=limit * 10, # Check more commits to find enriched ones
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
# If no enriched commit found, return empty list
|
|
333
|
+
if not enriched_commit:
|
|
334
|
+
return EnrichmentListResponse(data=[])
|
|
335
|
+
|
|
336
|
+
# Get enrichments for the commit
|
|
337
|
+
enrichments = await enrichment_query_service.get_enrichments_for_commit(
|
|
338
|
+
commit_sha=enriched_commit,
|
|
339
|
+
enrichment_type=enrichment_type,
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
# Map enrichments to API response format
|
|
343
|
+
enrichment_data = [
|
|
344
|
+
EnrichmentData(
|
|
345
|
+
type="enrichment",
|
|
346
|
+
id=str(enrichment.id) if enrichment.id else "0",
|
|
347
|
+
attributes=EnrichmentAttributes(
|
|
348
|
+
type=enrichment.type,
|
|
349
|
+
subtype=enrichment.subtype,
|
|
350
|
+
content=enrichment.content,
|
|
351
|
+
created_at=enrichment.created_at,
|
|
352
|
+
updated_at=enrichment.updated_at,
|
|
353
|
+
),
|
|
354
|
+
)
|
|
355
|
+
for enrichment in enrichments
|
|
356
|
+
]
|
|
357
|
+
|
|
358
|
+
return EnrichmentListResponse(data=enrichment_data)
|
|
359
|
+
|
|
360
|
+
|
|
262
361
|
@router.delete(
|
|
263
362
|
"/{repo_id}",
|
|
264
363
|
status_code=204,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
kodit/.gitignore,sha256=ztkjgRwL9Uud1OEi36hGQeDGk3OLK1NfDEO8YqGYy8o,11
|
|
2
2
|
kodit/__init__.py,sha256=aEKHYninUq1yh6jaNfvJBYg-6fenpN132nJt1UU6Jxs,59
|
|
3
|
-
kodit/_version.py,sha256=
|
|
3
|
+
kodit/_version.py,sha256=LGYtjQ6cyPZC_N0AovMIeSYYDK21050nm3HYgDanQBM,704
|
|
4
4
|
kodit/app.py,sha256=niIfZiuuDp7mLzrBwQhx_FU7RvKfUALNV5y0o43miss,5802
|
|
5
5
|
kodit/cli.py,sha256=QSTXIUDxZo3anIONY-grZi9_VSehWoS8QoVJZyOmWPQ,3086
|
|
6
6
|
kodit/cli_utils.py,sha256=umkvt4kWNapk6db6RGz6bmn7oxgDpsW2Vo09MZ37OGg,2430
|
|
@@ -13,10 +13,11 @@ kodit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
13
13
|
kodit/application/__init__.py,sha256=mH50wTpgP9dhbKztFsL8Dda9Hi18TSnMVxXtpp4aGOA,35
|
|
14
14
|
kodit/application/factories/__init__.py,sha256=bU5CvEnaBePZ7JbkCOp1MGTNP752bnU2uEqmfy5FdRk,37
|
|
15
15
|
kodit/application/factories/reporting_factory.py,sha256=3IpRiAw_olM69db-jbDAtjyGtd6Nh5o8jUJX3-rXCA8,1421
|
|
16
|
-
kodit/application/factories/server_factory.py,sha256=
|
|
16
|
+
kodit/application/factories/server_factory.py,sha256=m6tWMH9rSENqEEePpoWtHT51iQZ1IjZ2ZtvLugsbFmo,16456
|
|
17
17
|
kodit/application/services/__init__.py,sha256=p5UQNw-H5sxQvs5Etfte93B3cJ1kKW6DNxK34uFvU1E,38
|
|
18
18
|
kodit/application/services/code_search_application_service.py,sha256=sqMgyAw7e2d2FWroaonaL8G1Hwigb-Yku71dut3wOpQ,4963
|
|
19
19
|
kodit/application/services/commit_indexing_application_service.py,sha256=S5Gep4aXB9_1CWxs9xcIMnGmsrfrwJqvfDAHIPhoS1k,29860
|
|
20
|
+
kodit/application/services/enrichment_query_service.py,sha256=4wtBPwLbmgFCDgYam1D6x6EgSDGEJeQgAt_opzQz5rs,3102
|
|
20
21
|
kodit/application/services/indexing_worker_service.py,sha256=8J8CaUdPd5nF6MyvJbJQpXeGkP2oClmFjZel1xBXELU,4065
|
|
21
22
|
kodit/application/services/queue_service.py,sha256=nXplzN-nehPEeEvygzjJwWg4oQmu3SPodsZzY1Z3MtE,2509
|
|
22
23
|
kodit/application/services/reporting.py,sha256=cwe-S-UpSOE6xSAEhoD1hi4hSWk1bW3YRLJ7463fIvM,3518
|
|
@@ -55,6 +56,9 @@ kodit/domain/services/git_repository_service.py,sha256=b-zAAFVxU22KKp2ACyKUgOpFK
|
|
|
55
56
|
kodit/domain/services/git_service.py,sha256=nVQCfXQ8kW-MAAoAd8bgSQmCdgPMVftUh5qd4du_bes,11352
|
|
56
57
|
kodit/domain/services/physical_architecture_service.py,sha256=0YgoAvbUxT_VwgIh_prftSYnil_XIqNPSoP0g37eIt4,7209
|
|
57
58
|
kodit/domain/services/task_status_query_service.py,sha256=rI93pTMHeycigQryCWkimXSDzRqx_nJOr07UzPAacPE,736
|
|
59
|
+
kodit/domain/tracking/__init__.py,sha256=5FvxhDxB2Fpr8Dw8BLtjfPE1YUWn2rr3u7njQlqcosk,30
|
|
60
|
+
kodit/domain/tracking/resolution_service.py,sha256=w9OMgNv0ZS1DiduY-XFTA_pWK9vXgoEvEGLBl1vqRHE,2765
|
|
61
|
+
kodit/domain/tracking/trackable.py,sha256=-9UT-c5iDkg5LxLl-BEyysvrKgHoYfofuGUacjPhVk4,479
|
|
58
62
|
kodit/infrastructure/__init__.py,sha256=HzEYIjoXnkz_i_MHO2e0sIVYweUcRnl2RpyBiTbMObU,28
|
|
59
63
|
kodit/infrastructure/api/__init__.py,sha256=U0TSMPpHrlj1zbAtleuZjU3nXGwudyMe-veNBgvODwM,34
|
|
60
64
|
kodit/infrastructure/api/client/__init__.py,sha256=8MjEc6cHCqiI-LtIyng3uKD7a2wUaR-QUdIAePYyIRg,292
|
|
@@ -65,11 +69,11 @@ kodit/infrastructure/api/client/search_client.py,sha256=f4mM5ZJpAuR7w-i9yASbh4SY
|
|
|
65
69
|
kodit/infrastructure/api/middleware/__init__.py,sha256=6m7eE5k5buboJbuzyX5E9-Tf99yNwFaeJF0f_6HwLyM,30
|
|
66
70
|
kodit/infrastructure/api/middleware/auth.py,sha256=QSnMcMLWvfumqN1iG4ePj2vEZb2Dlsgr-WHptkEkkhE,1064
|
|
67
71
|
kodit/infrastructure/api/v1/__init__.py,sha256=xWtkR3UP7daksCXW_Eyvcqsh091OREqfBPnlFs027_o,22
|
|
68
|
-
kodit/infrastructure/api/v1/dependencies.py,sha256=
|
|
72
|
+
kodit/infrastructure/api/v1/dependencies.py,sha256=VZhSBgPF1lTc7UnayXl5RsHkA6EvHkGl8NLHPUedjU0,4875
|
|
69
73
|
kodit/infrastructure/api/v1/routers/__init__.py,sha256=pz_7kFwHcxztbTiFI-57Q2tCAllI7u0fgTP4rpQeUoQ,22
|
|
70
74
|
kodit/infrastructure/api/v1/routers/commits.py,sha256=osjmm2Po-MOshD7zBv01C12UcYukkaKATtjEa3hSAJU,11624
|
|
71
75
|
kodit/infrastructure/api/v1/routers/queue.py,sha256=srZmOCZqvcCBlDcPYt1ZWhwVhvVWARWJ3Qp4Tn5eK4Y,2148
|
|
72
|
-
kodit/infrastructure/api/v1/routers/repositories.py,sha256=
|
|
76
|
+
kodit/infrastructure/api/v1/routers/repositories.py,sha256=fDc73mt9tc1oqa35LGXr8WpG3zIS6QNuQu9qu15l0I0,12758
|
|
73
77
|
kodit/infrastructure/api/v1/routers/search.py,sha256=eMlofqcy9xWCsE9ugfBZHtcPo1hb-A06_Xfv4XR3FfY,3187
|
|
74
78
|
kodit/infrastructure/api/v1/schemas/__init__.py,sha256=capaxPe7y28pWj6Pu5hfTOxLnVL9pwW-hJu7ZdN2klw,41
|
|
75
79
|
kodit/infrastructure/api/v1/schemas/commit.py,sha256=UVGkwZNjwUMiitUbFws1_mlZN7IALq99P99HJCg5h2c,1794
|
|
@@ -161,8 +165,8 @@ kodit/utils/dump_config.py,sha256=dd5uPgqh6ATk02Zt59t2JFKR9X17YWjHudV0nE8VktE,11
|
|
|
161
165
|
kodit/utils/dump_openapi.py,sha256=EasYOnnpeabwb_sTKQUBrrOLHjPcOFQ7Zx0YKpx9fmM,1239
|
|
162
166
|
kodit/utils/generate_api_paths.py,sha256=TMtx9v55podDfUmiWaHgJHLtEWLV2sLL-5ejGFMPzAo,3569
|
|
163
167
|
kodit/utils/path_utils.py,sha256=UB_81rx7Y1G1jalVv2PX8miwaprBbcqEdtoQ3hPT3kU,2451
|
|
164
|
-
kodit-0.5.
|
|
165
|
-
kodit-0.5.
|
|
166
|
-
kodit-0.5.
|
|
167
|
-
kodit-0.5.
|
|
168
|
-
kodit-0.5.
|
|
168
|
+
kodit-0.5.2.dist-info/METADATA,sha256=gcQYxwPZ5mx36u7ejs76xkZSBKUEnyGzDc5qJAcrrlQ,7703
|
|
169
|
+
kodit-0.5.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
170
|
+
kodit-0.5.2.dist-info/entry_points.txt,sha256=hoTn-1aKyTItjnY91fnO-rV5uaWQLQ-Vi7V5et2IbHY,40
|
|
171
|
+
kodit-0.5.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
172
|
+
kodit-0.5.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|