Skip to content

Commit eb127ea

Browse files
committed
2 parents a52c3c5 + 79e6b3c commit eb127ea

370 files changed

Lines changed: 5440 additions & 1138 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gdn/.gdnbaselines

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,41 @@
1616
"b3d46ea406a66acd0fa8b1130ec9be5b501ad4a933d98ce70193c68771b6e7be": {
1717
"signature": "b3d46ea406a66acd0fa8b1130ec9be5b501ad4a933d98ce70193c68771b6e7be",
1818
"alternativeSignatures": [
19-
"79e125fb7927450b0ebb02d6b3ddb03d7a6a971e21dfdc1c246ba8fd39f0969e"
19+
"79e125fb7927450b0ebb02d6b3ddb03d7a6a971e21dfdc1c246ba8fd39f0969e",
20+
"11e53a6e53ef601debd4d1a4dc1ca3d451cd0c96df1892e7f5685b8c6d01769b"
2021
],
21-
"target": "update-permissions-reference.ps1",
22+
"target": "scripts/update-permissions-reference.ps1",
2223
"line": 170,
2324
"memberOf": [
2425
"default"
2526
],
2627
"tool": "psscriptanalyzer",
2728
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
2829
"createdDate": "2024-08-26 12:06:54Z"
30+
},
31+
"11e53a6e53ef601debd4d1a4dc1ca3d451cd0c96df1892e7f5685b8c6d01769b": {
32+
"signature": "11e53a6e53ef601debd4d1a4dc1ca3d451cd0c96df1892e7f5685b8c6d01769b",
33+
"alternativeSignatures": [],
34+
"target": "scripts/update-permissions-reference.ps1",
35+
"line": 177,
36+
"memberOf": [
37+
"default"
38+
],
39+
"tool": "psscriptanalyzer",
40+
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
41+
"createdDate": "2026-02-24 12:06:54Z"
42+
},
43+
"261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96": {
44+
"signature": "261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96",
45+
"alternativeSignatures": [],
46+
"target": "update-permissions-reference-fic.ps1",
47+
"line": 179,
48+
"memberOf": [
49+
"default"
50+
],
51+
"tool": "psscriptanalyzer",
52+
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
53+
"createdDate": "2026-02-24 12:06:54Z"
2954
}
3055
}
3156
}

.gdn/.gdnsuppress

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,41 @@
1616
"b3d46ea406a66acd0fa8b1130ec9be5b501ad4a933d98ce70193c68771b6e7be": {
1717
"signature": "b3d46ea406a66acd0fa8b1130ec9be5b501ad4a933d98ce70193c68771b6e7be",
1818
"alternativeSignatures": [
19-
"79e125fb7927450b0ebb02d6b3ddb03d7a6a971e21dfdc1c246ba8fd39f0969e"
19+
"79e125fb7927450b0ebb02d6b3ddb03d7a6a971e21dfdc1c246ba8fd39f0969e",
20+
"11e53a6e53ef601debd4d1a4dc1ca3d451cd0c96df1892e7f5685b8c6d01769b"
2021
],
21-
"target": "update-permissions-reference.ps1",
22+
"target": "scripts/update-permissions-reference.ps1",
2223
"line": 170,
2324
"memberOf": [
2425
"default"
2526
],
2627
"tool": "psscriptanalyzer",
2728
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
2829
"createdDate": "2024-08-26 12:06:54Z"
30+
},
31+
"11e53a6e53ef601debd4d1a4dc1ca3d451cd0c96df1892e7f5685b8c6d01769b": {
32+
"signature": "11e53a6e53ef601debd4d1a4dc1ca3d451cd0c96df1892e7f5685b8c6d01769b",
33+
"alternativeSignatures": [],
34+
"target": "scripts/update-permissions-reference.ps1",
35+
"line": 177,
36+
"memberOf": [
37+
"default"
38+
],
39+
"tool": "psscriptanalyzer",
40+
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
41+
"createdDate": "2026-02-24 12:06:54Z"
42+
},
43+
"261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96": {
44+
"signature": "261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96",
45+
"alternativeSignatures": [],
46+
"target": "update-permissions-reference-fic.ps1",
47+
"line": 179,
48+
"memberOf": [
49+
"default"
50+
],
51+
"tool": "psscriptanalyzer",
52+
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
53+
"createdDate": "2026-02-24 12:06:54Z"
2954
}
3055
}
3156
}

.github/prompts/author-api-docs.prompt.md

Lines changed: 212 additions & 80 deletions
Large diffs are not rendered by default.

.github/prompts/review-api-docs.prompt.md

Lines changed: 86 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Ask the reviewer which documentation changes need to be reviewed:
3737
While not required, providing these files significantly improves review quality and completeness:
3838

3939
**Optional Context Files (provide if available):**
40-
- **Summary of API changes in documentation-plan.md:** A description of what documentation changes were expected based on the schema changes (identifies files changed, methods documented, resources added/updated, namespace information)
40+
- **Documentation Plan in documentation-plan.md:** A description of what documentation changes were expected based on the schema changes (identifies files changed, methods documented, resources added/updated, namespace information)
4141
- **API.md file:** The API specification file describing capabilities in detail
4242

4343
**Why these files help:**
@@ -49,6 +49,62 @@ While not required, providing these files significantly improves review quality
4949

5050
---
5151

52+
## Common Process: Validation
53+
54+
As part of the review process, validate that automated validation scripts pass. These scripts ensure compliance with required standards and prevent common errors.
55+
56+
### Validate changelog JSON files
57+
58+
After reviewing changelog changes, run the changelog validation script:
59+
60+
```powershell
61+
.\scripts\validate-changelog-json.ps1
62+
```
63+
64+
**Purpose:**
65+
- Validates all changelog files in the `changelog/` folder against the schema
66+
- Checks schema compliance, required properties, and formatting
67+
- Ensures proper JSON structure and required metadata
68+
69+
**What it validates:**
70+
- Complete record structure (ChangeList array + Id, Cloud, Version, CreatedDateTime, WorkloadArea, SubArea)
71+
- GUID consistency across ChangeList items and record-level Id
72+
- Cloud value is "prd" (or "Prod" - case variations allowed)
73+
- Version value is "v1.0" or "beta"
74+
- CreatedDateTime in ISO 8601/RFC 3339 format with fractional seconds and Z suffix
75+
- WorkloadArea and SubArea match CDK taxonomy
76+
77+
**Must pass before:** Approving PR with changelog updates
78+
79+
### Validate temp-docstubs cleanup (if applicable)
80+
81+
If reviewing changes that involved the temp-docstubs folder, verify cleanup:
82+
83+
```powershell
84+
.\scripts\validate-temp-docstubs.ps1
85+
```
86+
87+
**Purpose:**
88+
- Verifies that only `temp-docstubs-instructions.md` remains in temp-docstubs folder
89+
- Prevents accidental commit of temporary input files (autogenerated doc stubs, API.md files, changelog files)
90+
91+
**Must pass before:** Approving PR that touched temp-docstubs folder
92+
93+
### When validation fails
94+
95+
**If validation scripts report errors:**
96+
1. Review error messages to identify specific issues
97+
2. Flag the issues in your review report under "Critical Issues (Must Fix)"
98+
3. Provide guidance on correcting the problems
99+
4. Request author to re-run validation after fixes
100+
5. Do not approve until all validation checks pass
101+
102+
**Common validation failures:**
103+
- Changelog: Missing required properties, incorrect date format, malformed JSON
104+
- temp-docstubs: Temporary files not removed before commit
105+
106+
---
107+
52108
## Review Guidelines
53109

54110
The review process applies guidelines from three authoritative sources. You should check all sets of guidelines without duplication:
@@ -145,22 +201,24 @@ For files in `api-reference/v1.0/resources/` and `api-reference/beta/resources/`
145201

146202
### Changelog Files Review
147203

