Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
b9a5b8b
chore(ci): bump GitHub Actions built on Node 20 to Node 24 versions (…
davidkonigsberg May 13, 2026
cbca2f0
chore(ci): bump PostHog/posthog-github-action from v0.1 to v1 (#15867)
davidkonigsberg May 13, 2026
95ed8bb
fix(deps): pin cross-spawn to ^7.0.6 via pnpm override (GHSA-3xgq-45j…
github-actions[bot] May 13, 2026
d93ed57
fix(openapi): fix allOf validation constraints and example generation…
devin-ai-integration[bot] May 13, 2026
9763418
chore(cli): release 5.23.4
github-actions[bot] May 13, 2026
f7abc70
fix(internal): drop --global-response-templating from wire-test docke…
patrickthornton May 13, 2026
7ce0bb3
chore(go): release 1.41.2
github-actions[bot] May 13, 2026
15fb694
chore(php): release 2.9.6
github-actions[bot] May 13, 2026
14352ec
chore(python): release 5.12.6
github-actions[bot] May 13, 2026
4f8bad2
chore(ruby-v2): release 1.12.9
github-actions[bot] May 13, 2026
cba5505
chore(rust): release 0.36.7
github-actions[bot] May 13, 2026
788b9ed
chore(seed): update all seed snapshots (#15874)
fern-support May 13, 2026
c0b535c
fix(generator-cli): tolerate unreachable previousGenerationSha when c…
tstanmay13 May 13, 2026
619fdea
fix(csharp): bump WireMock.Net to 2.6.0 in generated test projects (#…
patrickthornton May 13, 2026
c97c186
chore(cli): release 5.23.5
github-actions[bot] May 13, 2026
e8feb57
chore(csharp): release 2.66.3
github-actions[bot] May 13, 2026
6c884a8
chore(seed): update all seed snapshots (#15876)
fern-support May 13, 2026
9174d25
chore(seed): update all seed snapshots (#15879)
fern-support May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@v2
uses: dependabot/fetch-metadata@v3
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Enable auto-merge for Dependabot PRs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/seed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1791,7 +1791,7 @@ jobs:

- name: Post to PostHog
# https://github.com/PostHog/posthog-github-action
uses: PostHog/posthog-github-action@v0.1
uses: PostHog/posthog-github-action@v1
with:
posthog-token: ${{ secrets.POSTHOG_API_KEY }}
event: "gh-actions-seed-test-metrics-event"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-seed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -992,7 +992,7 @@ jobs:
# Commit all applied patches back to branch (will be checked out in apply-patches step)
- name: Add and Commit Changes
id: commit-changes
uses: EndBug/add-and-commit@v9
uses: EndBug/add-and-commit@v10
if: ${{ steps.apply-patches.outputs.has-patches == 'true' }}
with:
add: "seed/*"
Expand Down
2 changes: 1 addition & 1 deletion generators/csharp/base/src/asIs/test/Template.Test.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="WireMock.Net" Version="2.2.0" />
<PackageReference Include="WireMock.Net" Version="2.6.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- summary: |
Bump WireMock.Net from 2.2.0 to 2.6.0 in generated test projects to resolve Snyk
vulnerability reports flagging the older version.
type: fix
8 changes: 8 additions & 0 deletions generators/csharp/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
- version: 2.66.3
changelogEntry:
- summary: |
Bump WireMock.Net from 2.2.0 to 2.6.0 in generated test projects to resolve Snyk
vulnerability reports flagging the older version.
type: fix
createdAt: "2026-05-13"
irVersion: 66
- version: 2.66.2
changelogEntry:
- summary: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export class WireTestSetupGenerator {
- "0:8080"
volumes:
- ./wiremock-mappings.json:/home/wiremock/mappings/wiremock-mappings.json
command: ["--global-response-templating", "--verbose"]
command: ["--verbose"]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/__admin/health"]
interval: 2s
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# yaml-language-server: $schema=../../../../../fern-changes-yml.schema.json

- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
11 changes: 11 additions & 0 deletions generators/go/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
- version: 1.41.2
changelogEntry:
- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
createdAt: "2026-05-13"
irVersion: 66
- version: 1.41.1
changelogEntry:
- summary: |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# yaml-language-server: $schema=../../../../../fern-changes-yml.schema.json

- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export class WireTestSetupGenerator {
- "0:8080" # Use dynamic port to avoid conflicts with concurrent tests
volumes:
- ./wiremock-mappings.json:/home/wiremock/mappings/wiremock-mappings.json
command: ["--global-response-templating", "--verbose"]
command: ["--verbose"]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/__admin/health"]
interval: 2s
Expand Down
11 changes: 11 additions & 0 deletions generators/php/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
- version: 2.9.6
changelogEntry:
- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
createdAt: "2026-05-13"
irVersion: 66
- version: 2.9.5
changelogEntry:
- summary: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ export class WireTestSetupGenerator {
- "0:8080" # Use dynamic port to avoid conflicts with concurrent tests
volumes:
- ./wiremock-mappings.json:/home/wiremock/mappings/wiremock-mappings.json
command: ["--global-response-templating", "--verbose"]
command: ["--verbose"]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/__admin/health"]
interval: 2s
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# yaml-language-server: $schema=../../../../../fern-changes-yml.schema.json

- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` (e.g. FHIR/IPS template strings) are now served verbatim instead
of being passed through WireMock's Handlebars transformer, which would
fail to resolve them as helpers and return 500.
type: fix
11 changes: 11 additions & 0 deletions generators/python/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
- version: 5.12.6
changelogEntry:
- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` (e.g. FHIR/IPS template strings) are now served verbatim instead
of being passed through WireMock's Handlebars transformer, which would
fail to resolve them as helpers and return 500.
type: fix
createdAt: "2026-05-13"
irVersion: 66
- version: 5.12.5
changelogEntry:
- summary: |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# yaml-language-server: $schema=../../../../../fern-changes-yml.schema.json

- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ export class WireTestSetupGenerator {
- "0:8080" # Use dynamic port to avoid conflicts with concurrent tests
volumes:
- ./wiremock-mappings.json:/home/wiremock/mappings/wiremock-mappings.json
command: ["--global-response-templating", "--verbose"]
command: ["--verbose"]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/__admin/health"]
interval: 2s
Expand Down
11 changes: 11 additions & 0 deletions generators/ruby-v2/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
- version: 1.12.9
changelogEntry:
- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
createdAt: "2026-05-13"
irVersion: 66
- version: 1.12.8
changelogEntry:
- summary: |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# yaml-language-server: $schema=../../../../../fern-changes-yml.schema.json

- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ export class WireTestSetupGenerator {
- "0:8080" # Use dynamic port to avoid conflicts with concurrent tests
volumes:
- ./wiremock-mappings.json:/home/wiremock/mappings/wiremock-mappings.json
command: ["--global-response-templating", "--verbose"]
command: ["--verbose"]
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/__admin/health"]
interval: 2s
Expand Down
11 changes: 11 additions & 0 deletions generators/rust/sdk/versions.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
# yaml-language-server: $schema=../../../fern-versions-yml.schema.json
- version: 0.36.7
changelogEntry:
- summary: |
Stop launching WireMock with `--global-response-templating` in generated
wire-test `docker-compose.test.yml`. Response examples containing literal
`{{...}}` are now served verbatim instead of being passed through
WireMock's Handlebars transformer, which would fail to resolve them as
helpers and return 500.
type: fix
createdAt: "2026-05-13"
irVersion: 66
- version: 0.36.6
changelogEntry:
- summary: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1335,13 +1335,18 @@ export function convertSchemaObject(

// Now that we've handled the single-element allOf case, filter the
// allOfs down to just the objects.
const filteredAllOfObjects = filteredAllOfs.filter((allOf) => {
const valid = isValidAllOfObject(allOf);
if (!valid) {
const filteredAllOfObjects: (OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject)[] = [];
const filteredOutPrimitiveElements: OpenAPIV3.SchemaObject[] = [];
for (const allOf of filteredAllOfs) {
if (isValidAllOfObject(allOf)) {
filteredAllOfObjects.push(allOf);
} else {
context.logger.debug(`Skipping non-object allOf element: ${JSON.stringify(allOf)}`);
if (!isReferenceObject(allOf)) {
filteredOutPrimitiveElements.push(allOf);
}
}
return valid;
});
}

if (
(schema.properties == null || hasNoProperties(schema)) &&
Expand All @@ -1351,8 +1356,22 @@ export function convertSchemaObject(
) {
// Try to short-circuit again.
// We don't short-circuit if additionalProperties is set, as we'd lose that information.
// Before short-circuiting, merge any constraints from filtered-out primitive
// allOf elements (e.g. pattern, format, minLength) into the remaining element.
let elementToConvert: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject = filteredAllOfObjects[0];
if (filteredOutPrimitiveElements.length > 0) {
// Merge all fields from filtered-out elements into the remaining
// schema. Later elements win (standard allOf semantics).
const base = isReferenceObject(elementToConvert)
? { ...context.resolveSchemaReference(elementToConvert) }
: { ...elementToConvert };
for (const primitiveElement of filteredOutPrimitiveElements) {
Object.assign(base, primitiveElement);
}
elementToConvert = base;
}
const convertedSchema = convertSchema(
filteredAllOfObjects[0],
elementToConvert,
wrapAsOptional,
wrapAsNullable,
context,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1060,13 +1060,29 @@
"generatedName": "RuleConfigExecutionContext",
"value": {
"generatedName": "RuleConfigExecutionContext",
"schema": "RuleExecutionContext",
"values": [
{
"generatedName": "prod",
"value": "prod",
"casing": {}
},
{
"generatedName": "staging",
"value": "staging",
"casing": {}
},
{
"generatedName": "dev",
"value": "dev",
"casing": {}
}
],
"groupName": [],
"source": {
"file": "../openapi.yml",
"type": "openapi"
},
"type": "reference"
"type": "enum"
},
"groupName": [],
"type": "optional"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -350,13 +350,24 @@
"docs": undefined,
"inline": undefined,
"properties": {
"executionContext": "optional<RuleExecutionContext>",
"executionContext": "optional<RuleConfigExecutionContext>",
"name": "optional<string>",
},
"source": {
"openapi": "../openapi.yml",
},
},
"RuleConfigExecutionContext": {
"enum": [
"prod",
"staging",
"dev",
],
"inline": true,
"source": {
"openapi": "../openapi.yml",
},
},
"RuleExecutionContext": {
"enum": [
"prod",
Expand Down Expand Up @@ -588,10 +599,18 @@ types:
- dev
source:
openapi: ../openapi.yml
RuleConfigExecutionContext:
enum:
- prod
- staging
- dev
inline: true
source:
openapi: ../openapi.yml
RuleConfig:
properties:
name: optional<string>
executionContext: optional<RuleExecutionContext>
executionContext: optional<RuleConfigExecutionContext>
source:
openapi: ../openapi.yml
PaginatedList:
Expand Down
Loading
Loading