[APIView][Clean Up] Migrate review-level namespace data to Projects and deprecate old fields
- Dominant language
- C#
- Stars
- 135
- Forks
- 260
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 143
Description
Today namespace approval state lives on `ReviewListItemModel` via `NamespaceReviewStatus`, `NamespaceApprovalRequestedBy`, `NamespaceApprovalRequestedOn`, and `ReviewGroupId`. Once the project-level system is working, this data needs to be migrated and the old fields deprecated.
## Changes
1. **Migration script** — For each Project with linked reviews:
- If a review has `NamespaceReviewStatus == Approved` → create an `Approved` `NamespaceDecisionEntry` on `Project.NamespaceInfo`
- If `Pending` → create a `Proposed` entry
- Populate `ProposedBy`/`ProposedOn` from the review's `NamespaceApprovalRequestedBy`/`NamespaceApprovalRequestedOn`
2. **Deprecate review-level fields:**
- Mark `NamespaceReviewStatus`, `NamespaceApprovalRequestedBy`, `NamespaceApprovalRequestedOn`, `ReviewGroupId` as `[Obsolete]`
- Address `IsApproved` (already marked `// TODO: Deprecate in the future`)
- Deprecate the `NamespaceReviewStatus` enum in `ReviewListModels.cs`
3. **Remove or deprecate old code paths:**
- `ReviewManager.RequestNamespaceReviewAsync` and related methods
- The "Pending Namespace Approvals" tab on `RequestedReviews.cshtml` (update to use project-level data or remove)
Contributor guide
Assessment
This issue has not been assessed yet.