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

2.1 KiB

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