Skip to main content

GitHub Organization Migration Plan

This document outlines the migration process for moving VibeTunnel from amantus-ai/vibetunnel to vibetunnel/vibetunnel. Status: TODO - This migration has not been completed yet.

Migration Options

Option 1: Simple Transfer (GitHub Built-in)

The simplest approach using GitHub’s native transfer feature.

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

Option 2: Migration with History Cleanup

Since https://github.com/vibetunnel/vibetunnel may already exist, we can perform a clean migration that:
  1. Removes large files from history
  2. Cleans up accidental commits
  3. Preserves important history
  4. Maintains all issues, PRs, and project management features
Use BFG Repo-Cleaner or git-filter-repo to create a cleaned version of the repository.

Pre-Migration Checklist

Preparation (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
  • Analyze Repository for Cleanup (if using Option 2)
  • Notify Stakeholders
    • Team members about the migration
    • Users via issue/discussion if needed
    • Update any public documentation

Migration Process

Option 1: Simple Transfer Steps

  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! ✅

Option 2: Clean Migration Script

Save this as migrate-clean.sh:

Post-Migration Updates

Update Git Remotes

Update VibeTunnel Code

  • Update GITHUB_URL in mac/VibeTunnel/version.xcconfig
  • Update repository URLs in all package.json files:
  • Update any hardcoded GitHub URLs in documentation
  • Update CLAUDE.md references
  • Update docs.json if it contains repository URLs

Update External Services

  • CI/CD configurations
  • npm package registry URLs
  • Monitoring services
  • Documentation sites
  • README badges and links
  • Installation instructions
  • Contributing guidelines

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
  • Consider publishing a patch version with updated URLs

Redirect Behavior

GitHub automatically sets up redirects:
  • https://github.com/amantus-ai/vibetunnelhttps://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

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

Important Notes

  • GitHub’s transfer process is well-tested and reliable
  • The automatic redirects provide good backward compatibility
  • If using history cleanup (Option 2):
    • This process rewrites history - all commit SHAs will change
    • Contributors will need to re-clone or rebase their work
    • Keep the cleaned backup for a few weeks
  • Consider doing this during a low-activity period

Rollback Plan

If issues arise:
  1. GitHub Support can reverse transfers within a short window
  2. Keep the migration backup (if using Option 2)
  3. Document any issues for future reference

References