Repository navigation
Migrate Identity.Governance shared directives to v3 - #3905
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 16 commits into
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 16 commits into
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 16 commits into
Conversation
Account for all 70 shared groups against both compatible profiles and original legacy selectors. Preserve all four privileged assignment GET variants through the shared natural-ID API. Keep the final legacy evidence inventory gate pending its central helper. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full queued compatible-spec Kiota 1.36.1 and Release build passed with original Authentication 2.38.1: status OK, 2033 exports. Fresh compiled checks cover 266 suppression assertions, 914 renamed-prefix routes and 11 unaffected neighbors. Client, cmdlets, generated projects and locks are committed together; preserve unmodified Kiota-generated formatting. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Register shared natural mandatory-ID program/control/count/alert alternatives without dropping endpoints. Keep scope-refresh and program-associated write bodies distinct where parameter contracts cannot be grouped. All 147 targeted regressions pass, including the complete compatible surfaces and real group contracts. Typed body runtime verification remains gated by the shared serialization packaging prerequisite. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Assert the generated typed client keeps the mandatory ProgramId route key separate from the expanded ProgramId1 body parameter. All 147 targeted current-API regressions pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full final-source queued compatible-spec Kiota 1.36.1 and Release build passed after fresh v1.0: beta status OK, 2607 exports, 81.9s. Fresh compiled verification covers 882 suppression assertions, 276 prefix routes, all 29 corrected alternatives and 10 unaffected neighbors. Terminal HTTP proof covers 20 GET and 4 DELETE routes plus 6 WhatIf/declined Confirm gates; typed mutation bodies remain explicitly pending shared packaging #3878. Keep client, cmdlets, generated projects and locks together. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep unsupported content, non-operation call segments and OData aliases visible in real compatible-surface regression output instead of masking them with new suppressions. Record the current 53 v1.0 and 55 beta diagnostics; all 147 targeted tests pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…z-identity-governance-v3-migration
Keep the original group1 match set behind reviewed exclusions for270 unrelated new APIs. Refresh only20beta literal IDs and current evidence blobs, remove rejected Legacy validation fields, and leave all authored configuration and groups2-70 unchanged. The actual ordinary inventory maps70/70 groups and154 targeted source regressions pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…z-identity-governance-v3-migration
Verify actual effective metadata and native mandatory QueryId binding for the two surviving routes in each profile, preserving all existing suppressions, item-reference neighbors and path-only natural-ID groups. Actual ordinary inventory70/70 and158targeted tests pass; initial population discrepancy remains in evidence. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full normal4eb3 queued Kiota1.36.1 and Release build passed with adapted packagedAuth2.41.2:2033exports122.1s. Combined client,cmdlets,projects and locks include mandatory QueryId binding and profile-aware adapters. Fresh Global/USGov real-factory required-query,binder,encoding,bodyless,IfMatch,confirmation and lifecycle gates pass; existing unmerged3886 refetch header failure remains unwaived. No generated sources edited by hand. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full normal4eb3 queued Kiota1.36.1 and Release build after v1.0 passed with normallypackaged adaptedAuth2.41.2:2607exports200.9s. Combined client,cmdlets,projects and locks preserve all authored suppressions, native QueryId binding and profile-aware service roots. Actual Global/USGov requiredquery,binder,encoding,bodyless,IfMatch,confirmation and lifecycle gates pass; remaining ordinary/groupedPATCH204GETheaderlosses stay unwaived pending3886. No source hand edits. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…z-identity-governance-v3-migration
Pin every generated ordinary and grouped PATCH worker to one mutation with no implicit GET or readback flag. Preserve typed non-null response output and explicit profile transport. Ordinary strict inventory70/70 and158targeted regressions pass; old refetch failures remain historical evidence. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full unchanged-queue Kiota1.36.1 and Release build on normal6475 succeeded:2033exports. Preserve client and lock output byte-identical where appropriate; commit generated cmdlets, client/projects/locks together. PATCH no longer sends an implicit GET after204. Built-in Kiota timeout retry recorded in the raw build log; no skip or manual generated edits. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Full unchanged-queue Kiota1.36.1 and Release build on normal6475 succeeded after v1.0:2607exports351.7s. Generated ordinary/grouped/nested PATCH workers retain one mutation, no automatic GET. Client and lock outputs are honestly byte-identical where appropriate; keep actual client/cmdlet/project/lock deltas in this separate profile boundary. No manual generated edits or skipped generation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Ramses Sanchez-Hernandez (ramsessanchez)
requested a review
from a team
as a code owner
November 6, 2026 02:30
This branch has not been deployed
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.
N/A (no linked issue).
Changes proposed in this pull request
src\readme.graph.mdand all profile-local directive files. Parameter aliases/transforms and schema/response changes remain deferred; this shared source contains zero groups in those classes.Current validation (PowerShell 7/Core):
dotnet test .\tools\WrapperGenerator.Tests\WrapperGenerator.Tests.csproj --filter 'FullyQualifiedName~IdentityGovernanceDirectiveMigrationTests|FullyQualifiedName~IdentityGovernanceRequiredQueryTests|FullyQualifiedName~DerivedCollisionResolutionsTests|FullyQualifiedName~NamingTests|FullyQualifiedName~CmdletConfiguratorTests' --logger 'trx;LogFileName=targeted.trx' --results-directory 'C:\Users\ramsess\.copilot\session-state\945ba215-91d7-4537-8f46-90b5e0850e1c\files\post3886-6475-final' --verbosity minimal --nologopwsh -NoProfile -NonInteractive -File .\tools\Get-WrapperDirectiveMigrationInventory.ps1 -Module Identity.Governance -FailOnUnresolved -OutputPath 'C:\Users\ramsess\.copilot\session-state\945ba215-91d7-4537-8f46-90b5e0850e1c\files\post3886-6475-final\strict-inventory.json'pwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\871a5292-dc5b-423e-8083-5165b0006603\files\Invoke-QueuedModuleBuild.ps1' -RepoRoot 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-curly-winner' -Module Identity.Governance -ApiVersion v1.0 -Configuration Releasepwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\871a5292-dc5b-423e-8083-5165b0006603\files\Invoke-QueuedModuleBuild.ps1' -RepoRoot 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-curly-winner' -Module Identity.Governance -ApiVersion beta -Configuration ReleaseEach build invocation uses the documented process-local Kiota/Auth environment and the unchanged four-mutex queue. No global installation, dependency preloads, copied DLL closure, Auth shims, candidate overlays or skipped generation were used.
Fresh normal-manifest compiled and real authenticated offline transport gates were run separately for each row below:
pwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\945ba215-91d7-4537-8f46-90b5e0850e1c\files\post3886-6475-final\Test-GovernanceCompiled.ps1' -RepoRoot 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-curly-winner' -Profile <v1.0|beta> -Environment <Global|USGov>pwsh -NoProfile -NonInteractive -File 'C:\Users\ramsess\.copilot\session-state\945ba215-91d7-4537-8f46-90b5e0850e1c\files\post3886-6475-memory-final\Test-GovernanceFinalRuntime.ps1' -RepoRoot 'C:\Users\ramsess\Repos\copilot-worktrees\msgraph-sdk-powershell\ramsessanchez-curly-winner' -Profile <v1.0|beta> -Environment <Global|USGov>The full compiled modules verify migrated suppressions, names, all natural-ID alternatives/defaults/mandatory path IDs and unaffected neighbors. Real Connect-MgGraph + in-memory test store + GraphHttpClientFactory terminal captures verify native escaped Ivan Dyachkov (@id), missing/null/empty/obsolete-ID rejection before HTTP, bodyless DELETE + typed IfMatch/custom headers, typed POST/PUT/PATCH/action/media results, independent ProgramId1 body values, 204/no-readback and 200 response behavior with GET configured to reject 403, WhatIf/accepted/declined confirmation counts, Global/USGov beta URLs, reconnect/request-context cache invalidation and normal assembly identities. The real factory's global/v1.0 BaseAddress is not mutated. Zero live Graph/OAuth requests; these are offline behavior proofs, not tenant certification.
Offline isolation is guarded, not assumed: the existing Set-MgTestDataStore helper is reapplied after all main and additional-runspace imports and before Connect. The reflected actual store type is checked before invocation/lifecycle/logout, and every terminal request records Microsoft.Graph.Authentication.Test.Mocks.MockDataStore. Earlier unguarded runtime reports are preserved and superseded only for this probe-setup isolation proof; the valid original builds/TRX/source/generation commits were not rerun or relabeled. No production Authentication/loader changes or credential-I/O claims are inferred from a datastore type.
Commit boundaries and inputs
d07958ab93902398298a7cdc8334c697bc45ee84. All prior migration/normal integration/correction/profile-generation commits and the coupled derived-name test correction are retained.d737246cf41e053d5ce30ba3dc22cfbe3e7bfc90; spec blobcc4b644c099cdf6e3158afd01709207d2cc9f3d2.7f9ae2b203d9f9d8c72702f2299084afcabc5519; spec blob625e577e80c542da82d1708a2a67d5efcca0ed1e.Honest existing limits
Exact raw logs, TRX, source/spec/Auth/package/manifest hashes, full compiled captures and command/exit evidence are retained in
C:\Users\ramsess\.copilot\session-state\945ba215-91d7-4537-8f46-90b5e0850e1c\files\post3886-6475-memory-final\handoff.jsonand its artifact manifest. Earlier failures and candidate proofs remain immutable historical records and are not relabeled as current success.Other links