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