Skip to content

[pull] main from fern-api:main#795

Merged
pull[bot] merged 20 commits into
code:mainfrom
fern-api:main
Jun 15, 2026
Merged

[pull] main from fern-api:main#795
pull[bot] merged 20 commits into
code:mainfrom
fern-api:main

Conversation

@pull

@pull pull Bot commented Jun 15, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

davidkonigsberg and others added 20 commits June 15, 2026 13:05
…B_TOKEN (#16526)

The FERN_GITHUB_TOKEN no longer has the security_events scope needed for
the Dependabot alerts API (403 error).

Fix:
- Switch to the workflow's default GITHUB_TOKEN (already has VulnerabilityAlerts:read)
- Handle both 403 and 404 errors gracefully

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…c8-g7v7-2m33 (#16527)

* [Dependabot Alert #2084] Scaffold PR for esbuild

* fix(deps): bump esbuild to 0.28.1 to fix GHSA-gv7w-rqvm-qjhr and GHSA-2qc8-g7v7-2m33

- Bump workspace catalog esbuild from ^0.27.3 to ^0.28.1 (fixes alerts #2082, #2083)
- Bump generated SDK devDependency from ~0.24.2 to ~0.28.1 (fixes alert #2084)
- Update seed fixture package.json
- Remove scaffold file

* fix(deps): add esbuild override to eliminate transitive 0.27.x from tsup

tsup@8.5.1 pins esbuild to ^0.27.0, which resolves to 0.27.7 (vulnerable).
Adding pnpm override forces all esbuild instances to ^0.28.1.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: David Konigsberg <72822263+davidkonigsberg@users.noreply.github.com>
…rs type (#16442)

* fix(python): fix union base properties in snippets and conftest headers type

* fix(python): restore TypedDict base-property snippets, fix null union_value branch, expand _NON_ENVVAR_PARAMS

Linter reverted three pieces of the previous commit; re-applying:

- TypeddictDiscriminatedUnionSnippetGenerator: add _get_base_properties_as_simple_object_properties() and spread base properties into all three snippet handlers (samePropertiesAsObject, singleProperty, noProperties)
- PydanticModelDiscriminatedUnionSnippetGenerator._get_snippet_for_union_with_single_property: fix the union_value=None branch so base properties are included instead of silently dropped
- SnippetTestFactory._NON_ENVVAR_PARAMS: expand from 4 to 9 entries covering all known non-string constructor params (timeout, max_retries, follow_redirects, httpx_client, logging)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…set (#16322)

* fix(go): support pagination results that are named aliases to a list/set

v1 pagination generation aborted with "unsupported pagination results type"
when an endpoint's results property pointed at a named type that aliases a
list or set (e.g. results: $response.data where data is a UserList alias).
singleTypeReferenceFromResponseProperty now resolves the element type via
maybeIterableType, which follows alias indirection and unwraps
optional/nullable containers. Removed pagination from allowedFailures.

* fix(go): resolve named-alias pagination results element type in v2 pager

When a paginated endpoint's results property is a named alias to a list/set
(e.g. data: UserList where UserList = list<User>), v2's getResponseElementType
converted the alias to a Go type before attempting to unwrap the iterable, so
the named reference never resolved and the pager used the alias (UserList) as
its element type while the endpoint's return type used the element (*User).
The two disagreed and the generated code did not compile. Resolve the iterable
at the IR level via maybeUnwrapIterable, matching getPaginationValueType.

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…#16283)

* fix(go): serialize undiscriminated union request headers via String()

* ci: re-trigger (wiremock Docker Hub pull rate-limit flake)

* fix(go): format date/datetime union members as RFC3339 in String()

When an undiscriminated union containing a date or datetime member is
serialized as an HTTP header via the generated String() method, use
field.Format(time.RFC3339) / field.Format("2006-01-02") instead of
fmt.Sprintf("%v", field). Go's default time.Time.String() produces a
verbose representation like "2009-11-10 23:00:00 +0000 UTC" which is
not a valid header format; RFC 3339 / ISO 8601 is the standard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
)

* fix(python): fix OAuth token provider for custom parameter names

Teach the OAuth token provider generator to:
- Use request-properties mapping for parameter names (e.g. cid/csr instead of client_id/client_secret)
- Accept and pass additional required parameters (scopes, non-literal custom properties)
- Filter out literal and optional custom properties that are auto-populated

Update root client generator to:
- Add additional OAuth params to constructor signatures and overloads
- Pass them through to OAuthTokenProvider instantiation
- Assert non-None in OAuth client credentials branch for type safety

Remove oauth-client-credentials-custom from allowedFailures.

* fix: move additional OAuth params to token-endpoint-only branch

* fix(python): enforce required OAuth params with ApiError instead of assert
…16532)

* fix(python): remove examples:legacy-wire-tests from allowedFailures

#16442 fixed the underlying test failures but forgot to remove the
allowedFailures entry from seed.yml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Remove allowedFailures entry from seed.yml

Remove the 'oauth-client-credentials-custom' entry from the allowedFailures section in seed/python-sdk/seed.yml. This stops the test identifier from being treated as an allowed failure in CI for the Python SDK seed configuration.

* fix(python): keep examples:legacy-wire-tests in allowedFailures (no mock server)

* fix(python): make legacy wire test conftest skip when no server, remove allowedFailures

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Jun 15, 2026
@pull pull Bot added the ⤵️ pull label Jun 15, 2026
@pull pull Bot merged commit a294080 into code:main Jun 15, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants