Skip to content

Commit b976f2c

Browse files
committed
format
1 parent 23fa3fd commit b976f2c

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

.github/arm-leases/README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ This directory is intended to be governed via CODEOWNERS to ensure proper govern
1919
## Lease File Structure
2020

2121
Each lease must be placed in the following directory structure:
22+
2223
```
2324
.github/arm-leases/<orgName>/<rpNamespace>/[<serviceName> (optional)]/lease.yaml
2425
```
2526

2627
### Path Requirements:
28+
2729
- `<orgName>`: lowercase alphanumeric only (e.g., testservice, widgetservice)
2830
- `<rpNamespace>`: alphanumeric with dots, case-sensitive (e.g., Microsoft.TestRP, Azure.Widget)
2931
- `<serviceName>`: (optional) customer-facing service name within an RP (e.g., DiskRP, ComputeRP). Must not start with "stable" or "preview"
@@ -34,10 +36,10 @@ The `lease.yaml` file must follow this format:
3436

3537
```yaml
3638
lease:
37-
resource-provider: Microsoft.TestRP # Must match the rpNamespace folder name
38-
startdate: 2026-01-07 # ISO 8601 format (YYYY-MM-DD)
39-
duration: P180D # ISO 8601 duration (max 180 days, e.g., P180D, P90D, P5M)
40-
reviewer: "@evanhissey" # GitHub alias of the approving reviewer
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
4143
```
4244
4345
### Copy-Paste Template
@@ -50,32 +52,36 @@ lease:
5052
startdate: <YYYY-MM-DD>
5153
duration: P180D
5254
reviewer: "@your-github-alias"
53-
5455
```
5556

5657
## Validation Rules
5758

5859
All lease files are automatically validated with the following requirements:
5960

6061
### 1. File Location
62+
6163
- Only `lease.yaml` files are allowed in the `.github/arm-leases/` directory
6264
- Must follow the folder structure: `<orgName>/<rpNamespace>/[<serviceName> (optional)]/lease.yaml`
6365

6466
### 2. Resource Provider Name
67+
6568
- Must match the `<rpNamespace>` folder name exactly
6669
- Example: If folder is `Microsoft.TestRP`, then `resource-provider` must be `Microsoft.TestRP`
6770

6871
### 3. Start Date
72+
6973
- Must be in ISO 8601 format: `YYYY-MM-DD`
7074
- Must be a valid calendar date
7175

7276
### 4. Duration
77+
7378
- Required field that cannot be empty
7479
- Must be a valid ISO 8601 duration (e.g., `P180D`, `P90D`, `P5M`)
7580
- **Maximum duration is 180 days**
7681
- Supports day-based (`P90D`), month-based (`P5M`), and combined formats
7782

7883
### 5. Reviewer
84+
7985
- Required field that cannot be empty
8086
- Must be a GitHub alias starting with `@` (e.g., `@githubUsername`)
8187

@@ -89,4 +95,3 @@ If your PR check **"ARM Lease Validation"** is failing, review the error message
8995
- **Invalid duration**: Use a valid ISO 8601 duration that does not exceed 180 days (e.g., `P180D`, `P90D`, `P5M`)
9096
- **Missing or empty fields**: All fields (`resource-provider`, `startdate`, `duration`, `reviewer`) are required
9197
- **Disallowed files**: Only `lease.yaml` and `README.md` files are permitted in `.github/arm-leases/`
92-

.github/workflows/test/arm-lease-validation/arm-lease-validation.test.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,7 @@ describe("validate-arm-leases", () => {
3333

3434
it("rejects invalid files", () => {
3535
expect(isFileAllowed(".github/arm-leases/anything/here")).toBe(false);
36-
expect(
37-
isFileAllowed(".github/arm-leases/testservice/Microsoft.Test/other.yaml"),
38-
).toBe(false);
36+
expect(isFileAllowed(".github/arm-leases/testservice/Microsoft.Test/other.yaml")).toBe(false);
3937
expect(isFileAllowed(".github/arm-leases/badtest/No.Yaml/no.md")).toBe(false);
4038
});
4139
});

0 commit comments

Comments
 (0)