v1.1.0 adds full GitLab support, completing the core promise of seamless cross-platform issue migration.
git issue import gitlab:group/project- Import issues from GitLabgit issue export gitlab:group/project- Export issues to GitLabgit issue sync gitlab:group/project- Bidirectional synchronization
Key Features:
- ✅ Uses
glabCLI (official GitLab CLI) for authentication - ✅ Consistent authentication pattern:
glab auth login(same as GitHub'sgh auth login) - ✅ Support for gitlab.com and self-hosted GitLab instances
- ✅ Bidirectional comment sync with Provider-Comment-ID tracking
- ✅ Idempotent operations - re-syncing is safe, no duplicates
- ✅ Full unicode and markdown preservation
The killer feature - migrate issues between platforms in 2 commands:
# GitHub → GitLab migration
git issue import github:oldorg/oldrepo --state all
git issue export gitlab:neworg/newrepo
# GitLab → GitHub migration
git issue import gitlab:oldgroup/oldproject --state all
git issue export github:newowner/newrepoUse Cases:
- Enterprise platform migrations (GitHub Enterprise → GitLab self-hosted)
- Cost optimization (GitHub Teams → GitLab CE/Gitea)
- Vendor independence (backup issues in Git, portable across any platform)
- Multi-platform workflows (sync issues between GitHub + GitLab)
Refactored Bridge Architecture:
- Provider-specific scripts for better maintainability
- Clean router pattern for extensibility
- Consistent authentication and API patterns
- Ready for future providers (Gitea, Forgejo)
- 76 core tests passing (all existing functionality validated)
- 6 integration tests with real GitHub/GitLab repositories
- Cross-platform migration validated end-to-end
- Idempotency stress testing - multiple syncs produce identical results
- Unicode, emoji, markdown preservation verified
CRITICAL FIX: GitLab import UUID generation
- Problem: Non-unique UUIDs caused duplicate refs and idempotency failures
- Impact: Re-syncing caused exponential growth (3→4→5 refs)
- Fix: Use proper UUID generation (caught during pre-release testing!)
Other Fixes:
- git commit-tree syntax (use environment variables)
- Router dry-run parameter expansion
- docs/gitlab-bridge.md - Comprehensive GitLab bridge guide
- docs/migration-guide.md - Enterprise migration workflows
- GitHub ↔ GitLab migration recipes
- Multi-platform sync strategies
- Disaster recovery scenarios
- README.md - Updated with GitLab examples
Install the GitLab CLI if not already installed:
# macOS
brew install glab
# Linux
# See: https://gitlab.com/gitlab-org/cli#installationAuthenticate with GitLab:
# GitLab.com
glab auth login
# Self-hosted GitLab
glab auth login --hostname gitlab.company.com# Homebrew
brew upgrade remenoscodes/git-native-issue/git-native-issue
# Or from source
git pull
make installVerify the version:
git issue version
# git-issue version 1.1.0None! This release is 100% backward compatible with v1.0.x.
- Gitea/Forgejo bridge
- Shell completion (bash/zsh)
- Performance optimizations
- Additional QoL improvements
This release was developed with comprehensive testing and validation before launch, catching critical bugs that would have been catastrophic in production.
Special thanks to the testing process that discovered and fixed the UUID generation bug!
Full Changelog: https://github.com/remenoscodes/git-native-issue/compare/v1.0.3...v1.1.0
Installation: https://github.com/remenoscodes/git-native-issue#installation
Documentation: https://github.com/remenoscodes/git-native-issue/tree/main/docs