chore(lint): apply ruff --fix (4443 auto-fixes)
Auto-fixed categories: - F401: unused imports removed - I001: import blocks sorted - W293: trailing whitespace stripped - UP035: deprecated typing imports replaced - SIM: simplify suggestions applied - ARG: unused args prefixed with underscore - T201: print statements removed - F841: unused variables removed - RUF059: unpacked variables prefixed Remaining ~1500 unfixable errors (C901, B904, N806, E402) require manual work. Backend smoke tests: 13/13 passed.
This commit is contained in:
@@ -11,32 +11,32 @@ import os
|
||||
|
||||
from src.services.git_service import GitService
|
||||
|
||||
from ._router import router
|
||||
from ._deps import MAX_REPOSITORY_STATUS_BATCH
|
||||
from ._router import router
|
||||
|
||||
# -- git_service singleton (canonical instance; tests may monkeypatch git_routes.git_service) --
|
||||
git_service = GitService()
|
||||
|
||||
# -- Config routes --
|
||||
from ._config_routes import get_git_configs, create_git_config, update_git_config, delete_git_config, test_git_config # noqa: E501, F401
|
||||
|
||||
# -- Gitea routes --
|
||||
from ._gitea_routes import list_gitea_repositories, create_gitea_repository, delete_gitea_repository, create_remote_repository # noqa: E501, F401
|
||||
|
||||
# -- Repo routes (core) --
|
||||
from ._repo_routes import init_repository, get_repository_binding, delete_repository, get_branches, create_branch, checkout_branch # noqa: E501, F401
|
||||
from ._helpers import _resolve_dashboard_id_from_ref, _resolve_dashboard_id_from_ref_async, _resolve_repo_key_from_ref # noqa: E501, F401 — re-exported for test monkeypatch compatibility
|
||||
|
||||
# -- Repo operations routes (commit, push, pull, status, diff, history, generate-message) --
|
||||
from ._repo_operations_routes import commit_changes, push_changes, pull_changes, get_repository_status, get_repository_status_batch, get_repository_diff, get_history, generate_commit_message # noqa: E501, F401
|
||||
|
||||
# -- Repo lifecycle routes (sync, promote, deploy) --
|
||||
from ._repo_lifecycle_routes import sync_dashboard, promote_dashboard, deploy_dashboard # noqa: E501, F401
|
||||
|
||||
# -- Merge routes --
|
||||
from ._merge_routes import get_merge_status, get_merge_conflicts, resolve_merge_conflicts, abort_merge, continue_merge # noqa: E501, F401
|
||||
from ._config_routes import create_git_config, delete_git_config, get_git_configs, test_git_config, update_git_config # noqa: F401
|
||||
|
||||
# -- Environment routes --
|
||||
from ._environment_routes import get_environments # noqa: E501, F401
|
||||
from ._environment_routes import get_environments # noqa: F401
|
||||
|
||||
# -- Gitea routes --
|
||||
from ._gitea_routes import create_gitea_repository, create_remote_repository, delete_gitea_repository, list_gitea_repositories # noqa: F401
|
||||
from ._helpers import _resolve_dashboard_id_from_ref, _resolve_dashboard_id_from_ref_async, _resolve_repo_key_from_ref # noqa: F401 — re-exported for test monkeypatch compatibility
|
||||
|
||||
# -- Merge routes --
|
||||
from ._merge_routes import abort_merge, continue_merge, get_merge_conflicts, get_merge_status, resolve_merge_conflicts # noqa: F401
|
||||
|
||||
# -- Repo lifecycle routes (sync, promote, deploy) --
|
||||
from ._repo_lifecycle_routes import deploy_dashboard, promote_dashboard, sync_dashboard # noqa: F401
|
||||
|
||||
# -- Repo operations routes (commit, push, pull, status, diff, history, generate-message) --
|
||||
from ._repo_operations_routes import commit_changes, generate_commit_message, get_history, get_repository_diff, get_repository_status, get_repository_status_batch, pull_changes, push_changes # noqa: F401
|
||||
|
||||
# -- Repo routes (core) --
|
||||
from ._repo_routes import checkout_branch, create_branch, delete_repository, get_branches, get_repository_binding, init_repository # noqa: F401
|
||||
|
||||
# #endregion GitPackage
|
||||
|
||||
@@ -2,30 +2,27 @@
|
||||
# @BRIEF FastAPI endpoints for Git server configuration CRUD and connection testing.
|
||||
# @LAYER: API
|
||||
|
||||
from typing import List
|
||||
|
||||
from fastapi import Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import has_permission
|
||||
from src.models.git import GitServerConfig
|
||||
|
||||
from src.api.routes.git_schemas import (
|
||||
GitServerConfigCreate,
|
||||
GitServerConfigSchema,
|
||||
GitServerConfigUpdate,
|
||||
)
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope
|
||||
from src.dependencies import has_permission
|
||||
from src.models.git import GitServerConfig
|
||||
|
||||
from ._router import router
|
||||
from ._helpers import _get_git_config_or_404
|
||||
from ._deps import get_git_service
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region get_git_configs [C:2] [TYPE Function]
|
||||
# @BRIEF List all configured Git servers.
|
||||
@router.get("/config", response_model=List[GitServerConfigSchema])
|
||||
@router.get("/config", response_model=list[GitServerConfigSchema])
|
||||
async def get_git_configs(
|
||||
db: Session = Depends(get_db),
|
||||
_=Depends(has_permission("git_config", "READ")),
|
||||
|
||||
@@ -2,21 +2,19 @@
|
||||
# @BRIEF FastAPI endpoint for listing deployment environments.
|
||||
# @LAYER: API
|
||||
|
||||
from typing import List
|
||||
|
||||
from fastapi import Depends
|
||||
|
||||
from src.api.routes.git_schemas import DeploymentEnvironmentSchema
|
||||
from src.core.logger import belief_scope
|
||||
from src.dependencies import get_config_manager, has_permission
|
||||
|
||||
from src.api.routes.git_schemas import DeploymentEnvironmentSchema
|
||||
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region get_environments [C:2] [TYPE Function]
|
||||
# @BRIEF List all deployment environments.
|
||||
@router.get("/environments", response_model=List[DeploymentEnvironmentSchema])
|
||||
@router.get("/environments", response_model=list[DeploymentEnvironmentSchema])
|
||||
async def get_environments(
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("environments", "READ")),
|
||||
|
||||
@@ -2,31 +2,29 @@
|
||||
# @BRIEF FastAPI endpoints for Gitea-specific repository operations.
|
||||
# @LAYER: API
|
||||
|
||||
from typing import List
|
||||
|
||||
from fastapi import Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope
|
||||
from src.dependencies import has_permission
|
||||
from src.models.git import GitProvider
|
||||
|
||||
from src.api.routes.git_schemas import (
|
||||
GiteaRepoCreateRequest,
|
||||
GiteaRepoSchema,
|
||||
RemoteRepoCreateRequest,
|
||||
RemoteRepoSchema,
|
||||
)
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope
|
||||
from src.dependencies import has_permission
|
||||
from src.models.git import GitProvider
|
||||
|
||||
from ._router import router
|
||||
from ._helpers import _get_git_config_or_404
|
||||
from ._deps import get_git_service
|
||||
from ._helpers import _get_git_config_or_404
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region list_gitea_repositories [C:2] [TYPE Function]
|
||||
# @BRIEF List repositories in Gitea for a saved Gitea config.
|
||||
@router.get("/config/{config_id}/gitea/repos", response_model=List[GiteaRepoSchema])
|
||||
@router.get("/config/{config_id}/gitea/repos", response_model=list[GiteaRepoSchema])
|
||||
async def list_gitea_repositories(
|
||||
config_id: str,
|
||||
db: Session = Depends(get_db),
|
||||
|
||||
@@ -6,19 +6,17 @@
|
||||
# @RELATION USES -> [UserDashboardPreference]
|
||||
|
||||
import os
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from src.core.logger import logger
|
||||
from src.core.superset_client import SupersetClient
|
||||
from src.dependencies import get_config_manager
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitServerConfig
|
||||
from src.models.profile import UserDashboardPreference
|
||||
|
||||
from ._deps import get_git_service, MAX_REPOSITORY_STATUS_BATCH
|
||||
from ._deps import get_git_service
|
||||
|
||||
|
||||
# #region _build_no_repo_status_payload [C:1] [TYPE Function]
|
||||
@@ -49,7 +47,7 @@ def _build_no_repo_status_payload() -> dict:
|
||||
# @POST: Raises HTTPException(500) with route-specific context.
|
||||
def _handle_unexpected_git_route_error(route_name: str, error: Exception) -> None:
|
||||
logger.error(f"[{route_name}][Coherence:Failed] {error}")
|
||||
raise HTTPException(status_code=500, detail=f"{route_name} failed: {str(error)}")
|
||||
raise HTTPException(status_code=500, detail=f"{route_name} failed: {error!s}")
|
||||
# #endregion _handle_unexpected_git_route_error
|
||||
|
||||
|
||||
@@ -95,7 +93,7 @@ def _get_git_config_or_404(db: Session, config_id: str) -> GitServerConfig:
|
||||
def _find_dashboard_id_by_slug(
|
||||
client: SupersetClient,
|
||||
dashboard_slug: str,
|
||||
) -> Optional[int]:
|
||||
) -> int | None:
|
||||
query_variants = [
|
||||
{
|
||||
"filters": [{"col": "slug", "opr": "eq", "value": dashboard_slug}],
|
||||
@@ -127,7 +125,7 @@ def _find_dashboard_id_by_slug(
|
||||
def _resolve_dashboard_id_from_ref(
|
||||
dashboard_ref: str,
|
||||
config_manager,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
) -> int:
|
||||
normalized_ref = str(dashboard_ref or "").strip()
|
||||
if not normalized_ref:
|
||||
@@ -161,7 +159,7 @@ def _resolve_dashboard_id_from_ref(
|
||||
async def _find_dashboard_id_by_slug_async(
|
||||
client: "AsyncSupersetClient",
|
||||
dashboard_slug: str,
|
||||
) -> Optional[int]:
|
||||
) -> int | None:
|
||||
query_variants = [
|
||||
{
|
||||
"filters": [{"col": "slug", "opr": "eq", "value": dashboard_slug}],
|
||||
@@ -193,7 +191,7 @@ async def _find_dashboard_id_by_slug_async(
|
||||
async def _resolve_dashboard_id_from_ref_async(
|
||||
dashboard_ref: str,
|
||||
config_manager,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
) -> int:
|
||||
normalized_ref = str(dashboard_ref or "").strip()
|
||||
if not normalized_ref:
|
||||
@@ -234,7 +232,7 @@ def _resolve_repo_key_from_ref(
|
||||
dashboard_ref: str,
|
||||
dashboard_id: int,
|
||||
config_manager,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
) -> str:
|
||||
normalized_ref = str(dashboard_ref or "").strip()
|
||||
if normalized_ref and not normalized_ref.isdigit():
|
||||
@@ -261,7 +259,7 @@ def _resolve_repo_key_from_ref(
|
||||
|
||||
# #region _sanitize_optional_identity_value [C:1] [TYPE Function]
|
||||
# @BRIEF Normalize optional identity value into trimmed string or None.
|
||||
def _sanitize_optional_identity_value(value: Optional[str]) -> Optional[str]:
|
||||
def _sanitize_optional_identity_value(value: str | None) -> str | None:
|
||||
normalized = str(value or "").strip()
|
||||
if not normalized:
|
||||
return None
|
||||
@@ -273,8 +271,8 @@ def _sanitize_optional_identity_value(value: Optional[str]) -> Optional[str]:
|
||||
# @BRIEF Resolve configured Git username/email from current user's profile preferences.
|
||||
def _resolve_current_user_git_identity(
|
||||
db: Session,
|
||||
current_user: Optional[User],
|
||||
) -> Optional[tuple[str, str]]:
|
||||
current_user: User | None,
|
||||
) -> tuple[str, str] | None:
|
||||
if db is None or not hasattr(db, "query"):
|
||||
return None
|
||||
|
||||
@@ -315,7 +313,7 @@ def _resolve_current_user_git_identity(
|
||||
def _apply_git_identity_from_profile(
|
||||
dashboard_id: int,
|
||||
db: Session,
|
||||
current_user: Optional[User],
|
||||
current_user: User | None,
|
||||
) -> None:
|
||||
identity = _resolve_current_user_git_identity(db, current_user)
|
||||
if not identity:
|
||||
|
||||
@@ -2,25 +2,23 @@
|
||||
# @BRIEF FastAPI endpoints for merge operations (status, conflicts, resolve, abort, continue).
|
||||
# @LAYER: API
|
||||
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import Depends, HTTPException
|
||||
|
||||
from src.core.logger import belief_scope
|
||||
from src.dependencies import get_config_manager, has_permission
|
||||
|
||||
from src.api.routes.git_schemas import (
|
||||
MergeConflictFileSchema,
|
||||
MergeContinueRequest,
|
||||
MergeResolveRequest,
|
||||
MergeStatusSchema,
|
||||
)
|
||||
from src.core.logger import belief_scope
|
||||
from src.dependencies import get_config_manager, has_permission
|
||||
|
||||
from ._router import router
|
||||
from ._deps import get_git_service
|
||||
from ._helpers import (
|
||||
_handle_unexpected_git_route_error,
|
||||
)
|
||||
from ._deps import get_git_service
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region get_merge_status [C:2] [TYPE Function]
|
||||
@@ -30,7 +28,7 @@ from ._deps import get_git_service
|
||||
)
|
||||
async def get_merge_status(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -54,11 +52,11 @@ async def get_merge_status(
|
||||
# @BRIEF Return conflicted files with mine/theirs previews for web conflict resolver.
|
||||
@router.get(
|
||||
"/repositories/{dashboard_ref}/merge/conflicts",
|
||||
response_model=List[MergeConflictFileSchema],
|
||||
response_model=list[MergeConflictFileSchema],
|
||||
)
|
||||
async def get_merge_conflicts(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -85,7 +83,7 @@ async def get_merge_conflicts(
|
||||
async def resolve_merge_conflicts(
|
||||
dashboard_ref: str,
|
||||
resolve_data: MergeResolveRequest,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -114,7 +112,7 @@ async def resolve_merge_conflicts(
|
||||
@router.post("/repositories/{dashboard_ref}/merge/abort")
|
||||
async def abort_merge(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -141,7 +139,7 @@ async def abort_merge(
|
||||
async def continue_merge(
|
||||
dashboard_ref: str,
|
||||
continue_data: MergeContinueRequest,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
|
||||
@@ -2,31 +2,28 @@
|
||||
# @BRIEF FastAPI endpoints for Git lifecycle operations (sync, promote, deploy).
|
||||
# @LAYER: API
|
||||
|
||||
import typing
|
||||
from typing import Optional
|
||||
|
||||
from fastapi import Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import get_config_manager, get_current_user, has_permission
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitProvider, GitRepository
|
||||
|
||||
from src.api.routes.git_schemas import (
|
||||
DeployRequest,
|
||||
PromoteRequest,
|
||||
PromoteResponse,
|
||||
)
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import get_config_manager, get_current_user, has_permission
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitProvider, GitRepository
|
||||
|
||||
from ._router import router
|
||||
from ._deps import get_git_service
|
||||
from ._helpers import (
|
||||
_apply_git_identity_from_profile,
|
||||
_get_git_config_or_404,
|
||||
_handle_unexpected_git_route_error,
|
||||
)
|
||||
from ._deps import get_git_service
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region sync_dashboard [C:3] [TYPE Function]
|
||||
@@ -35,8 +32,8 @@ from ._deps import get_git_service
|
||||
@router.post("/repositories/{dashboard_ref}/sync")
|
||||
async def sync_dashboard(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
source_env_id: typing.Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
source_env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -71,7 +68,7 @@ async def sync_dashboard(
|
||||
async def promote_dashboard(
|
||||
dashboard_ref: str,
|
||||
payload: PromoteRequest,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
@@ -194,7 +191,7 @@ async def promote_dashboard(
|
||||
async def deploy_dashboard(
|
||||
dashboard_ref: str,
|
||||
deploy_data: DeployRequest,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
|
||||
@@ -2,32 +2,30 @@
|
||||
# @BRIEF FastAPI endpoints for Git repository operations (commit, push, pull, status, diff, history).
|
||||
# @LAYER: API
|
||||
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import get_config_manager, get_current_user, has_permission
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitRepository, GitServerConfig
|
||||
|
||||
from src.api.routes.git_schemas import (
|
||||
CommitCreate,
|
||||
CommitSchema,
|
||||
RepoStatusBatchRequest,
|
||||
RepoStatusBatchResponse,
|
||||
)
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import get_config_manager, get_current_user, has_permission
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitRepository, GitServerConfig
|
||||
|
||||
from ._router import router
|
||||
from ._deps import MAX_REPOSITORY_STATUS_BATCH, get_git_service
|
||||
from ._helpers import (
|
||||
_apply_git_identity_from_profile,
|
||||
_build_no_repo_status_payload,
|
||||
_handle_unexpected_git_route_error,
|
||||
_resolve_repository_status,
|
||||
)
|
||||
from ._deps import get_git_service, MAX_REPOSITORY_STATUS_BATCH
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region commit_changes [C:2] [TYPE Function]
|
||||
@@ -36,7 +34,7 @@ from ._deps import get_git_service, MAX_REPOSITORY_STATUS_BATCH
|
||||
async def commit_changes(
|
||||
dashboard_ref: str,
|
||||
commit_data: CommitCreate,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
@@ -67,7 +65,7 @@ async def commit_changes(
|
||||
@router.post("/repositories/{dashboard_ref}/push")
|
||||
async def push_changes(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -94,7 +92,7 @@ async def push_changes(
|
||||
@router.post("/repositories/{dashboard_ref}/pull")
|
||||
async def pull_changes(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
@@ -155,7 +153,7 @@ async def pull_changes(
|
||||
@router.get("/repositories/{dashboard_ref}/status")
|
||||
async def get_repository_status(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -218,9 +216,9 @@ async def get_repository_status_batch(
|
||||
@router.get("/repositories/{dashboard_ref}/diff")
|
||||
async def get_repository_diff(
|
||||
dashboard_ref: str,
|
||||
file_path: Optional[str] = None,
|
||||
file_path: str | None = None,
|
||||
staged: bool = False,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -242,11 +240,11 @@ async def get_repository_diff(
|
||||
|
||||
# #region get_history [C:2] [TYPE Function]
|
||||
# @BRIEF View commit history for a dashboard's repository.
|
||||
@router.get("/repositories/{dashboard_ref}/history", response_model=List[CommitSchema])
|
||||
@router.get("/repositories/{dashboard_ref}/history", response_model=list[CommitSchema])
|
||||
async def get_history(
|
||||
dashboard_ref: str,
|
||||
limit: int = 50,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -272,7 +270,7 @@ async def get_history(
|
||||
@router.post("/repositories/{dashboard_ref}/generate-message")
|
||||
async def generate_commit_message(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
@@ -295,14 +293,14 @@ async def generate_commit_message(
|
||||
history_objs = _gs.get_commit_history(dashboard_id, limit=5)
|
||||
history = [h.message for h in history_objs if hasattr(h, "message")]
|
||||
|
||||
from ...services.llm_provider import LLMProviderService
|
||||
from ...plugins.llm_analysis.service import LLMClient
|
||||
from ...plugins.llm_analysis.models import LLMProviderType
|
||||
from ...plugins.llm_analysis.service import LLMClient
|
||||
from ...services.llm_prompt_templates import (
|
||||
DEFAULT_LLM_PROMPTS,
|
||||
normalize_llm_settings,
|
||||
resolve_bound_provider_id,
|
||||
)
|
||||
from ...services.llm_provider import LLMProviderService
|
||||
|
||||
llm_service = LLMProviderService(db)
|
||||
providers = llm_service.get_all_providers()
|
||||
|
||||
@@ -2,17 +2,10 @@
|
||||
# @BRIEF FastAPI endpoints for core Git repository operations (init, binding, branches, checkout).
|
||||
# @LAYER: API
|
||||
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import get_config_manager, get_current_user, has_permission
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitRepository, GitServerConfig
|
||||
|
||||
from src.api.routes.git_schemas import (
|
||||
BranchCheckout,
|
||||
BranchCreate,
|
||||
@@ -20,14 +13,19 @@ from src.api.routes.git_schemas import (
|
||||
RepoInitRequest,
|
||||
RepositoryBindingSchema,
|
||||
)
|
||||
from src.core.database import get_db
|
||||
from src.core.logger import belief_scope, logger
|
||||
from src.dependencies import get_config_manager, get_current_user, has_permission
|
||||
from src.models.auth import User
|
||||
from src.models.git import GitRepository, GitServerConfig
|
||||
|
||||
from ._router import router
|
||||
from ._deps import get_git_service
|
||||
from ._helpers import (
|
||||
_apply_git_identity_from_profile,
|
||||
_get_git_config_or_404,
|
||||
_handle_unexpected_git_route_error,
|
||||
)
|
||||
from ._deps import get_git_service
|
||||
from ._router import router
|
||||
|
||||
|
||||
# #region init_repository [C:3] [TYPE Function]
|
||||
@@ -37,7 +35,7 @@ from ._deps import get_git_service
|
||||
async def init_repository(
|
||||
dashboard_ref: str,
|
||||
init_data: RepoInitRequest,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
@@ -115,7 +113,7 @@ async def init_repository(
|
||||
@router.get("/repositories/{dashboard_ref}", response_model=RepositoryBindingSchema)
|
||||
async def get_repository_binding(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
@@ -156,7 +154,7 @@ async def get_repository_binding(
|
||||
@router.delete("/repositories/{dashboard_ref}")
|
||||
async def delete_repository(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -179,10 +177,10 @@ async def delete_repository(
|
||||
|
||||
# #region get_branches [C:2] [TYPE Function]
|
||||
# @BRIEF List all branches for a dashboard's repository.
|
||||
@router.get("/repositories/{dashboard_ref}/branches", response_model=List[BranchSchema])
|
||||
@router.get("/repositories/{dashboard_ref}/branches", response_model=list[BranchSchema])
|
||||
async def get_branches(
|
||||
dashboard_ref: str,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
@@ -208,7 +206,7 @@ async def get_branches(
|
||||
async def create_branch(
|
||||
dashboard_ref: str,
|
||||
branch_data: BranchCreate,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
db: Session = Depends(get_db),
|
||||
current_user: User = Depends(get_current_user),
|
||||
@@ -240,7 +238,7 @@ async def create_branch(
|
||||
async def checkout_branch(
|
||||
dashboard_ref: str,
|
||||
checkout_data: BranchCheckout,
|
||||
env_id: Optional[str] = None,
|
||||
env_id: str | None = None,
|
||||
config_manager=Depends(get_config_manager),
|
||||
_=Depends(has_permission("plugin:git", "EXECUTE")),
|
||||
):
|
||||
|
||||
Reference in New Issue
Block a user