Skip to content

Commit 0fdf4e6

Browse files
live1206Copilot
andcommitted
Continue ContainerApps MPG migration
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 97a4f5f commit 0fdf4e6

730 files changed

Lines changed: 1892 additions & 8824 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.

.github/CODEOWNERS

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -290,22 +290,22 @@
290290
###########
291291
# Eng Sys
292292
###########
293-
/.gitattributes @mikeharder @benbp
294-
/.gitignore @mikeharder @benbp
295-
/.prettierrc.json @mikeharder @benbp
296-
/package-lock.json @mikeharder @benbp
297-
/package.json @mikeharder @benbp
298-
/tsconfig.json @mikeharder @benbp
299-
/.azure-pipelines/ @mikeharder @benbp
300-
/.github/ @mikeharder @benbp
301-
/.vscode/ @mikeharder @benbp
302-
/dev/ @mikeharder @benbp
303-
/eng/ @mikeharder @benbp
293+
/.gitattributes @weshaggard @mikeharder
294+
/.gitignore @weshaggard @mikeharder
295+
/.prettierrc.json @weshaggard @mikeharder
296+
/package-lock.json @weshaggard @mikeharder
297+
/package.json @weshaggard @mikeharder
298+
/tsconfig.json @weshaggard @mikeharder
299+
/.azure-pipelines/ @weshaggard @mikeharder @benbp
300+
/.github/ @weshaggard @mikeharder @benbp
301+
/.vscode/ @weshaggard @mikeharder @benbp
302+
/dev/ @weshaggard @mikeharder @benbp
303+
/eng/ @weshaggard @mikeharder @benbp
304304
/eng/common/ @Azure/azure-sdk-eng
305305
/eng/tools/typespec-migration-validation @pshao25 @live1206
306306
/eng/tools/typespec-validation/**/sdk-tspconfig-validation*.ts @marygao @raych1 @maririos
307-
/scripts/ @mikeharder @benbp
308-
/specification/suppressions.yaml @mikeharder @benbp @raych1 @marygao @maririos @qiaozha
307+
/scripts/ @weshaggard @mikeharder
308+
/specification/suppressions.yaml @weshaggard @mikeharder @benbp @raych1 @marygao @maririos @qiaozha
309309
/.github/CODEOWNERS @Azure/azure-sdk-eng
310310
/.github/skills @Azure/azure-sdk-eng @chunyu3 @lirenhe @ArthurMa1978 @haolingdong-msft
311311

.github/agents/arm-api-reviewer.agent.md

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -314,10 +314,10 @@ After presenting the review findings to the human reviewer for approval:
314314
The existing comment already covers the exact same rule violation on the same file and line. **Skip posting.** No action needed.
315315

316316
**Scenario B - Same finding, different line, comment was from _this agent or the same engineer running the agent_:**
317-
The code has shifted (e.g., lines were added/removed) and the existing comment now points to an outdated line, but the violation still exists at a new location. **Resolve the outdated comment** (to reduce noise) and **post a new comment at the correct line** with the updated finding. In the new comment, reference the resolved thread (e.g., "_(Updated from previous comment at \<url\> - line shifted due to code changes.)_"). To identify whether an existing comment was posted by this agent, check if its body contains the substring `posted-by: arm-api-reviewer-agent`. Comments with this substring are agent-posted; comments without it are from human reviewers (apply Scenario C instead).
317+
The code has shifted (e.g., lines were added/removed) and the existing comment now points to an outdated line, but the violation still exists at a new location. **Resolve the outdated comment** (to reduce noise) and **post a new comment at the correct line** with the updated finding. In the new comment, reference the resolved thread (e.g., "_(Updated from previous comment at \<url\> - line shifted due to code changes.)_"). To identify whether an existing comment was posted by this agent, check if its body contains the hidden marker `<!-- posted-by: arm-api-reviewer-agent -->`. Comments with this marker are agent-posted; comments without it are from human reviewers (apply Scenario C instead).
318318

