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

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