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
63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
## 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 |