Files
headquarter/openspec/changes/archive/2026-05-19-smart-git-url-parsing/tasks.md
T
Fusion 6f41fa7cbe feat: implement universal icon system with Phosphor Icons
- Install @phosphor-icons/react package
- Create centralized Icon component with size/weight/color variants
- Create icon registry with 34 icons across 5 categories
- Replace all raw Unicode symbols with proper icon components
- Add icons to navigation, buttons, status indicators, git operations
- Add icon CSS with consistent sizing and spacing
- Fix type definitions for Phosphor icon compatibility

Quality gates: typecheck ✓, lint ✓, build ✓ (375KB bundle)
2026-05-19 19:33:06 +02:00

62 lines
2.1 KiB
Markdown

# Smart Git URL Parsing - Tasks
## Phase 1: Backend URL Parsing
- [ ] **Task 1.1**: Create URL parsing utilities
- Create `src/utils/git_url_parser.py`
- Implement `extract_base_repo_url()` function
- Support GitHub, GitLab, Bitbucket patterns
- Handle query parameters, branch paths, file paths
- Add comprehensive unit tests
- [ ] **Task 1.2**: Create URL validation endpoint
- Add `POST /git-repositories/parse-url` endpoint
- Returns URLParseResult with original, base, validation status
- Add tests for endpoint
- [ ] **Task 1.3**: Enhance repository creation endpoint
- Update `POST /projects/{project_id}/repositories`
- Detect browser URLs and return 422 with suggestion
- Add `force_original_url` flag to bypass suggestion
- Update response models
## Phase 2: Frontend Implementation
- [ ] **Task 2.1**: Create API client for URL parsing
- Add `parseGitUrl()` function to `api/git_repositories.ts`
- Add types for URLParseResult
- [ ] **Task 2.2**: Enhance repository creation form
- Add real-time URL validation to input field
- Show visual indicators (green/yellow/red)
- Display inline suggestion banner
- Add "Use Suggested" / "Keep Original" buttons
- [ ] **Task 2.3**: Create confirmation dialog
- Create `URLCorrectionDialog` component
- Shows original vs suggested URL comparison
- Handles accept/reject/cancel actions
- Integrate with repository creation flow
## Phase 3: Integration & Testing
- [ ] **Task 3.1**: Wire up frontend to backend
- Call parse-url endpoint on URL input change (debounced)
- Handle 422 responses from repository creation
- Show confirmation dialog when needed
- [ ] **Task 3.2**: Add error handling
- Handle network errors during URL validation
- Show clear error messages for unsupported URLs
- Handle clone failures gracefully
- [ ] **Task 3.3**: Run quality gates
- Backend: ruff, mypy, pytest
- Frontend: typecheck, lint, build
- [ ] **Task 3.4**: Manual testing
- Test with GitHub URLs (tree, blob, pull)
- Test with GitLab URLs (-/tree, -/blob)
- Test with valid git URLs (should pass through)
- Test force_original_url flag