1 unstable release
| 0.1.0 | Dec 23, 2025 |
|---|
#2018 in Development tools
130KB
3K
SLoC
Guts Migration Tools
This crate provides migration tools for importing repositories from GitHub, GitLab, and Bitbucket to the Guts decentralized code collaboration platform.
Features
- GitHub Migration: Full repository migration including issues, PRs, releases
- GitLab Migration: Project migration with merge requests and issues
- Bitbucket Migration: Repository migration with pull requests
- Verification: Post-migration verification to ensure data integrity
- Progress Tracking: Real-time progress reporting with ETA
Example
use guts_migrate::{GitHubMigrator, MigrationConfig, MigrationOptions};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let config = MigrationConfig {
source_repo: "owner/repo".to_string(),
guts_url: "https://api.guts.network".to_string(),
guts_token: Some("guts_xxx".to_string()),
};
let options = MigrationOptions::default()
.with_issues(true)
.with_pull_requests(true)
.with_releases(true);
let migrator = GitHubMigrator::new("github_token", config)?;
let report = migrator.migrate(options).await?;
report.print_summary();
Ok(())
}
guts-migrate
Migration tools for importing repositories to Guts.
Overview
This crate provides tools to migrate from:
- GitHub - Repositories, issues, PRs, releases
- GitLab - Full project migration
- Bitbucket - Repository and metadata
Features
- Preserves commit history
- Migrates issues and pull requests
- Transfers labels and milestones
- Handles large repositories
Usage
use guts_migrate::{GitHubMigrator, MigrationConfig};
// Migrate from GitHub
let migrator = GitHubMigrator::new(github_token);
migrator.migrate("owner/repo", &guts_client).await?;
CLI
guts migrate github --repo owner/repo --token $GITHUB_TOKEN
guts migrate gitlab --project group/project --token $GITLAB_TOKEN
Part of Guts
This crate is part of Guts, a decentralized, censorship-resistant alternative to GitHub built on BFT consensus.
License
MIT OR Apache-2.0
Dependencies
~31–54MB
~878K SLoC