Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
ea1c6fa
feat(contentsafety): add canonical Agent Hooks evaluation preview
liamcrumm Oct 8, 2026
910fe29
fix(contentsafety): select latest preview in default AutoRest tag
liamcrumm Oct 8, 2026
05c569a
[Content Safety] Retarget Agent Hooks proposal to October 15 preview
liamcrumm Oct 8, 2026
9df5f20
[Content Safety] Evolve Unified Moderate to native Agent Hooks
liamcrumm Oct 8, 2026
abbe804
[Content Safety] Apply TypeSpec formatter to AACS role models
liamcrumm Oct 8, 2026
a832340
[Content Safety] Recognize AACS service acronym in spelling checks
liamcrumm Oct 8, 2026
07f5025
Clarify Agent Hooks moderation descriptions and policy selectors
liamcrumm Oct 9, 2026
0918a74
Scope Content Safety spelling and clarify policy composition
liamcrumm Oct 9, 2026
bc2d51a
Add the October policy evaluation receipt contract
liamcrumm Oct 12, 2026
eeca69f
Keep receipt error details SDK-compatible
liamcrumm Oct 12, 2026
d02c0b8
Separate Foundry and named-policy evaluation profiles
liamcrumm Oct 12, 2026
b2fdbf8
Bind evaluation receipts to admitted requests
liamcrumm Oct 12, 2026
e929413
Keep invalid selector fixtures error-only
liamcrumm Oct 12, 2026
3b30e11
Keep request binding docs SDK-safe
liamcrumm Oct 12, 2026
0edcc76
Validate JavaScript against companion SDK branch
liamcrumm Oct 12, 2026
c9b5770
Allow companion SDK branch owner in spellcheck
liamcrumm Oct 12, 2026
d165f16
Fix managed policy names in Unified Moderate examples
liamcrumm Oct 14, 2026
a4c2a18
Fix package-name policy YAML parser import (#47304)
catalinaperalta Oct 14, 2026
4511245
Add repository-owned TypeSpec linter rulesets (#46750)
catalinaperalta Oct 14, 2026
fcc20ab
add Microsoft.HybridCompute 2026-09-01 API version (#46359)
vedkale Oct 14, 2026
8f922ab
[JS] update JS customizations (#47274)
kazrael2119 Oct 15, 2026
e35ce3d
Revert "Add repository-owned TypeSpec linter rulesets" (#47312)
catalinaperalta Oct 15, 2026
fd7acf7
update (#47313)
v-jiaodi Oct 15, 2026
ec2ac3f
[TypeSpec Authoring] Restore data-plane operations reference section …
haolingdong-msft Oct 15, 2026
70c1e96
Correct MongoCluster network bypass documentation (#47295)
sandeepsnairms Oct 15, 2026
bbe60ce
Enable AgriculturePlatform provisioning emitter (#47234)
cxznmhdcxz Oct 15, 2026
fd6b671
[Go] update client.tsp for customization (#47284)
kazrael2119 Oct 15, 2026
971611a
Add 2026-10-01-preview API version with session artifacts support (#4…
radhikajain99 Oct 15, 2026
3b386d9
[Storage] Restore provisioning name constraints through client option…
ArcturusZhang Oct 15, 2026
8219d08
Rename customization for Edge Machine Deployment Data (#47322)
v-shubhamti-microsoft Oct 15, 2026
f9bea57
Bump the typespec group across 1 directory with 2 updates (#47314)
dependabot[bot] Oct 15, 2026
ee4ba4c
Extract shared TypeSpec project discovery (#47298)
timotheeguerin Oct 15, 2026
5b6e8f3
Add project-level TypeSpec discovery (#47293)
timotheeguerin Oct 15, 2026
36d5a8b
[NetAppFiles] Release microsoft.net app 2026 07 01 (#46097)
audunn Oct 15, 2026
190c0d7
[AzureStackHCI] Add StackHCIVM 2026-07-01-preview API version (#47084)
vishal-kadam Oct 15, 2026
caec1e2
Add DPP Cross-Tenant Restore (CTR) feature - API version 2026-08-31-p…
zubairabid Oct 15, 2026
6946368
Sync eng/common directory with azure-sdk-tools for PR 17240 (#47302)
azure-sdk-automation[bot] Oct 15, 2026
d218330
Add Durable Task 2026-07-01-preview API (#47331)
berndverst Oct 15, 2026
3ff8bb0
Merge remote-tracking branch 'origin/main' into liamcrumm/contentsafe…
liamcrumm Oct 15, 2026
c3c4dc4
Align control-plane intervention points
liamcrumm Oct 15, 2026
2535ca5
Format control-plane source values
liamcrumm Oct 15, 2026
1c77d28
Retire legacy protected-label workflow in favor of the Automation App…
samvaity Oct 15, 2026
afc8315
Add ContainerVulnerabilityScanning service group to Microsoft.Contain…
vikeshi26 Oct 15, 2026
ed6d583
Add ARM lease for Microsoft.AzureCis (PlannedQuota) (#47340)
vikeshi26 Oct 15, 2026
8acc592
Use GitHub teams alias for protected-label approvers (#46994)
samvaity Oct 15, 2026
90e63e5
Microsoft.HorizonDB API version 2026-10-01-preview- #46525 (#47265)
nasc17 Oct 15, 2026
ca957ea
Align Unified Moderate with selected Guardrail model
liamcrumm Oct 15, 2026
f0be0c6
Remove Storage provisioning API version pin (#47320)
ArcturusZhang Oct 16, 2026
817c743
Correct selected Guardrail receipt and examples
liamcrumm Oct 16, 2026
5e4aa5c
Restore normal example validation
liamcrumm Oct 16, 2026
a2d2ff1
Keep SDK validation branch spelling
liamcrumm Oct 16, 2026
e2ff3ba
Wire semantic example validation into TypeSpec
liamcrumm Oct 16, 2026
e8a1879
Run semantic examples during TypeSpec validation
liamcrumm Oct 16, 2026
a93dce5
Make example validation paths portable
liamcrumm Oct 16, 2026
2716b5e
Allow TypeSpec to regenerate examples
liamcrumm Oct 16, 2026
02e37ed
Add eight-point Guardrail authoring sources
liamcrumm Oct 16, 2026
23ecd0c
Add eight-point ACS authoring bindings
liamcrumm Oct 16, 2026
63e247a
Preserve existing ACS binding schemas
liamcrumm Oct 16, 2026
0acb717
Version ACS authoring additions correctly
liamcrumm Oct 16, 2026
4db7c41
Merge latest main into PR branch
liamcrumm Oct 16, 2026
47da301
Retarget Agent Hooks ARM changes to 2026-11-15-preview
liamcrumm Oct 16, 2026
6a3289b
Fix package-name policy YAML parser import (#47304)
catalinaperalta Oct 14, 2026
d4a343c
Restore SDK validation branch spelling
liamcrumm Oct 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/src/package-name-approval/policy.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { readFile } from "node:fs/promises";
import { join } from "node:path";
import yaml from "js-yaml";
import { parse } from "yaml";

export const ALLOWED_BOT_LOGINS = ["github-actions[bot]", "azure-sdk"];
export const UNPROTECTED_PLANE = "unprotected";
Expand Down Expand Up @@ -142,7 +142,7 @@
path: string = join(process.cwd(), ".github", "protected-labels.yml"),
): Promise<PackageNamePolicy> => {
const content = await readFile(path, "utf8");
return parsePackageNamePolicy(yaml.load(content));
return parsePackageNamePolicy(parse(content));
};

export const evaluatePackageNameAuthorization = ({
Expand Down
57 changes: 56 additions & 1 deletion .github/workflows/test/package-name-approval/policy.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,64 @@
import { describe, expect, it } from "vitest";
import { mkdtemp, rm, writeFile } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import {
evaluatePackageNameAuthorization,
loadPackageNamePolicy,
parsePackageNamePolicy,
} from "../../src/package-name-approval/policy.ts";

describe("loading package-name policy", () => {
let folder: string;
let path: string;

beforeEach(async () => {
folder = await mkdtemp(join(tmpdir(), "package-name-policy-"));
path = join(folder, "protected-labels.yml");
});

afterEach(async () => {
await rm(folder, { recursive: true, force: true });
});

it("loads YAML aliases and plane-specific approval policy", async () => {
await writeFile(
path,
`global-approvers: [global]
data-plane-review-signoff: &reviewers [reviewer]
package-name-java-approved:
data-plane: *reviewers
management-plane: unprotected
tier1:
data-plane: [java]
`,
);

expect(await loadPackageNamePolicy(path)).toEqual({
globalApprovers: ["global"],
labels: {
"package-name-java-approved": {
"data-plane": ["reviewer"],
"management-plane": "unprotected",
},
},
tier1: { "data-plane": ["java"] },
});
});

it("rejects malformed YAML rather than defaulting to an empty policy", async () => {
await writeFile(path, "global-approvers: [unfinished");
await expect(loadPackageNamePolicy(path)).rejects.toThrow();
});

it("validates the policy after parsing YAML", async () => {
await writeFile(path, "global-approvers: not-a-list\n");
await expect(loadPackageNamePolicy(path)).rejects.toThrow(
'"global-approvers" must map to an array of non-empty strings',
);
});
});

describe("package-name policy", () => {
it("projects only package-name-owned entries", () => {
const policy = parsePackageNamePolicy({
Expand Down
1 change: 1 addition & 0 deletions specification/cognitiveservices/cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ words:
- khtml
- knda
- laoo
- liamcrumm
- listprebuilts
- logit
- logprobs
Expand Down
Loading
Loading