Skip to content

Commit df066c8

Browse files
author
Santosh Lokarapu
committed
Merged with main
2 parents 4fdbd14 + fede185 commit df066c8

18,378 files changed

Lines changed: 1952543 additions & 408048 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.

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
# Use unix line endings always, even on Windows
22
* text=auto eol=lf
3+
4+
.github/workflows/*.lock.yml linguist-generated=true merge=ours

.github/.prettierignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,19 @@ coverage
88
fixtures
99
specification
1010

11+
# auto-generated agentic workflow lock files
12+
workflows/*.lock.yml
13+
1114
# unmanaged files and folders
1215
**/*instructions.md
1316
chatmodes
1417
ISSUE_TEMPLATE
1518
policies
1619
prompts
1720
PULL_REQUEST_TEMPLATE
21+
22+
# lock files for agent workflows
23+
**/*.lock.yml
24+
25+
# synced from external repos
26+
workflows/post-apiview.yml

.github/CODEOWNERS

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
# PRLabel: %Cognitive Services
1616
/dev/cognitiveservices/data-plane/Language/ @assafi @rokulka @ChongTang @annatisch @heaths @deyaaeldeen @joseharriaga @minhanh-phan
1717

18+
# PRLabel: %Foundry %Client
19+
/specification/ai-foundry/data-plane/Foundry @johanste @trrwilson @glecaros @balapv @dargilco
20+
1821
# PRLabel: %Analysis Services
1922
/specification/analysisservices/ @taiwu
2023

@@ -62,7 +65,7 @@
6265
/specification/cdn/resource-manager/Microsoft.Cdn/EdgeActions/ @tundwed @anamikanupur
6366

6467
# PRLabel: %Cognitive Services
65-
/specification/cognitiveservices/ @rkuthala @MattGal
68+
/specification/cognitiveservices/ @rkuthala @fmabroukmsft
6669

6770
# PRLabel: %Cognitive Services - Form Recognizer
6871
/specification/cognitiveservices/data-plane/FormRecognizer/ @bojunehsu @nizi1127 @johanste
@@ -121,7 +124,7 @@
121124
/specification/deploymentmanager/ @netrock
122125

123126
# PRLabel: %Device Registry
124-
/specification/deviceregistry/ @rohankhandelwal
127+
/specification/deviceregistry/ @atastrophic @siongithub @mryanlo @hmmorales @chgennar @sofia-geislinger @mfsmoot
125128

126129
/specification/documentdb/ @dmakwana
127130

@@ -304,12 +307,13 @@
304307
/scripts/ @weshaggard @mikeharder
305308
/specification/suppressions.yaml @weshaggard @mikeharder @benbp @raych1 @marygao @maririos @qiaozha
306309
/.github/CODEOWNERS @Azure/azure-sdk-eng
310+
/.github/skills @Azure/azure-sdk-eng @chunyu3 @lirenhe @ArthurMa1978 @haolingdong-msft
307311

308312
## Copilot
309313
/.github/copilot-instructions.md @praveenkuttappan @maririos
310314
/.github/prompts/ @praveenkuttappan @maririos
311315
/.github/instructions/ @praveenkuttappan @maririos
312-
/.github/instructions/*arm*.md @raosuhas
316+
/.github/instructions/*arm*.md @praveenkuttappan @raosuhas @ravimeda @laxmankumar12
313317
/.github/chatmodes/ @praveenkuttappan @maririos
314318

315319
# Add owners for notifications for specific pipelines

.github/actionlint.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
self-hosted-runner:
2+
labels:
3+
- 1ES.Pool=azsdk-pool-github-runners
4+
- azsdk-pool-github-test
5+
- azsdk-pool-github-test-pr
6+
17
paths:
28
.github/workflows/*.lock.yml:
39
ignore:

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

Lines changed: 372 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
description: Expert in Azure API specifications who suggests hero scenarios — end-to-end developer workflows grounded in TypeSpec definitions that seed SDK samples, docs, and tests
3+
tools: ["read", "search", "bash"]
4+
---
5+
6+
# Hero Scenarios Agent
7+
8+
Before starting any work, read the detailed guidelines from
9+
`.github/prompts/hero-scenarios-guidelines.md` and follow them precisely.

.github/arm-leases/README.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# ARM Leases - Design Discussion Period
2+
3+
## Overview
4+
5+
This directory contains lease files that establish a time-limited design discussion period for Resource Providers (RPs) in the Azure REST API specifications repository. ARM leases provide a structured timeframe for Product Managers (PMs) and RP owners to collaborate on API design, review specifications.
6+
7+
**Important**: Only Product Managers (PMs) are authorized to add lease.yaml files to this directory. Lease files should be added after conducting office hours discussions with RP owners. The reviewer field should contain the GitHub alias of a PM who has reviewed and approved the lease.
8+
9+
## Code Owners and Contribution Guidelines
10+
11+
This directory is intended to be governed via CODEOWNERS to ensure proper governance:
12+
13+
- **Product Managers (PMs)**: Can add and modify `lease.yaml` files after office hours discussions with RP owners
14+
- **Engineers**: Can enhance and improve the validation workflow and related automation
15+
- **Approvals**: All changes should be reviewed and approved by designated code owners (PMs and engineers listed in CODEOWNERS, when configured)
16+
17+
**Adding New PMs**: To grant a new PM access to add lease files, they should be added to the CODEOWNERS file for the `.github/arm-leases/` directory path when CODEOWNERS protection is configured.
18+
19+
## Lease File Structure
20+
21+
Each lease must be placed in the following directory structure:
22+
23+
```
24+
.github/arm-leases/<orgName>/<rpNamespace>/[<serviceName> (optional)]/lease.yaml
25+
```
26+
27+
### Path Requirements:
28+
29+
- `<orgName>`: lowercase alphanumeric only (e.g., testservice, widgetservice)
30+
- `<rpNamespace>`: alphanumeric with dots, case-sensitive (e.g., Microsoft.TestRP, Azure.Widget)
31+
- `<serviceName>`: (optional) customer-facing service name within an RP (e.g., DiskRP, ComputeRP). Must not start with "stable" or "preview"
32+
33+
### Lease File Format
34+
35+
The `lease.yaml` file must follow this format:
36+
37+
```yaml
38+
lease:
39+
resource-provider: Microsoft.TestRP # Must match the rpNamespace folder name
40+
startdate: 2026-01-07 # ISO 8601 format (YYYY-MM-DD)
41+
duration: P180D # ISO 8601 duration (max 180 days, e.g., P180D, P90D, P5M)
42+
reviewer: "@evanhissey" # GitHub alias of the approving reviewer
43+
```
44+
45+
### Copy-Paste Template
46+
47+
Create a file at `.github/arm-leases/<orgName>/<rpNamespace>/<serviceName>(optional)/lease.yaml` with the following content (replace the placeholder values):
48+
49+
```yaml
50+
lease:
51+
resource-provider: <rpNamespace>
52+
startdate: <YYYY-MM-DD>
53+
duration: P180D
54+
reviewer: "@your-github-alias"
55+
```
56+
57+
## Validation Rules
58+
59+
All lease files are automatically validated with the following requirements:
60+
61+
### 1. File Location
62+
63+
- Only `lease.yaml` files are allowed in the `.github/arm-leases/` directory
64+
- Must follow the folder structure: `<orgName>/<rpNamespace>/[<serviceName> (optional)]/lease.yaml`
65+
66+
### 2. Resource Provider Name
67+
68+
- Must match the `<rpNamespace>` folder name exactly
69+
- Example: If folder is `Microsoft.TestRP`, then `resource-provider` must be `Microsoft.TestRP`
70+
71+
### 3. Start Date
72+
73+
- Must be in ISO 8601 format: `YYYY-MM-DD`
74+
- Must be a valid calendar date
75+
76+
### 4. Duration
77+
78+
- Required field that cannot be empty
79+
- Must be a valid ISO 8601 duration (e.g., `P180D`, `P90D`, `P5M`)
80+
- **Maximum duration is 180 days**
81+
- Supports day-based (`P90D`), month-based (`P5M`), and combined formats
82+
83+
### 5. Reviewer
84+
85+
- Required field that cannot be empty
86+
- Must be a GitHub alias starting with `@` (e.g., `@githubUsername`)
87+
88+
## Troubleshooting
89+
90+
If your PR check **"ARM Lease Validation"** is failing, review the error messages in the check output and fix the issues in your `lease.yaml` file. Common causes include:
91+
92+
- **Invalid folder structure**: Ensure the path follows `<orgName>/<rpNamespace>/[<serviceName>]/lease.yaml` with lowercase org name
93+
- **Resource provider mismatch**: The `resource-provider` value must match the `<rpNamespace>` folder name exactly
94+
- **Past start date**: The `startdate` must be a valid date in `YYYY-MM-DD` format
95+
- **Invalid duration**: Use a valid ISO 8601 duration that does not exceed 180 days (e.g., `P180D`, `P90D`, `P5M`)
96+
- **Missing or empty fields**: All fields (`resource-provider`, `startdate`, `duration`, `reviewer`) are required
97+
- **Disallowed files**: Only `lease.yaml` and `README.md` files are permitted in `.github/arm-leases/`
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
lease:
2+
resource-provider: Microsoft.Widget
3+
startdate: "2026-04-15"
4+
duration: P180D
5+
reviewer: "@pshao25"

.github/aw/actions-lock.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"entries": {
3+
"actions/checkout@v6.0.2": {
4+
"repo": "actions/checkout",
5+
"version": "v6.0.2",
6+
"sha": "de0fac2e4500dabe0009e67214ff5f5447ce83dd"
7+
},
8+
"actions/github-script@v7": {
9+
"repo": "actions/github-script",
10+
"version": "v7",
11+
"sha": "f28e40c7f34bde8b3046d885e986cb6290c5673b"
12+
},
13+
"actions/github-script@v8": {
14+
"repo": "actions/github-script",
15+
"version": "v8",
16+
"sha": "ed597411d8f924073f98dfc5c65a23a2325f34cd"
17+
},
18+
"actions/github-script@v9": {
19+
"repo": "actions/github-script",
20+
"version": "v9",
21+
"sha": "373c709c69115d41ff229c7e5df9f8788daa9553"
22+
},
23+
"actions/github-script@v9.0.0": {
24+
"repo": "actions/github-script",
25+
"version": "v9.0.0",
26+
"sha": "d746ffe35508b1917358783b479e04febd2b8f71"
27+
},
28+
"github/gh-aw-actions/setup@v0.68.1": {
29+
"repo": "github/gh-aw-actions/setup",
30+
"version": "v0.68.1",
31+
"sha": "2fe53acc038ba01c3bbdc767d4b25df31ca5bdfc"
32+
}
33+
}
34+
}

.github/copilot-instructions.md

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,42 @@
1+
<!-- This file provides repository-level instructions for GitHub Copilot Chat.
2+
It is automatically loaded when users interact with Copilot in this repo
3+
(VS Code, GitHub.com, etc.) to guide responses for TypeSpec authoring,
4+
SDK generation, API reviews, and other repo-specific workflows.
5+
6+
For GitHub Copilot Code Review (the feature that posts inline PR comments),
7+
see copilot-review-instructions.md in this same directory.
8+
Docs: https://docs.github.com/en/copilot/concepts/agents/code-review -->
9+
110
# New TypeSpec projects
211

312
Refer to [new-typespec-project.instructions.md](./instructions/typespec-project.instructions.md) for detailed steps on:
4-
- how to create a new TypeSpec project.
5-
- converting a specification from swagger to typespec
6-
- troubleshooting tsp compile errors
13+
14+
- how to create a new TypeSpec project.
15+
- converting a specification from swagger to typespec
16+
- troubleshooting tsp compile errors
717

818
# Adding Language Emitters to Existing TypeSpec Projects
919

1020
Refer to [language-emitter.instructions.md](./instructions/language-emitter.instructions.md) for detailed steps on how to add language emitters to an existing `tspconfig.yaml` file in a TypeSpec project.
1121

22+
# When to invoke the azure-typespec-author skill
23+
24+
The `azure-typespec-author` skill **must** be invoked immediately in all modes (including plan mode) for any task that involves creating and modifying TypeSpec (`.tsp`) files except for `client.tsp` under the specification directory in this repository. This includes but is not limited to:
25+
26+
- Adding, bumping, or promoting API versions (preview, stable)
27+
- Adding or modifying resources, operations, models, properties, or decorators
28+
- Changing visibility, constraints, breaking changes, LRO patterns, or suppressions
29+
- Defining or updating operationId, spread models, or extension resources
30+
- Converting Swagger to TypeSpec (post-conversion edits)
31+
32+
**If you are unsure whether a user request involves TypeSpec authoring, ask the user to confirm before proceeding.** For example, if the request mentions API changes, versioning, resource definitions, or spec modifications but does not explicitly mention TypeSpec, prompt the user:
33+
34+
> "This request may involve TypeSpec specification changes. Would you like me to use the azure-typespec-author skill to help with this?"
35+
36+
If the user confirms, invoke the `azure-typespec-author` skill immediately. Do **not** build typespec authoring related plan or attempt to make `.tsp` file changes without invoking this skill first.
37+
38+
**Do NOT use this skill for:** SDK generation, releasing SDK packages, `client.tsp` or code customization, or standalone MCP tool calls that do not involve editing `.tsp` files.
39+
1240
# SDK generation from TypeSpec
1341

1442
You must use Azure SDK MCP server to generate SDK from TypeSpec.
@@ -29,13 +57,14 @@ Follow [typespec docs](../eng/common/instructions/azsdk-tools/typespec-docs.inst
2957

3058
# ARM Api Copilot Review Instructions
3159

32-
Follow [armapi-review.instructions.md](./instructions/armapi-review.instructions.md) and [openapi-review.instructions.md](./instructions/openapi-review.instructions.md) for instructions to review ARM API specifications. Github Code review agent must prioritize these instructions over any other instruction files while performing code reviews.
60+
Follow [armapi-review.instructions.md](./instructions/armapi-review.instructions.md) and [openapi-review.instructions.md](./instructions/openapi-review.instructions.md) for instructions to review ARM API specifications. GitHub Code review agent must prioritize these instructions over any other instruction files while performing code reviews.
61+
62+
Cross-cutting review rules (secret detection, property mutability, naming conventions, enum best practices, provisioning state, tracked resource lifecycle) are in the shared [azure-api-review skill](./skills/azure-api-review/SKILL.md). These are referenced by the instruction files and should not be duplicated elsewhere.
3363

3464
# GitHub Actions Development
3565

3666
Follow [github-actions.instructions.md](./instructions/github-actions.instructions.md) for instructions on developing and maintaining GitHub Actions code in this repository. This includes workflows, composite actions, and shared utilities.
3767

38-
3968
<!-- LINKS -->
4069

4170
[contoso-widget-manager]: ../specification/contosowidgetmanager/Contoso.WidgetManager/
@@ -46,4 +75,4 @@ Follow [github-actions.instructions.md](./instructions/github-actions.instructio
4675
[ci-fix]: ../documentation/ci-fix.md
4776
[url-type]: https://typespec.io/docs/language-basics/built-in-types#string-types
4877
[no-enum]: https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-enum
49-
[typespec-structure-guidelines]: ../documentation/typespec-structure-guidelines.md
78+
[typespec-structure-guidelines]: ../documentation/typespec-structure-guidelines.md

0 commit comments

Comments
 (0)