Skip to content

Updates to Engage scripts to bring them into 2026 - #488

Merged
DeanCron merged 2 commits into
microsoft:masterfrom
DeanCron:master
Jul 22, 2026
Merged

Updates to Engage scripts to bring them into 2026#488
DeanCron merged 2 commits into
microsoft:masterfrom
DeanCron:master

Conversation

@DeanCron

Copy link
Copy Markdown
Collaborator

Audited all Viva Engage/Yammer scripts in scripts/ for outdated/deprecated API usage and migrated what's migratable to Microsoft Graph.

Migrated to Microsoft Graph (app-only, client-credentials auth)
Delete-YammerGroups → Delete-EngageGroups — DELETE /beta/employeeExperience/communities/{id}
Add-YammerGroupAdmins → Add-EngageGroupAdmins — POST /groups/{id}/owners/$ref
Get-YammerGroupInfo → Get-EngageGroupInfo — communities list + group member count + group owners (dropped LastMessageAt, no Graph equivalent)
⚠️ Breaking change: legacy numeric Yammer group IDs don't map to Graph community/group IDs — existing input CSVs need regenerating (see each README).

Renamed only (endpoints unchanged, still current/documented)
Export-YammerNetworkData → Export-EngageNetworkData — removed -IncludeExternalNetworks (not supported for native-mode networks); added runtime warning for -IncludeFiles All
Export-YammerFiles → Export-EngageFiles — added native-mode limitation warning
Both reference the confirmed March 13, 2026 admin center retirement (MC1230453).

Rewritten (scope change)
Delete-YammerUsers → Delete-EngageUsers — previously deleted the user's Yammer account entirely via the legacy API; no Graph equivalent exists for that. Rewritten to remove a user from a specific M365 group/community (DELETE /groups/{id}/members/{id}/$ref). CSV format changed from UserID to GroupID + Email.
No migration possible
Delete-AllCommunityPosts — Graph's communities API has no endpoint for reading/deleting message content. Left on the legacy Yammer REST API; documented as a permanent dependency until Microsoft ships one.
All scripts validated via PowerShell AST parsing. Delete-EngageGroups and Add-EngageGroupAdmins were also live-tested end-to-end against a test tenant.

@DeanCron
DeanCron merged commit 26384c4 into microsoft:master Jul 22, 2026
1 of 2 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

🛰️ PR Sweeper report

Risk: 🟢 LOW · Security gate: ✅ passing · Files: 1

🔒 Automated guardrails (authoritative)

Category Location Finding
ℹ️ scope Change(s) outside known content roots: resource-stats.json.

🤖 Dual-model AI review (advisory)

Deep-reasoning revieweropenai/o3 · verdict: approve · risk: low

Change is limited to updating timestamps, adding view/upvote metrics, and linking to an existing public GitHub discussion. No executable code, secrets, or privacy concerns detected.

Quality notes:

  • resource-stats.json — Only metadata values updated/extended; structure remains valid JSON.

✅ Suggested next steps

  • Ensure this generated file is intended to be committed (some repos exclude analytics artifacts).
  • If this metrics file is auto-generated, consider adding automation or documentation describing its update cadence.

The automated guardrails are authoritative and gate the security status. The AI review is advisory and never auto-merges. Thanks for contributing to FastTrack! 🛩️

@github-actions github-actions Bot added sweeper:ai-reviewed PR Sweeper: dual-model AI review attached sweeper:risk-low PR Sweeper: low risk sweeper:scope-review PR Sweeper: scope/sensitive-path review labels Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sweeper:ai-reviewed PR Sweeper: dual-model AI review attached sweeper:risk-low PR Sweeper: low risk sweeper:scope-review PR Sweeper: scope/sensitive-path review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant