Skip to main content
Private preview. fremforge is in private preview — invited customers only. Content is still subject to change. Request access →
Pre-migration checklist

Pre-migration checklist

Before migrating, work through this checklist against your existing tenant to surface the conditions that cause mid-migration surprises: oversized repositories, heavy LFS pools, complex CI pipelines, and third-party integrations that do not auto-reconnect.

Use the script (recommended)

The checklist below can be run by hand, but fremforge ships a shell-based assessment that automates every check on this page. It paginates through the source provider’s repo / member / webhook listings and emits a single Markdown report you can attach to the migration ticket:

# Clone the migration tools (read-only — no fremforge account needed yet)
curl -sSL https://docs.frem.sh/tools/pre-migration-check.sh -o pre-migration-check.sh
chmod +x pre-migration-check.sh

# GitHub
GITHUB_TOKEN=<your-PAT> ./pre-migration-check.sh github <your-org> > report.md

# GitLab
GITLAB_TOKEN=<your-PAT> ./pre-migration-check.sh gitlab <your-group> > report.md

# Azure DevOps
ADO_TOKEN=<your-PAT> ./pre-migration-check.sh azure-devops <your-org> > report.md

The script is read-only, it issues only GET calls against the source provider’s API and never modifies anything in your tenant. The output report covers the same surface as the manual checklist below, plus pagination-aware repo listings (5000-repo safety belt) and Marketplace-action cross-reference against the compatibility matrix. Secrets-in-history scanning is your responsibility pre-migration, run gitleaks detect locally on any repo you’re worried about. The fremforge gitleaks pre-receive hook blocks pushes that contain matched secrets; if a historical commit triggers it, follow the secrets-in-history runbook. Email the script output to support@frem.sh if you’d like a fremforge engineer to walk through it with you before migration day.

If you want machine-readable output for the migration ticket, pass --json before the platform argument:

GITHUB_TOKEN=<your-PAT> ./pre-migration-check.sh --json github <your-org> > report.json

The JSON envelope mirrors the Markdown report (per-repo size + LFS + webhook counts, Marketplace cross-reference, blockers/warnings list) so it can be diffed across pre/post-migration runs or attached to a ticket.

Pre-migration checklist

Before migrating, verify:

  • Repository count and total size (use git count-objects -vH in each repo)
  • LFS objects: run git lfs ls-files to identify LFS-tracked files and their sizes
  • CI workflow files: check .github/workflows/ or .gitlab-ci.yml for syntax and action references that need updating for fremforge
  • Branch protection rules: note any required status checks, required reviewers, and force-push restrictions to recreate in fremforge
  • Secrets and environment variables: list all repository and org secrets to re-add after migration
  • Vanity Git hostname (e.g. git.acme.com): do any of your existing tooling, CI configs, build scripts, or developer onboarding docs reference a custom Git hostname instead of the source platform’s canonical domain? If yes, see GitHub migration § Vanity CNAMEs before migrating, fremforge does not currently issue TLS certificates for vanity-CNAMEd customer domains, and the migration day is not the time to find out.

What to check

All platforms:

  • Repository count and size. Anything over 500 MB gets a warning (importer is slower); anything over 2 GB gets a blocker flag (mirror-clone path required).
  • LFS pool size on repositories that declare LFS.
  • Webhook count per repository, 3+ webhooks triggers a warning so you document each for reconnection.

GitHub-specific:

  • Number of distinct Marketplace action references across all workflows. 10+ distinct actions triggers a cross-check prompt against the Marketplace compatibility matrix.
  • Protected branches, documents them for re-creation on fremforge.
  • Org-level Actions secrets, variables, and container packages, all require re-entry or separate migration.

GitLab-specific:

  • .gitlab-ci.yml complexity heuristic (stages, include: references, extends: chains, services: side-cars). Complex pipelines get a time-budget warning.
  • GitLab Pages deployments flagged for manual reconfiguration.
  • Group-level CI/CD variable count.

Azure DevOps-specific:

  • Classic (non-YAML) pipeline count, flagged as a blocker. Convert to YAML in ADO before migrating.
  • Pipeline count, heavy pipeline volume flagged as a time-budget warning.
  • Service connection count, flagged for OIDC federation replacement.
  • Variable group count.
  • Test Plan count, flagged as a blocker because fremforge has no direct equivalent.

Scope of this checklist

This checklist covers migration readiness, not code quality or security audits. It does not:

  • Evaluate code quality, test coverage, or CI pass rates.
  • Inspect secrets for sensitivity or exposure (use fremforge’s pre-receive secret scanning post-migration for that).
  • Validate that workflows are written correctly, only that they reference a workable number of external actions.
  • Assess whether fremforge’s feature set matches your team’s workflow. That is a sales-call conversation, not a checklist item.

For operational details beyond the checklist, the GitHub migration guide, GitLab migration guide, and Azure DevOps migration guide cover step-by-step import procedures.

Get help

If you have unexpected findings and need help interpreting them, email support@frem.sh. Early-adopter customers have direct access to the fremforge build team for migration assistance.


See also: GitHub migration guide · GitLab migration guide · Azure DevOps migration guide · Top-20 Marketplace actions compatibility matrix.