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