Files
headquarter/openspec/changes/git-connection-model/tasks.md
T
alex 024278a3d2 docs(openspec): add FN-007 Git Connection Model change
- 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
2026-05-16 13:43:49 +02:00

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