Dynamically detect Source-Feature as Pre-Migration Validation for GitLab Import Engine
## Summary - Customer opened a support [ticket](https://gitlab.zendesk.com/agent/tickets/698080) to request a feature proposal for the following: - For migrating from Bitbucket to GitLab, implement pre-migration validation that dynamically detects available features from source repositories to improve the reliability and transparency of repository migrations. ## Problem Statement Currently, the GitLab import UI presents a standard set of migration options regardless of whether the source repository actually supports those specific features. This leads to: - User confusion about available migration options - "Silent skips" where users expect data that doesn't exist in the source - Unnecessary troubleshooting of "missing" data that was never available - Increased confusion and cognitive load for engineers during migration planning ## Proposed Solution Implement a pre-migration "handshake" mechanism that: 1. **Feature Detection**: GitLab performs an API call to the source platform (e.g., Bitbucket Cloud/Server) before displaying the import UI 2. **Dynamic UI Updates**: Automatically disable checkboxes for unsupported features in the Import UI 3. **Clear Communication**: Provide informative tooltips explaining why certain options are unavailable ## Expected Benefits - **Reduced Cognitive Load**: Engineers can focus on available options without guessing what will work - **Clear Expectations**: Users understand exactly what data will be migrated before starting the process - **Improved Reliability**: Eliminates confusion about missing data that was never available in the source - **Better User Experience**: More transparent and predictable migration workflow ## Acceptance Criteria - [ ] GitLab queries source repository API to detect available features before showing import options - [ ] Import UI dynamically disables unsupported feature checkboxes - [ ] Informative tooltips explain why specific features are unavailable - [ ] Feature detection works for major source platforms (starting with Bitbucket Cloud/Server) - [ ] Graceful fallback behavior when source API is unavailable or returns errors ## Use Case Example When importing from a Bitbucket repository that doesn't support "Releases": - GitLab detects this limitation via API - The "Import Releases" checkbox is automatically disabled - A tooltip explains: "Releases are not available in the source Bitbucket repository"
issue