319319
**Scenario C - Same finding, different line, comment was from a _different_ human reviewer:**
320-
Another ARM reviewer (not this agent) posted the comment at the old line -- i.e., the comment body does **not** contain the substring `posted-by: arm-api-reviewer-agent`. Do **not** resolve their comment - it is their review thread and they may be tracking the conversation. Do **not** post a duplicate comment. Instead, **add a reply** to the existing thread noting the line shift: e.g., "_The code referenced by this comment has moved. The same violation now appears at `<file>` - line <N>. The issue is still unresolved._" This helps the author and reviewer find the right code without creating duplicate threads.
320+
Another ARM reviewer (not this agent) posted the comment at the old line -- i.e., the comment body does **not** contain `<!-- posted-by: arm-api-reviewer-agent -->`. Do **not** resolve their comment - it is their review thread and they may be tracking the conversation. Do **not** post a duplicate comment. Instead, **add a reply** to the existing thread noting the line shift: e.g., "_The code referenced by this comment has moved. The same violation now appears at `<file>` - line <N>. The issue is still unresolved._" This helps the author and reviewer find the right code without creating duplicate threads.
321321

322322
**Scenario D - No new findings beyond what existing comments already cover:**
323323
If every finding from the current review is already covered by an existing comment (same file, same or nearby line, same rule), **do not post any new comments**. Report to the human reviewer: "_All findings from this review are already covered by existing comments on the PR. No new comments are needed - the existing threads already highlight the required changes._" List the existing comment threads that match, **including the comment URL** for each so the reviewer can click through and verify.
@@ -333,22 +333,7 @@ After presenting the review findings to the human reviewer for approval:
333333
5. Every posted comment **MUST** clearly tag the issue as `[NEW]` or `[EXISTING]` with an explanation of the classification (e.g., "This issue also exists in `2025-12-01-preview` at the same JSON path" or "Introduced in this PR - this property did not exist in the previous version").
334334
6. For `[NEW]` issues, include the severity level: `🔴 Blocking`, `🟡 Warning`, or `💡 Suggestion`.
335335
7. Use the format: ``**[NEW] 🔴 Blocking** **[<Rule ID>]** `<file-path>` - line <N> - <issue description>`` or ``**[EXISTING]** **[<Rule ID>]** `<file-path>` - line <N> - <issue description>`` followed by the classification reasoning and suggested fix.
336-
8. Every posted comment **MUST** end with a hidden HTML telemetry marker as the very last line of the comment body. The marker format is:
337-
338-
```html
339-
<!-- posted-by: arm-api-reviewer-agent | rule: <RULE-ID> | severity: blocking|warning|suggestion | classification: new|existing -->
340-
```
341-
342-
- **`rule`**: The rule ID of the finding (e.g., `RPC-Put-V1-01`, `OAPI027`, `SEC-SECRET-DETECT`). Use `summary` for summary comments that don't flag a single rule.
343-
- **`severity`**: One of `blocking`, `warning`, or `suggestion`.
344-
- **`classification`**: One of `new` (introduced in this PR) or `existing` (pre-existing technical debt).
345-
346-
Example: `<!-- posted-by: arm-api-reviewer-agent | rule: RPC-Put-V1-11 | severity: blocking | classification: new -->`
347-
348-
This marker is invisible in rendered markdown but enables querying agent-posted comments via the GitHub API, computing telemetry (comments per day, top rule violations, new-vs-existing ratio), and distinguishing agent comments from human comments during reconciliation. Do not omit this marker. All fields after `posted-by` are required.
349-
350-
**Backward compatibility:** To detect whether an existing comment was posted by this agent (e.g., during reconciliation in Scenarios B and C), check if the comment body contains the substring `posted-by: arm-api-reviewer-agent`. This matches both the old simple marker and the new extended marker.
351-
336+
8. Every posted comment **MUST** end with the hidden HTML marker `<!-- posted-by: arm-api-reviewer-agent -->` as the very last line of the comment body. This marker is invisible in rendered markdown but enables querying agent-posted comments via the GitHub API and distinguishing them from manually posted comments during reconciliation. Do not omit this marker.
352337
9. Prioritize posting **New** issues first, as these are the PR author's direct responsibility.
353338
10. **Report a reconciliation summary** to the human reviewer before posting:
354339
- Findings to **post as new comments** (with line numbers)

