Files
ss-tools/specs/011-git-integration-dashboard/tasks.md

4.7 KiB

Tasks: Git Integration Plugin

Feature: Git Integration for Dashboard Development Status: Completed Total Tasks: 35

Phase 1: Setup

Goal: Initialize project structure and dependencies.

  • T001 Install GitPython dependency in backend/requirements.txt
  • T002 Create backend directory structure (routes, models, plugins, services)
  • T003 Create frontend directory structure (components, routes, services)

Phase 2: Foundational

Goal: Implement core data models and service skeletons. Prerequisites: Phase 1

  • T004 Create Git Pydantic models (Branch, Commit, DashboardChange) in backend/src/api/routes/git_schemas.py
  • T005 Create GitServerConfig and Environment SQLAlchemy models in backend/src/models/git.py
  • T006 Implement GitService class skeleton with GitPython init in backend/src/services/git_service.py
  • T007 Implement GitPlugin class skeleton inheriting PluginBase in backend/src/plugins/git_plugin.py

Phase 3: User Story 1 - Configure Git Server (P1)

Goal: Enable users to configure and validate Git server connections. Prerequisites: Phase 2

  • T008 [US1] Implement GitService.test_connection method in backend/src/services/git_service.py
  • T009 [US1] Implement GET/POST /api/git/config endpoints in backend/src/api/routes/git.py
  • T010 [US1] Create frontend/src/services/gitService.js API client
  • T011 [US1] Create frontend/src/components/tools/ConnectionForm.svelte (or similar) for Git config
  • T012 [US1] Implement Settings page at frontend/src/routes/settings/git/+page.svelte

Phase 4: User Story 2 - Branch Management (P1)

Goal: Enable creating and switching branches for dashboards. Prerequisites: Phase 3

  • T013 [US2] Implement GitService branch operations (list, create, checkout) in backend/src/services/git_service.py
  • T014 [US2] Implement GitService.init_repo (clone/init strategy) in backend/src/services/git_service.py
  • T015 [US2] Implement GET/POST /api/git/branches endpoints in backend/src/api/routes/git.py
  • T016 [US2] Implement POST /api/git/checkout endpoint in backend/src/api/routes/git.py
  • T017 [US2] Create frontend/src/components/git/BranchSelector.svelte component
  • T018 [US2] Update Dashboard page to include Git controls container

Phase 5: User Story 3 - Synchronization (P1)

Goal: Enable committing, pushing, and pulling changes. Prerequisites: Phase 4

  • T019 [US3] Implement Dashboard export/unpack logic (using SupersetClient/superset_tool) in backend/src/plugins/git_plugin.py
  • T020 [US3] Implement GitService status and diff generation methods in backend/src/services/git_service.py
  • T021 [US3] Implement GitService commit, push, and pull methods in backend/src/services/git_service.py
  • T022 [US3] Implement /api/git/sync, /commit, /push, /pull endpoints in backend/src/api/routes/git.py
  • T023 [US3] Create frontend/src/components/git/CommitModal.svelte with diff viewer
  • T024 [US3] Create frontend/src/components/git/ConflictResolver.svelte (Keep Mine/Theirs UI)

Phase 6: User Story 4 - Deployment (P2)

Goal: Deploy dashboard versions to target environments. Prerequisites: Phase 5

  • T025 [US4] Implement Environment CRUD endpoints in backend/src/api/routes/git.py
  • T026 [US4] Implement deployment logic (zip packing + Import API) in backend/src/plugins/git_plugin.py
  • T027 [US4] Implement POST /api/git/deploy endpoint in backend/src/api/routes/git.py
  • T028 [US4] Create Deployment modal/interface in frontend/src/components/git/DeploymentModal.svelte

Phase 7: User Story 5 - History (P3)

Goal: View commit history and audit changes. Prerequisites: Phase 5

  • T029 [US5] Implement GitService.get_history method in backend/src/services/git_service.py
  • T030 [US5] Implement GET /api/git/history endpoint in backend/src/api/routes/git.py
  • T031 [US5] Create frontend/src/components/git/CommitHistory.svelte component
  • T032 [US5] Integrate History viewer into Dashboard page

Phase 8: Polish & Cross-Cutting

Goal: Finalize error handling, UI feedback, and performance.

  • T033 Add comprehensive error handling for Git operations (timeouts, auth failures)
  • T034 Add loading states and progress indicators to all Git UI components
  • T035 Verify offline mode behavior and graceful degradation

Dependencies

  • US1 -> US2 -> US3 -> US4
  • US3 -> US5
  • US1 is the critical path.

Implementation Strategy

  • MVP: Complete US1, US2, and US3 (Configure, Branch, Sync). This allows local-only versioning if remote is optional, or full sync if remote is configured.
  • Incremental: Add Deployment (US4) and History (US5) after core sync workflow is stable.