4.7 KiB
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_connectionmethod inbackend/src/services/git_service.py - T009 [US1] Implement GET/POST
/api/git/configendpoints inbackend/src/api/routes/git.py - T010 [US1] Create
frontend/src/services/gitService.jsAPI 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
GitServicebranch operations (list, create, checkout) inbackend/src/services/git_service.py - T014 [US2] Implement
GitService.init_repo(clone/init strategy) inbackend/src/services/git_service.py - T015 [US2] Implement GET/POST
/api/git/branchesendpoints inbackend/src/api/routes/git.py - T016 [US2] Implement POST
/api/git/checkoutendpoint inbackend/src/api/routes/git.py - T017 [US2] Create
frontend/src/components/git/BranchSelector.sveltecomponent - 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
GitServicestatus and diff generation methods inbackend/src/services/git_service.py - T021 [US3] Implement
GitServicecommit, push, and pull methods inbackend/src/services/git_service.py - T022 [US3] Implement
/api/git/sync,/commit,/push,/pullendpoints inbackend/src/api/routes/git.py - T023 [US3] Create
frontend/src/components/git/CommitModal.sveltewith 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/deployendpoint inbackend/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_historymethod inbackend/src/services/git_service.py - T030 [US5] Implement GET
/api/git/historyendpoint inbackend/src/api/routes/git.py - T031 [US5] Create
frontend/src/components/git/CommitHistory.sveltecomponent - 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.