#migration #git #repository #migrate #bitbucket #pull-request #guts #gitlab #milestones

guts-migrate

Migration tools for importing repositories from GitHub, GitLab, and Bitbucket to Guts

1 unstable release

0.1.0 Dec 23, 2025

#2018 in Development tools

MIT/Apache

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