.github/arm-leases/monitor/Microsoft.Monitor/TraceAssociations/lease.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.

.github/copilot-review-instructions.md

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -173,20 +173,12 @@ PUT operation is missing `201` response for resource creation. ARM PUT must retu
173173
**Fix:** Add a `201` response with the same schema as the `200` response.
174174
```
175175

176-
Every comment **MUST** end with a hidden HTML telemetry marker as the very last line. The format is:
176+
Every comment **MUST** end with the hidden HTML marker:
177177

178178
```html
179-
<!-- posted-by: arm-api-reviewer-agent | rule: <RULE-ID> | severity: blocking|warning|suggestion | classification: new|existing -->
179+
<!-- posted-by: arm-api-reviewer-agent -->
180180
```
181181

182-
- **`rule`**: The rule ID of the finding (e.g., `RPC-Put-V1-11`, `OAPI027`). Use `summary` for summary comments.
183-
- **`severity`**: One of `blocking`, `warning`, or `suggestion`.
184-
- **`classification`**: One of `new` or `existing`.
185-
186-
Example: `<!-- posted-by: arm-api-reviewer-agent | rule: RPC-Put-V1-11 | severity: blocking | classification: new -->`
187-
188-
To detect agent-posted comments during reconciliation, check for the substring `posted-by: arm-api-reviewer-agent` (matches both old and new marker formats).
189-
190182
---
191183

192184
## Severity Calibration
@@ -254,7 +246,7 @@ When reviewing a PR that already has comments from a prior review:
254246
The existing comment already covers this violation. **Skip posting.**
255247

256248
**Scenario B -- Same finding, line shifted, agent-posted comment:**
257-
The existing comment body contains the substring `posted-by: arm-api-reviewer-agent`.
249+
The existing comment has the marker `<!-- posted-by: arm-api-reviewer-agent -->`.
258250
Resolve the outdated comment and post a new one at the correct line.
259251

260252
**Scenario C -- Same finding, line shifted, human-posted comment:**

.github/workflows/arm-lease-validation.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ permissions:
2222
jobs:
2323
arm-lease-validation:
2424
name: ARM Lease Validation
25-
runs-on: ubuntu-24.04
25+
runs-on: ubuntu-slim
2626

2727
steps:
2828
- name: Checkout repository

.github/workflows/arm-modeling-review.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
if: |
3131
(github.event.action != 'labeled' && github.event.action != 'unlabeled') ||
3232
github.event.label.name == 'ARMModelingSignedOff'
33-
runs-on: ubuntu-24.04
33+
runs-on: ubuntu-slim
3434
steps:
3535
- name: Checkout repository
3636
uses: actions/checkout@v6

.github/workflows/protected-files.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
protected-files:
2626
name: Protected Files
2727

28-
runs-on: ubuntu-24.04
28+
runs-on: ubuntu-slim
2929

3030
steps:
3131
# Since check is required, the job must pass instead of being skipped

.github/workflows/typespec-requirement.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
TypeSpec-Requirement:
1818
name: TypeSpec Requirement
1919

20-
runs-on: ubuntu-24.04
20+
runs-on: ubuntu-slim
2121

2222
steps:
2323
- uses: actions/checkout@v6

eng/scripts/TypeSpec-Requirement.ps1

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -141,36 +141,36 @@ else {
141141
}
142142
}
143143

144-
# Extract path to API version (between "specification" and swagger filename)
145-
if ($file -match "specification/(?<apiVersion>[^/]+/($SpecType).*?/(preview|stable)/[^/]+)/[^/]+\.json$") {
146-
$apiVersion = $Matches["apiVersion"]
144+
# Extract path between "specification/" and "/(preview|stable)"
145+
if ($file -match "specification/(?<servicePath>[^/]+/($SpecType).*?)/(preview|stable)/[^/]+/[^/]+\.json$") {
146+
$servicePath = $Matches["servicePath"]
147147
}
148148
else {
149149
LogError "Path to OpenAPI did not match expected regex. Unable to extract service path."
150150
LogJobFailure
151151
exit 1
152152
}
153153

154-
$urlToApiVersion = "https://github.com/Azure/azure-rest-api-specs/tree/main/specification/$apiVersion"
154+
$urlToStableFolder = "https://github.com/Azure/azure-rest-api-specs/tree/main/specification/$servicePath/stable"
155155

156156
# Avoid conflict with pipeline secret
157-
$logUrlToApiVersion = $urlToApiVersion -replace '^https://', ''
157+
$logUrlToStableFolder = $urlToStableFolder -replace '^https://', ''
158158

159-
LogInfo " Checking $logUrlToApiVersion"
159+
LogInfo " Checking $logUrlToStableFolder"
160160

161-
$responseStatus = $responseCache[$urlToApiVersion];
161+
$responseStatus = $responseCache[$urlToStableFolder];
162162
if ($null -ne $responseStatus) {
163163
LogInfo " Found in cache"
164164
}
165165
else {
166166
LogInfo " Not found in cache, making web request"
167167
try {
168-
$response = Invoke-WebRequest -Uri $urlToApiVersion -Method Head -SkipHttpErrorCheck
168+
$response = Invoke-WebRequest -Uri $urlToStableFolder -Method Head -SkipHttpErrorCheck
169169
$responseStatus = $response.StatusCode
170-
$responseCache[$urlToApiVersion] = $responseStatus
170+
$responseCache[$urlToStableFolder] = $responseStatus
171171
}
172172
catch {
173-
LogError "Exception making web request to ${logUrlToApiVersion}: $_"
173+
LogError "Exception making web request to ${logUrlToStableFolder}: $_"
174174
LogJobFailure
175175
exit 1
176176
}
@@ -179,7 +179,7 @@ else {
179179
LogInfo " Status: $responseStatus"
180180

181181
if ($responseStatus -eq 200) {
182-
LogInfo " Branch 'main' contains path '$apiVersion', so API version already exists and is not required to use TypeSpec"
182+
LogInfo " Branch 'main' contains path '$servicePath/stable', so spec already exists and is not required to use TypeSpec"
183183

184184
$warning = "WARNING: This PR uses OpenAPI / Swagger. All Azure services are required to convert to TypeSpec by March 30, 2026. PRs not using TypeSpec will be blocked after that date. Starting July 1, 2026, all SDKs will be generated from TypeSpec as the autorest toolchain is being retired. Please reach out to tspconversion@service.microsoft.com with any questions and see http://aka.ms/azsdk/typespec for more details on TypeSpec."
185185
LogWarningForFile $file $warning
@@ -190,11 +190,11 @@ else {
190190
}
191191
}
192192
elseif ($responseStatus -eq 404) {
193-
LogInfo " Branch 'main' does not contain path '$apiVersion', so API version is new and must use TypeSpec"
193+
LogInfo " Branch 'main' does not contain path '$servicePath/stable', so spec is new and must use TypeSpec"
194194
$pathsWithErrors += $file
195195
}
196196
else {
197-
LogError "Unexpected response from ${logUrlToApiVersion}: ${responseStatus}"
197+
LogError "Unexpected response from ${logUrlToStableFolder}: ${responseStatus}"
198198
LogJobFailure
199199
exit 1
200200
}
@@ -208,7 +208,7 @@ if ($pathsWithErrors.Count -gt 0) {
208208
LogJobFailure
209209

210210
foreach ($path in $pathsWithErrors) {
211-
LogErrorForFile $path "OpenAPI was not generated from TypeSpec, and API version appears to be new"
211+
LogErrorForFile $path "OpenAPI was not generated from TypeSpec, and spec appears to be new"
212212
}
213213
exit 1
214214
}

eng/tools/typespec-requirement/test/specification/hand-written/data-plane/HandWritten.Analytics/stable/2026-01-01/hand-written.json

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)