Repository navigation
feat(profile): map and detect the entirety of non-migrated data - #30
Merged
Merged
Conversation
Make the consideration registry the complete map of what a migration loses, so the Profile surfaces all of it up front rather than only the items we can currently detect. - Add a `scope` field (repo|org|migration) to each consideration. - Add 13 missing considerations: teams, GitHub Apps, repo collaborators, tag protection, plus nine whole-migration losses (mannequins, audit logs, commit status checks, comment edit history, sub-issues, cross-repo references, @mention re-linking, secret-scanning states, activity feed). - Summary now reports migration-scope facts as `alwaysLost` and excludes them from `notYetCrawled` (they're known losses, not coverage gaps). - Profile detail page renders an 'Always lost in every migration' panel. - Bump docs-verified stamp to 2026-06-15.
Phase 2 of the org scan now counts two more org-scoped resources that do not migrate, so the teams and github-apps considerations light up with real data instead of sitting in 'not yet evaluated'. - org-resources.ts: count teams via the Link-header pagination primitive and GitHub App installations via installations.total_count, both best-effort (degrade to 0 on missing scope / older GHES). - OrgResources gains teams + appInstallations (and zero defaults). - Mark teams and github-apps as org-evaluated so the summary stops listing them as coverage gaps. - Profile page shows Teams and GitHub Apps org-resource tiles.
Phase 6 of the per-repo REST signals pass now reads two more repo-scoped considerations that do not migrate, lighting them up with real counts. - rest-signals.ts: count direct collaborators (affiliation=direct, the access a migration does not carry) via the Link-header pagination primitive, and tag protection rules from /tags/protection. Both best-effort, degrading to 0 on 403/404. - RepoSignals gains collaboratorsCount + tagProtectionCount; analyze adds the repo-collaborators and tag-protection detectors. - Profile repo rows show Collaborators and Tag protection count tiles.
The runner now tags every progress nudge with its crawl phase, so a watching detail page shows what the run is doing right now instead of just a percentage. - Add ProfilePhase (discovering | organization | counting | details | signals) and carry it on ProfileProgress and the SSE progress event. - Emit a phase nudge at each pass boundary so the label transitions crisply (discover -> org scan -> counts -> details -> repo signals). - Profile page renders the phase label with a spinner under the progress bar while the run is in progress.
The bulleted two-column list left ragged whitespace because rows aligned to the tallest item. Render each loss as a bordered card in a responsive grid (matching the org-resource and scale tiles), so items have even heights per row and the panel reads as intentional.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes the Profile surface the entirety of what a migration loses, delivered in phases so each commit is independently green and shippable. The consideration registry is now the complete map of non-migrated data, and several items that were previously invisible now light up with real, gathered data.
What's included
710e6a5scopefield (repo/org/migration) + 13 missing considerations (now 38 total). The detail page renders an always-visible "Always lost in every migration" panel for the 9 whole-migration losses (mannequins, audit logs, commit status checks, comment edit history, sub-issues, cross-repo references, @mention re-linking, secret-scanning states, activity feed).8b93dcc51deb46bcc0b7e54787edCoverage after this PR
So customers see the full picture immediately, and it refines phase by phase as the crawl progresses.
Notes
MIGRATION_DOCS_VERIFIEDbumped to 2026-06-15.Test plan
bun run gates— all greenalwaysLostsplit, org-resource gathering (teams pagination + app installs), per-repo REST signals (collaborators + tag protection), and the phase-labeled progress events.