From f26b3f4efe23addfb80b3ad48d93fbe1ac2baa6c Mon Sep 17 00:00:00 2001 From: Casey Vega Date: Sun, 14 Jun 2026 17:40:22 -0700 Subject: [PATCH] refactor: replace GEI wording with "GitHub export" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The product surfaced "GEI" / "GitHub Enterprise Importer" in user-facing copy (README, API docs, the landing + profile pages, and one consideration summary) and throughout developer comments. Reframe everything around "the GitHub export" — what the export covers vs. what needs additional tooling — which is clearer for users who don't know the underlying importer's name. Also rename the exported constants GEI_DOC_URL -> MIGRATION_DOC_URL and GEI_DOCS_VERIFIED -> MIGRATION_DOCS_VERIFIED (and their test references). Left untouched: GitHub's real upload API path literals (/gei/archive, gei:// URIs) and historical CHANGELOG entries. --- README.md | 2 +- docs/api.md | 4 +-- .../profile/consideration-registry.test.ts | 10 +++--- src/lib/profile/consideration-registry.ts | 32 +++++++++---------- src/lib/server/migrate/github-ops.test.ts | 2 +- src/lib/server/migrate/github-ops.ts | 6 ++-- src/lib/server/profile/analyze.ts | 4 +-- src/lib/server/profile/augment.ts | 2 +- src/lib/server/profile/types.ts | 4 +-- src/routes/+page.svelte | 4 +-- src/routes/profile/+page.svelte | 2 +- 11 files changed, 36 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index f667893..479ac88 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ ## Capabilities - Migrates repositories GHES → GHEC and GHEC → GHEC, via archive upload or direct passthrough. -- Profiles an organization before migrating — crawls every repository and surfaces per-repo migration *considerations* (what GEI won't carry over) plus actionable insights, streamed live. +- Profiles an organization before migrating — crawls every repository and surfaces per-repo migration *considerations* (what the GitHub export won't carry over) plus actionable insights, streamed live. - Accepts batch requests of up to 500 repositories; a FIFO queue caps execution at 10 concurrent migrations (GitHub's limit). - Reports progress over Server-Sent Events (SSE) — phase timeline, per-resource progress, and throughput. - Supports cancelling in-flight migrations and restarting failed or cancelled ones in place. diff --git a/docs/api.md b/docs/api.md index 210d8ac..71d2a9b 100644 --- a/docs/api.md +++ b/docs/api.md @@ -72,8 +72,8 @@ a `targetOrg`. ## Profile The Profiler workspace (`/api/profile/*`) crawls an organization's repositories -and reports per-repo migration *considerations* (things GEI won't carry over) -and actionable insights, so you can assess readiness before migrating. +and reports per-repo migration *considerations* (things the GitHub export won't +carry over) and actionable insights, so you can assess readiness before migrating. | Method | Endpoint | Description | |---|---|---| diff --git a/src/lib/profile/consideration-registry.test.ts b/src/lib/profile/consideration-registry.test.ts index ebe23a0..dd24058 100644 --- a/src/lib/profile/consideration-registry.test.ts +++ b/src/lib/profile/consideration-registry.test.ts @@ -3,9 +3,9 @@ import { type Consideration, type ConsiderationKind, type ConsiderationSeverity, - GEI_DOC_URL, - GEI_DOCS_VERIFIED, MIGRATION_CONSIDERATIONS, + MIGRATION_DOC_URL, + MIGRATION_DOCS_VERIFIED, } from "./consideration-registry"; const KINDS: ConsiderationKind[] = [ @@ -79,7 +79,7 @@ describe("consideration registry integrity", () => { for (const g of MIGRATION_CONSIDERATIONS) { expect(g.docAnchor, g.id).toMatch(/^#[a-z0-9-]+$/); } - expect(GEI_DOC_URL).toMatch(/^https:\/\/docs\.github\.com\//); + expect(MIGRATION_DOC_URL).toMatch(/^https:\/\/docs\.github\.com\//); }); test("size/limit blockers are estimated, exact-signal considerations are exact", () => { @@ -93,8 +93,8 @@ describe("consideration registry integrity", () => { }); test("the docs-verified stamp is an ISO date", () => { - expect(GEI_DOCS_VERIFIED).toMatch(/^\d{4}-\d{2}-\d{2}$/); - expect(Number.isNaN(Date.parse(GEI_DOCS_VERIFIED))).toBe(false); + expect(MIGRATION_DOCS_VERIFIED).toMatch(/^\d{4}-\d{2}-\d{2}$/); + expect(Number.isNaN(Date.parse(MIGRATION_DOCS_VERIFIED))).toBe(false); }); test("covers the considerations the Profile workspace is built around", () => { diff --git a/src/lib/profile/consideration-registry.ts b/src/lib/profile/consideration-registry.ts index cdf1ee1..6f3fedd 100644 --- a/src/lib/profile/consideration-registry.ts +++ b/src/lib/profile/consideration-registry.ts @@ -1,26 +1,26 @@ /** - * Consideration registry — the canonical list of source data that GitHub - * Enterprise Importer (GEI) does not migrate cleanly. The Profile workspace - * reads this to detect each consideration, classify it, and route it to its - * remediation (supplemental tooling, a reconfigure step, or a "heads up, this - * is lost" note). + * Consideration registry — the canonical list of source data that the GitHub + * export does not carry cleanly. The Profile workspace reads this to detect + * each consideration, classify it, and route it to its remediation + * (supplemental tooling, a reconfigure step, or a "heads up, this is lost" + * note). * - * It is plain reference data — edit it whenever GEI changes. The accompanying - * test (consideration-registry.test.ts) guards its integrity (unique ids, - * well-formed entries, kind/severity consistency) so edits can't silently - * corrupt it. + * It is plain reference data — edit it whenever the export's coverage changes. + * The accompanying test (consideration-registry.test.ts) guards its integrity + * (unique ids, well-formed entries, kind/severity consistency) so edits can't + * silently corrupt it. * * Verified against GitHub's "About migrations between GitHub products" and its * "Limitations on migrated data" section. Several entries are in public preview - * upstream, so re-check periodically and bump GEI_DOCS_VERIFIED. + * upstream, so re-check periodically and bump MIGRATION_DOCS_VERIFIED. */ -/** Base GEI documentation URL; each entry's `docAnchor` appends to this. */ -export const GEI_DOC_URL = +/** Base migration documentation URL; each entry's `docAnchor` appends to this. */ +export const MIGRATION_DOC_URL = "https://docs.github.com/en/migrations/using-github-enterprise-importer/migrating-between-github-products/about-migrations-between-github-products"; -/** Date the registry was last reconciled with the GEI docs (YYYY-MM-DD). */ -export const GEI_DOCS_VERIFIED = "2026-06-13"; +/** Date the registry was last reconciled with the migration docs (YYYY-MM-DD). */ +export const MIGRATION_DOCS_VERIFIED = "2026-06-13"; /** * What kind of remediation a consideration needs: @@ -63,7 +63,7 @@ export interface Consideration { routesTo: string | null; /** One-line, doc-grounded explanation of the consideration. */ summary: string; - /** Anchor into GEI_DOC_URL backing this entry. */ + /** Anchor into MIGRATION_DOC_URL backing this entry. */ docAnchor: string; } @@ -109,7 +109,7 @@ export const MIGRATION_CONSIDERATIONS: readonly Consideration[] = [ detector: "graphql-discussions-count", confidence: "exact", routesTo: "Discussions migration tooling", - summary: "Discussions at the repository level are not migrated by GEI.", + summary: "Discussions at the repository level are not included in the GitHub export.", docAnchor: NOT_MIGRATED, }, { diff --git a/src/lib/server/migrate/github-ops.test.ts b/src/lib/server/migrate/github-ops.test.ts index cb60239..2b6ebb9 100644 --- a/src/lib/server/migrate/github-ops.test.ts +++ b/src/lib/server/migrate/github-ops.test.ts @@ -1,5 +1,5 @@ /** - * Tests for the GEI archive-export wait helper. `waitForArchive` polls a GHES + * Tests for the archive-export wait helper. `waitForArchive` polls a GHES * migration's status and resolves with the archive URL once it's exported. * * The helper takes a full `InstanceType` (hundreds of diff --git a/src/lib/server/migrate/github-ops.ts b/src/lib/server/migrate/github-ops.ts index 993be90..5e560ce 100644 --- a/src/lib/server/migrate/github-ops.ts +++ b/src/lib/server/migrate/github-ops.ts @@ -1,12 +1,12 @@ /** - * GitHub Enterprise Importer (GEI) operations — the migration-specific GitHub + * GitHub cross-product migration operations — the migration-specific GitHub * calls that drive the import pipeline, kept out of `core/github` so that * module stays a generic client + repo-operations primitive any domain can use. * * Two groups: * - GHES archive export (REST): version gate + git/metadata archive jobs and * the poll-until-exported wait. - * - GEI GraphQL: migration-source creation, start/get/abort a repository + * - Migration GraphQL: migration-source creation, start/get/abort a repository * migration, and post-migration source archiving. * * Depends only on `core` (the client type, the version comparator, sleep) — no @@ -122,7 +122,7 @@ export async function waitForArchive( throw new Error("Archive wait aborted"); } -// ── GEI GraphQL ────────────────────────────────────────────────────────────── +// ── Migration GraphQL ─────────────────────────────────────────────────────────── export async function getOrgId(gql: typeof graphql, org: string): Promise { const result = await gql<{ organization: { id: string } }>( diff --git a/src/lib/server/profile/analyze.ts b/src/lib/server/profile/analyze.ts index 1e2fce7..ef4dc8a 100644 --- a/src/lib/server/profile/analyze.ts +++ b/src/lib/server/profile/analyze.ts @@ -1,9 +1,9 @@ /** - * Consideration-analysis engine — runs a repository's signals against the GEI + * Consideration-analysis engine — runs a repository's signals against the * consideration registry and produces a per-repo readiness profile. * * The registry (`$lib/profile/consideration-registry`) is the canonical checklist of - * what GEI does not migrate cleanly. This engine evaluates each entry against + * what the GitHub export does not carry cleanly. This engine evaluates each entry against * the gathered `RepoSignals` and classifies it: * * - applies — the consideration is present (with human-readable evidence) diff --git a/src/lib/server/profile/augment.ts b/src/lib/server/profile/augment.ts index 734ec80..37ec16c 100644 --- a/src/lib/server/profile/augment.ts +++ b/src/lib/server/profile/augment.ts @@ -69,7 +69,7 @@ const REPO_SIGNALS_QUERY = `query repoSignals($owner: String!, $name: String!, $ }`; /** - * Whether a branch protection rule uses any feature GEI does not migrate. + * Whether a branch protection rule uses any feature the GitHub export does not carry. * (Plain required-reviews/status-checks DO migrate, so a rule using only those * counts as zero here.) */ diff --git a/src/lib/server/profile/types.ts b/src/lib/server/profile/types.ts index 005b455..d26e72e 100644 --- a/src/lib/server/profile/types.ts +++ b/src/lib/server/profile/types.ts @@ -87,8 +87,8 @@ export interface RepoSignals extends DiscoveredRepo { /** Branch protection rules (`branchProtectionRules.totalCount`). */ branchProtectionRuleCount: number; /** - * How many branch protection rules use at least one feature GEI does not - * migrate (force-push allowance, required deployments, lock branch, block + * How many branch protection rules use at least one feature the GitHub export + * does not carry (force-push allowance, required deployments, lock branch, block * creations, require last-push approval, or bypass actors). `> 0` means the * branch-protection-partial gap applies. */ diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index f457f50..af99dfd 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -55,8 +55,8 @@

Profile

- Analyze a source organization for migration readiness — surface what GEI - won't carry cleanly and route each consideration to its remediation. + Analyze a source organization for migration readiness — surface what the + GitHub export won't carry cleanly and route each consideration to its remediation.

diff --git a/src/routes/profile/+page.svelte b/src/routes/profile/+page.svelte index fcd2e8d..0ebe14d 100644 --- a/src/routes/profile/+page.svelte +++ b/src/routes/profile/+page.svelte @@ -55,7 +55,7 @@ Profile

- Crawl a source organization and surface what GitHub Enterprise Importer won't migrate cleanly. + Crawl a source organization and surface what the GitHub export won't carry cleanly.

← Workspaces