vibetunnel/docs/org-migrate.md
2025-07-18 08:08:27 +02:00

196 lines
No EOL
5.7 KiB
Markdown

# GitHub Organization Migration Plan
This document outlines the migration process for moving the VibeTunnel repository from `amantus-ai/vibetunnel` to `vibetunnel/vibetunnel`.
## 1. Fast-lane Transfer (GitHub Built-in Method)
The simplest approach using GitHub's native transfer feature:
1. Navigate to **Settings → General → Danger Zone → Transfer**
2. Enter the new owner: `vibetunnel`
3. Type the repository name to confirm
4. Accept the invite from the destination org
5. Done! ✅
### What Transfers Automatically
**Code & History**
- All branches and commit history
- Git tags and annotated tags
**Project Management**
- Issues and pull requests (with all comments)
- Projects (classic and new)
- Releases and release assets
- Milestones and labels
**Community Features**
- Stars and watchers
- Wiki content
- Fork relationships
**Security & Integration**
- Webhooks configurations
- Deploy keys
- Repository-level secrets
- GitHub Actions workflows
- Git LFS objects (copied in background)
### What Needs Manual Updates
⚠️ **Organization-level Settings**
- Branch protection rules (inherits new org defaults - review carefully)
- Organization-level secrets (must recreate in new org)
- Environment-level secrets (if used outside repo scope)
- Team permissions (reassign in new org structure)
⚠️ **External Integrations**
- CI/CD systems with hardcoded URLs
- Documentation with repository links
- Package registries (npm, etc.)
- External webhooks
- Status badges in README
## 2. Zero-Downtime Migration Checklist
### Pre-Migration (1-2 days before)
- [ ] **Prepare Target Organization**
- Create `vibetunnel` organization if not exists
- Set up teams and permissions structure
- Configure organization-level settings
- Review default branch protection rules
- [ ] **Audit Current Setup**
- Document all webhooks and integrations
- List organization/environment secrets
- Note branch protection rules
- Identify external services using the repo
- [ ] **Notify Stakeholders**
- Team members about the migration
- Users via issue/discussion if needed
- Update any public documentation
### Migration Day
- [ ] **Pause Activity (Optional but Recommended)**
- Merge or close active PRs
- Create a migration tag: `pre-migration-snapshot`
- Announce brief maintenance window
- [ ] **Execute Transfer**
- Perform the GitHub transfer
- Accept invitation immediately
- Verify all content transferred
- [ ] **Immediate Post-Transfer**
- Push a test commit to verify write access
- Check Actions are running
- Verify webhooks are firing
### Post-Migration Updates
- [ ] **Update Git Remotes**
```bash
# For all local clones
git remote set-url origin git@github.com:vibetunnel/vibetunnel.git
# Verify the change
git remote -v
```
- [ ] **Update Documentation**
- README badges and links
- Installation instructions
- Contributing guidelines
- API documentation
- [ ] **Update External Services**
- CI/CD configurations
- Package registry URLs
- Monitoring services
- Documentation sites
- [ ] **Update Package Configurations**
```json
// package.json
{
"repository": {
"type": "git",
"url": "git+https://github.com/vibetunnel/vibetunnel.git"
},
"bugs": {
"url": "https://github.com/vibetunnel/vibetunnel/issues"
},
"homepage": "https://github.com/vibetunnel/vibetunnel#readme"
}
```
## 3. Redirect Behavior
GitHub automatically sets up redirects:
- `https://github.com/amantus-ai/vibetunnel``https://github.com/vibetunnel/vibetunnel`
- Git operations: `git clone git@github.com:amantus-ai/vibetunnel.git` still works
- API calls to old URL redirect automatically
⚠️ **Redirect Limitations**:
- Redirects break if someone creates a new repo at `amantus-ai/vibetunnel`
- Some tools may not follow redirects properly
- Best practice: Update all references ASAP
## 4. Specific VibeTunnel Updates
### Code Updates
- [ ] Update `GITHUB_URL` in `mac/VibeTunnel/version.xcconfig`
- [ ] Update repository URLs in `package.json` files
- [ ] Update any hardcoded GitHub URLs in documentation
- [ ] Update CLAUDE.md references
### Build & Release
- [ ] Update GitHub Actions secrets if needed
- [ ] Verify macOS notarization still works
- [ ] Test release workflow with new repo URL
- [ ] Update Sparkle appcast URLs if applicable
### npm Package
- [ ] Update package.json repository field
- [ ] Consider publishing a patch version with updated URLs
- [ ] Update npm package description if needed
## 5. Rollback Plan
If issues arise:
1. GitHub Support can reverse transfers within a short window
2. Keep the migration tag for reference
3. Document any issues for future reference
## 6. Timeline
**Day 1**: Preparation
- Set up new organization
- Audit current configuration
- Notify team
**Day 2**: Migration
- Morning: Final preparations
- Midday: Execute transfer
- Afternoon: Update configurations
**Day 3**: Verification
- Test all integrations
- Monitor for issues
- Complete documentation updates
## Notes
- GitHub's transfer process is well-tested and reliable
- The automatic redirects provide good backward compatibility
- Most disruption comes from external tools, not GitHub itself
- Consider doing this during a low-activity period
## References
- [GitHub Docs: Transferring a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository)
- [GitHub Docs: About repository transfers](https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository#about-repository-transfers)
- [GitHub Docs: Repository redirects](https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository#redirects-and-git-operations)