148-
For files in `changelog/`, verify structure matches [templates/changelog-patterns.md](templates/changelog-patterns.md).
204+
For files in `changelog/`, verify structure matches [templates/changelog-patterns.md](templates/changelog-patterns.md) and run validation (see [Common Process: Validation](#common-process-validation)).
149205

150206
**Required Elements:**
151207
- [ ] Complete changelog record structure (ChangeList array + Id, Cloud, Version, CreatedDateTime, WorkloadArea, SubArea)
152208
- [ ] Same GUID in all ChangeList items and record-level Id
153-
- [ ] Cloud value is "prd"
209+
- [ ] Cloud value is "prd" (or "Prod")
154210
- [ ] Version value is "v1.0" or "beta"
155211
- [ ] CreatedDateTime in ISO 8601/RFC 3339 format with fractional seconds and Z suffix (e.g., "2025-11-17T17:38:10.4694969Z")
156212
- [ ] Description links use full URLs with en-us locale
157213
- [ ] WorkloadArea and SubArea match CDK taxonomy (https://aka.ms/msgraphcdk)
214+
- [ ] Validation script passes (see [Common Process: Validation](#common-process-validation))
158215

159216
**Common Issues:**
160217
- [ ] Multiple unrelated API elements in single ChangeList item
161218
- [ ] Missing or vague descriptions
162219
- [ ] Malformed links or missing en-us locale
163220
- [ ] Incomplete record structure (missing metadata)
221+
- [ ] Validation script failures
164222

165223
### Version-Specific Validation
166224

@@ -205,7 +263,7 @@ Verify compliance with formatting rules detailed in [author-api-docs.prompt.md -
205263

206264
## Optional Context-Enhanced Review
207265

208-
If the reviewer provided context files (Summary of API changes in documentation-plan.md or API.md):
266+
If the reviewer provided context files (Documentation Plan in documentation-plan.md or API.md):
209267

210268
### Validate Against Summary of API Changes
211269

@@ -252,7 +310,16 @@ Group files by type:
252310

253311
For each file, apply the appropriate review checklist from above.
254312

255-
### Step 4: Report Findings
313+
### Step 4: Run Validation Scripts
314+
315+
Run automated validation scripts to ensure compliance (see [Common Process: Validation](#common-process-validation)):
316+
317+
1. **If changelog files were modified:** Run `.\scripts\validate-changelog-json.ps1`
318+
2. **If temp-docstubs folder is present in the branch:** Run `.\scripts\validate-temp-docstubs.ps1`
319+
320+
Include validation results in your review report. Flag any validation failures as critical issues.
321+
322+
### Step 5: Report Findings
256323

257324
Provide a structured review report:
258325

@@ -275,7 +342,7 @@ For each file with issues, list:
275342
- Suggested fix (when applicable)
276343
- Line numbers or section references
277344

278-
### Step 5: Optional - Suggest Fixes
345+
### Step 6: Optional - Suggest Fixes
279346

280347
If requested, provide specific edits to fix identified issues.
281348

@@ -304,6 +371,10 @@ If requested, provide specific edits to fix identified issues.
304371
**Files with Issues:** 3
305372
**Files Approved:** 5
306373

374+
**Validation Results:**
375+
- ✓ Changelog validation passed (.\scripts\validate-changelog-json.ps1)
376+
- ✓ temp-docstubs validation passed (.\scripts\validate-temp-docstubs.ps1)
377+
307378
---
308379

309380
## Critical Issues (Must Fix)
@@ -345,6 +416,8 @@ If requested, provide specific edits to fix identified issues.
345416
- Current: "Added property"
346417
- Suggestion: "Added the **newProperty** property to enable..."
347418

419+
### API overview updates
420+
- If an API Overview topic covers the same APIs, consider updating it to reflect new capabilities and changes for better discoverability and context for users.
348421
---
349422

350423
## Files Approved
@@ -362,11 +435,13 @@ If requested, provide specific edits to fix identified issues.
362435

363436
1. **Start with file classification** - Understanding file types helps apply the right rules
364437
2. **Check metadata first** - Validate namespace, doc_type, and version before content review
365-
3. **Use find/search** - Look for TODO placeholders across all files
366-
4. **Validate links** - Ensure all referenced resources and types exist and are correctly linked
367-
5. **Check consistency** - Resource names, namespaces, and terminology should be consistent across all files
368-
6. **Compare with context** - If Summary of API changes (documentation-plan.md file) or API.md provided, validate against them first
369-
7. **Flag autogeneration issues** - If doc stubs appear to have over-generated content, mention this
438+
3. **Run validation scripts early** - Check changelog and temp-docstubs validation before detailed review
439+
4. **Use find/search** - Look for TODO placeholders across all files
440+
5. **Validate links** - Ensure all referenced resources and types exist and are correctly linked
441+
6. **Check consistency** - Resource names, namespaces, and terminology should be consistent across all files
442+
7. **Compare with context** - If Summary of API changes (documentation-plan.md file) or API.md provided, validate against them first
443+
8. **Flag autogeneration issues** - If doc stubs appear to have over-generated content, mention this
444+
9. **Include validation results** - Always report validation script results in your review summary
370445

371446
---
372447

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
> Required for API changes:
33
> - [] Link to API.md file: *ADD LINK HERE*
44
> - [] Link to **PR** for public-facing schema changes (schema-Prod-beta/v1.0.csdl): *ADD LINK HERE*
5+
> - [] OPTIONAL: Attach the documentation plan generated for AI-assisted docs authoring and validation to help speed up content review.
56
67
---
78
Add other supporting information, such as a description of the PR changes:

.github/workflows/changelog-validation.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v4
13-
- name: Validate JSON
14-
uses: docker://orrosenblatt/validate-json-action:latest
15-
env:
16-
INPUT_SCHEMA: /changelog/Changelog.Schema.json
17-
INPUT_JSONS: /changelog/Manual.NonWorkloadChanges.json,/changelog/Microsoft.AAD.Reporting.json,/changelog/Microsoft.Analytics.json,/changelog/Microsoft.BitLocker.json,/changelog/Microsoft.CloudManagedDesktop.json,/changelog/Microsoft.Compliance.Ediscovery.json,/changelog/Microsoft.DirectoryServices.json,/changelog/Microsoft.EducationAssignment.json,/changelog/Microsoft.Excel.json,/changelog/Microsoft.Exchange.json,/changelog/Microsoft.FileServices.json,/changelog/Microsoft.HybridAuthentication.json,/changelog/Microsoft.IdentityGovernance.AccessReviews.json,/changelog/Microsoft.IdentityProtectionServices.json,/changelog/Microsoft.Intune.json,/changelog/Microsoft.MicrosoftSearch.json,/changelog/Microsoft.NAV.json,/changelog/Microsoft.O365Reporting.json,/changelog/Microsoft.Office.Tasks.json,/changelog/Microsoft.OneNote.json,/changelog/Microsoft.PrintService.json,/changelog/Microsoft.Search.json,/changelog/Microsoft.SharePoint.json,/changelog/Microsoft.Skype.Calling.json,/changelog/Microsoft.SubscriptionServices.json,/changelog/Microsoft.Teams.Core.json,/changelog/Microsoft.Teams.GraphSvc.json,/changelog/Microsoft.ThreatAssessment.json,/changelog/Microsoft.Todo.json,/changelog/Microsoft.People.json
18-
- name: Validate Schema with Script
13+
- name: Validate Changelog JSONs with Schema
1914
run: |
20-
./validate-changelog-json.ps1
15+
./scripts/validate-changelog-json.ps1
2116
shell: pwsh
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
name: Update permissions reference file (FIC)
2+
3+
on:
4+
schedule:
5+
- cron: 0 6 * * 1 # Runs every Monday at 6 AM UTC
6+
workflow_dispatch: # Allows manual triggering of the workflow
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
id-token: write # Required for federated identity credentials
12+
13+
jobs:
14+
update-permissions-reference:
15+
name: Update permissions reference (FIC)
16+
runs-on: windows-latest
17+
18+
steps:
19+
- name: Set up Git to handle long paths
20+
run: git config --system core.longpaths true
21+
22+
- name: Checkout microsoft-graph-docs
23+
uses: actions/checkout@v4.1.3
24+
with:
25+
path: docs
26+
27+
- name: Azure Login using Federated Identity
28+
uses: azure/login@v2
29+
with:
30+
client-id: ${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_CLIENT_ID }}
31+
tenant-id: ${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_TENANT_ID }}
32+
allow-no-subscriptions: true
33+
34+
- name: Run PowerShell script to update permissions
35+
shell: pwsh
36+
run: |
37+
$ClientId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_CLIENT_ID }}"
38+
$TenantId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_AZURE_TENANT_ID }}"
39+
./docs/update-permissions-reference-fic.ps1 -ClientId $ClientId -TenantId $TenantId
40+
41+
- name: Get token
42+
id: get_token
43+
uses: microsoftgraph/get-app-token@v1.0.4
44+
with:
45+
application-id: ${{ secrets.APPLICATION_ID }}
46+
application-private-key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
47+
48+
- name: Commit updates from service principal
49+
working-directory: ./docs
50+
shell: pwsh
51+
env:
52+
GH_TOKEN: ${{ steps.get_token.outputs.app-token }}
53+
run: |
54+
$status = git status --porcelain
55+
if ($status -eq $null) {
56+
Write-Host "No changes to commit." -ForegroundColor Green
57+
}
58+
else {
59+
git config user.email "GraphTooling@service.microsoft.com"
60+
git config user.name "Microsoft Graph DevX Tooling"
61+
git add .
62+
git commit -m "Update permissions reference"
63+
}
64+
65+
- name: Run PowerShell script to correct errors in permissions descriptions
66+
shell: pwsh
67+
run: |
68+
./docs/correct-permissions-reference-errors.ps1
69+
70+
- name: Commit errors correction and open a pull request
71+
working-directory: ./docs
72+
shell: pwsh
73+
env:
74+
GH_TOKEN: ${{ steps.get_token.outputs.app-token }}
75+
run: |
76+
$status = git status --porcelain
77+
if ($status -eq $null) {
78+
Write-Host "No changes to commit." -ForegroundColor Green
79+
} else {
80+
$dateToday = Get-Date -Format 'yyyy-MM-dd'
81+
$branchName = "permissions-reference/$dateToday"
82+
$prTitle = "${dateToday}: Automated permissions reference update (FIC)"
83+
84+
git add .
85+
git commit -m "Correct errors in permissions reference"
86+
git checkout -b $branchName
87+
git push --set-upstream origin $branchName -f
88+
89+
gh pr create --base main --title $prTitle --body "Scheduled permissions reference update using Federated Identity Credentials" --reviewer "FaithOmbongi,msewaweru" --label "ready for content review"
90+
}

.github/workflows/permissions-reference-gen.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
$ClientId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_CLIENT_ID }}"
3030
$TenantId = "${{ secrets.GRAPHPERMISSIONSREFERENCE_TENANT_ID }}"
3131
$ClientSecret = "${{ secrets.GRAPHPERMISSIONSREFERENCE_CLIENT_SECRET }}"
32-
./docs/update-permissions-reference.ps1 -ClientId $ClientId -TenantId $TenantId -ClientSecret $ClientSecret
32+
./docs/scripts/update-permissions-reference.ps1 -ClientId $ClientId -TenantId $TenantId -ClientSecret $ClientSecret
3333
3434
- name: Get token
3535
id: get_token
@@ -58,7 +58,7 @@ jobs:
5858
- name: Run PowerShell script to correct errors in permissions descriptions
5959
shell: pwsh
6060
run: |
61-
./docs/correct-permissions-reference-errors.ps1
61+
./docs/scripts/correct-permissions-reference-errors.ps1
6262
6363
- name: Commit errors correction and open a pull request
6464
working-directory: ./docs

0 commit comments

Comments
 (0)