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.mdThe 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.jsonThe 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 -vHin each repo) - LFS objects: run
git lfs ls-filesto identify LFS-tracked files and their sizes - CI workflow files: check
.github/workflows/or.gitlab-ci.ymlfor 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.ymlcomplexity 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.