024278a3d2
- Add proposal, design, specs, and tasks for git connection model - Include provider adapter, credential storage, SSH key lifecycle specs - Add repository connection API and git operations specifications
2.4 KiB
2.4 KiB
1. Provider Adapters
- 1.1 Implement GitHubAdapter in apps/api/app/git/providers/github.py
- 1.2 Implement GitLabAdapter in apps/api/app/git/providers/gitlab.py
- 1.3 Add provider factory in apps/api/app/git/providers/__init__.py
- 1.4 Write tests for GitHubAdapter (mock API responses)
- 1.5 Write tests for GitLabAdapter (mock API responses)
2. Credential Storage
- 2.1 Create CredentialStorage implementation in apps/api/app/git/credentials.py
- 2.2 Add database model for GitCredential if needed
- 2.3 Integrate Fernet encryption from app/encryption.py
- 2.4 Add credential router in apps/api/app/routers/credentials.py
- 2.5 Write tests for credential storage
3. SSH Key Lifecycle
- 3.1 Complete SshKeyLifecycle.generate_key_pair() with real Ed25519
- 3.2 Add SSH key endpoints in apps/api/app/routers/ssh_keys.py
- 3.3 Implement key rotation logic
- 3.4 Write tests for SSH key generation
4. Repository Connection API
- 4.1 Create RepositoryConnection router in apps/api/app/routers/repository_connections.py
- 4.2 Implement POST /api/v1/repository-connections endpoint
- 4.3 Implement GET /api/v1/repository-connections endpoint
- 4.4 Implement GET /api/v1/repository-connections/:id endpoint
- 4.5 Implement DELETE /api/v1/repository-connections/:id endpoint
- 4.6 Add validation for repository URLs and tokens
- 4.7 Write tests for repository connection endpoints
5. Git Operations
- 5.1 Complete LocalGitOperations.clone() with SSH key
- 5.2 Complete LocalGitOperations.fetch() with SSH key
- 5.3 Complete LocalGitOperations.push() with SSH key
- 5.4 Add error handling for auth failures
- 5.5 Write tests for git operations
6. Frontend UI
- 6.1 Create RepositoryConnectionListPage.tsx
- 6.2 Create RepositoryConnectionFormPage.tsx
- 6.3 Add repository connection routes to router.tsx
- 6.4 Add API client methods for repository connections
- 6.5 Add types for repository connections
7. Documentation
- 7.1 Update docs/architecture.md with Git connection model
- 7.2 Update docs/development.md with setup instructions
- 7.3 Add provider setup guide (GitHub/GitLab tokens)
8. Testing & Verification
- 8.1 Run all backend tests (target: 90+)
- 8.2 Run ruff linter
- 8.3 Run mypy type checker
- 8.4 Run frontend tests
- 8.5 Verify API endpoints with manual testing
- 8.6 Update project specsheet