This project contains three separate components for migrating Gitopia repositories, LFS objects, and release assets during the v6 upgrade process.
- Purpose: Clones all existing repositories (including LFS objects) and release assets
- Version: gitopia v5.1.0, gitopia-go v0.6.2
- Usage: Run before upgrade height to download and pin all existing data
- Purpose: Syncs new changes from git-server until switchover to storage provider
- Version: gitopia v5.1.0, gitopia-go v0.6.2
- Usage: Run continuously before upgrade height to keep data synchronized
- Purpose: Updates packfile, LFS objects and release assets transactions after chain upgrade
- Version: gitopia v6.0.0-rc.6, gitopia-go v0.7.0-rc.3
- Usage: Run after upgrade height to update blockchain with new storage information
- Run Clone Script to download all existing data
- Start Sync Daemon to keep data synchronized with git-server updates
- Stop git-server
- Register as storage provider
- Run Update Script to update blockchain with storage information
gitopia-migration-tools/
βββ README.md
βββ clone-script/
β βββ cmd/
β β βββ clone/
β β βββ main.go
β βββ go.mod
β βββ go.sum
β βββ config.toml.example
β βββ README.md
βββ sync-daemon/
β βββ cmd/
β β βββ syncd/
β β βββ main.go
β βββ handler/
β βββ go.mod
β βββ go.sum
β βββ config.toml.example
β βββ README.md
βββ update-script/
βββ cmd/
β βββ update/
β βββ main.go
βββ go.mod
βββ go.sum
βββ config.toml.example
βββ README.md
- Each component uses different versions of gitopia and gitopia-go
- IPFS cluster secret must be shared securely between all storage providers
- Wallet mnemonics should be stored securely and never committed to version control