chore(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to v2.7.0 #71

Merged
nemunaire merged 1 commit from renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x into master 2026-05-04 03:14:23 +00:00
Collaborator

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
github.com/oapi-codegen/oapi-codegen/v2 v2.5.1v2.7.0 age adoption passing confidence

Release Notes

oapi-codegen/oapi-codegen (github.com/oapi-codegen/oapi-codegen/v2)

v2.7.0: : Squashing bugs, many bugs (and adding some features)

Compare Source

Many improvements and even more bug fixes

This v2.7.0 release of oapi-codegen contains quite a bit of internal refactoring, focused on our most historically fragile code paths, which relate to the aggregate types (allOf/anyOf/oneOf), $ref to external specs, enums, and the spec traversal logic missing quite a few leaf nodes where models should have been generated, but were skipped.

The biggest changes are explicitly described in the sections below, and the full list of commits is at the bottom.

Thank you to all contributors, we've been going through all past PR's and updating them and merging where we can, and thanks to all our users for reporting issues that you hit.

I've (@​mromaszewicz) used a lot of LLM help here to scrub through old issues and do some deep internal refactoring to address common problem areas. I intend to continue doing this, since the conditional generation logic is getting quite complicated. When I originally released oapi-codegen, the use case was much simpler, all the models were under #/components/schemas, and all the references to them were in the requests, responses, etc. I never imagine how many things would be external references or unions, and how many complex OpenAPI specifications people would be generating code for. The initial design was never flexible enough to handle that, so ongoing bug fixes are getting increasingly complex due to edge cases. This version has a lot of internal changes you won't see as a user, but the way we handle type generation internally is unifying lots of copy/paste re-implementations into reusable code for consistency. Most of these changes can be done transparently, but some can't, so, onto the changes:

Code generation changes which might require some changes on your end

This release contains three changes, all very narrow in scope, which will require some manual adjustment of your own code. We've decided that these are small enough and uncommon enough not to require opt-in, which causes internal complexity. It's always a judgment call with these. If we got it wrong, we're happy to revisit it in a maintenance release.

Strict-server external response refs require strict-server generation in both packages (#​2357)

If your strict-server spec uses an external $ref to a components/responses/... defined in another spec, that other
spec must also be generated with strict-server: true. Add it to the source spec's config and regenerate:


# config for the spec being $ref'd
generate:
  models: true
  strict-server: true   # now required when imported by a strict-server spec

This restores the v2.0.0 behavior that lets you cast response models across package boundaries — the standard pattern
for sharing error models (e.g. a common 400) across services. PR #​1387 had silently changed the embedded type from N400JSONResponse to the bare externalRef0.N400, so the local and external response structs no longer had
matching types and casts stopped compiling.

Many more anonymous inner schemas are now hoisted into top level schemas

Inline oneOf, anyOf, and additionalProperties schemas embedded directly under an operation's request or response
body now flow through the same boilerplate-emission pipeline as components/schemas, so they get the
As* / From* / Merge* accessor methods they were previously missing. As part of that change, two older naming patterns
are replaced with one pattern, shared with all components:

GetPets_200_Data_Item             →  GetPets200JSONResponseBody_Data_Item
GetPets200JSONResponse_Data_Item  →  GetPets200JSONResponseBody_Data_Item

In practice, we think this shouldn't break anyone, because this change addresses a bug which produced pointless types
with no benefit, and you never interact with these directly, but rather you'd call an accessor on a field of a model.

Strict middleware typedefs are now inlined (#​2271)

StrictHandlerFunc and StrictMiddlewareFunc in generated strict-server code are now inline type definitions instead
of aliases to github.com/oapi-codegen/runtime/strictmiddleware/<framework>. Generated servers no longer import that package.

Before (Echo example):

import strictecho "github.com/oapi-codegen/runtime/strictmiddleware/echo"

type StrictHandlerFunc = strictecho.StrictEchoHandlerFunc
type StrictMiddlewareFunc = strictecho.StrictEchoMiddlewareFunc

After:

type StrictHandlerFunc func(ctx echo.Context, request any) (any, error)
type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc

If your code referenced the per-framework names directly — strictecho.StrictEchoHandlerFunc, strictgin.StrictGinHandlerFunc, strictnethttp.StrictHTTPHandlerFunc, strictiris.StrictIrisHandlerFunc, strictecho5.StrictEcho5HandlerFunc — switch to the local StrictHandlerFunc / StrictMiddlewareFunc exposed by the generated server package, or import runtime/strictmiddleware/<framework> yourself if you really want those names. The underlying signatures are unchanged, so any value satisfying the old type still satisfies the new one.

🎉 Notable changes

Go 1.24 required (#​2264)

oapi-codegen itself now requires Go 1.24.4+ to build and run. The toolchain in your project's go.mod (the one used to invoke the codegen) must be ≥ 1.24.4. The code generated will still likely work on older versions. We had to update to Go 1.24 in order to update some dependencies to address vulnerabilities. Go 1.24 is no longer supported, so our next release will update to Go 1.25,
and the plan is to stay on supported Go versions. I'm not sure if 1.25 will come in v2.8.0 or v2.7.1 yet, but it's imminent. We
have a number of submodules in this repo which exist only to test Go 1.25 routers in a 1.24 module, and it allows us to
simplify.

Unfortunately, some of our transitive dependencies result in a broken build, by default, so you might have to pin these
packages to specific versions:

  • github.com/speakeasy-api/jsonpath v0.6.3
  • github.com/dprotaso/go-yit v0.0.0-20220510233725-9ba8df137936 (See #​2015 for some discusion)
Multi-pass type name resolution (#​2213)

Set output-options.resolve-type-name-collisions: true to make the codegen detect identifier collisions across schemas, parameters, request bodies, response components, and operation-derived types — and resolve them deterministically by suffixing the loser. Specs that previously failed to generate because two definitions wanted the same Go name now succeed.

Trivial example. With this spec:

components:
  schemas:
    Status:
      type: string
      enum: [active, archived]
  parameters:
    Status:
      name: status
      in: query
      schema:
        type: string

output-options.resolve-type-name-collisions: true produces:

type Status string                    // from components.schemas.Status
const StatusActive   Status = "active"
const StatusArchived Status = "archived"

type StatusParameter = string         // from components.parameters.Status

Collision resolution is opt-in. Generated identifier names depend on the current set of collisions in the spec;
adding a new schema or parameter later that collides with an existing one will rename the existing one to break the new collision.
That can silently break user code that imports the previously-stable name as the spec drifts. However, despite the drift,
more specs can now correctly generate boilerplate.

Parameter binding matrix (#​2307)

The OpenAPI parameter style × explode × type matrix is now fully supported and round-trips consistently across
every server backend. Path/query/header/cookie parameters across primitive, array, and object types — including
style: form / spaceDelimited / pipeDelimited / deepObject × explode: true/false, and style: simple for headers —
generate the same binding logic on every server, and the client-side encoding is symmetric. The internal parameter test suite (internal/test/parameters/) now exercises every combination through a server round-trip per backend.

If you previously hit an unsupported style error, or saw a parameter serialization work under one backend but not another,
regenerate and the issue should be gone.

You will need to use version v1.4.0 or higher of github.com/oapi-codegen/runtime.

Optional / nullable response headers (#​2301)

For strict-server responses, optional and nullable headers now generate as pointer fields (or nullable.Nullable[T]
when the nullable-types output option is set). The generated server only calls w.Header().Set(...) when the field
is non-nil, so callers can omit optional headers cleanly.

Spec:

responses:
  '200':
    headers:
      X-Required: { required: true, schema: { type: string } }
      X-Optional: { schema: { type: string } }

Before:

type GetFoo200ResponseHeaders struct {
    XRequired string
    XOptional string  // always emitted, even when empty
}

After:

type GetFoo200ResponseHeaders struct {
    XRequired string
    XOptional *string  // nil → header not sent
}

To opt out of this change, set compatibility.headers-implicitly-required: true to restore the previous always-required behavior. This change breaks enough code that we flagified it.

🚀 New features

Echo v5 server support (#​2188)

Echo v5 (the upcoming major version) is now a supported server framework. Generate with generate.echo5-server: true. Echo v4 is unchanged and remains the target of generate.echo-server.

Per-handler middleware in Fiber (#​2302)

Fiber generated servers now accept a HandlerMiddlewares []HandlerMiddlewareFunc slice in FiberServerOptions, applied around every operation handler. The middleware signature is func(c *fiber.Ctx, next fiber.Handler) error, matching Fiber's native middleware pattern. Useful for cross-cutting concerns (auth, logging, metrics) that should run after path-level routing but inside the generated-handler boundary.

Per-operation middleware in Echo (#​2353)

Echo's RegisterHandlersWithOptions now accepts an OperationMiddlewares map[string][]echo.MiddlewareFunc keyed by operationId, attaching middleware to specific operations at registration time:

api.RegisterHandlersWithOptions(e, server, api.RegisterHandlersOptions{
    OperationMiddlewares: map[string][]echo.MiddlewareFunc{
        "createPet": {authMiddleware, auditMiddleware},
        "deletePet": {authMiddleware, adminOnlyMiddleware},
    },
})

Operations with no entry in the map (or a nil map) are registered with no extra middleware. Available for both Echo v4 and Echo v5 generated servers.

Strict-gin error handlers (#​1600)

The Gin strict server now exposes RequestErrorHandlerFunc and ResponseErrorHandlerFunc on StrictServerOptions, matching the pattern already available for the Echo strict server. Bind errors and response-write errors flow through your custom handler instead of using gin's default abort behaviour. Defaults are preserved if you don't set them.


☢️ Breaking changes

🎉 Notable changes

🚀 New features and improvements

🐛 Bug fixes

📝 Documentation updates

👻 Maintenance

📦 Dependency updates

9 changes

Sponsors

We would like to thank our sponsors for their support during this release.

DevZero logo

Cybozu logo

v2.6.0: : 7th anniversary release 🎂

Compare Source

For those that aren't aware, 7 years ago to the day, oapi-codegen was born!

(Well, technically it's tonight at midnight UTC, but who's splitting hairs?)

There's nothing too special planned for today, but we thought it'd be the perfect time to cut a slice of cake a release!

🎉 Notable changes

New generated code requires oapi-codegen/runtime v1.2.0+

As part of #​2256, github.com/oapi-codegen/runtime v1.2.0 is needed alongside github.com/oapi-codegen/oapi-codegen, for new generated code.

This is providing a more future-proofed means to bind parameters.

See the release notes for the runtime package, and #​2256 for more information.

oapi-codegen was part of the GitHub Secure Open Source Fund

oapi-codegen was one of the projects taking part in the third GitHub Secure Open Source Fund session.

We've written up more about what we've learned, and have some more things to share with you over the coming months about lessons we've learned and improvements we've taken that we can share.

We were pretty chuffed to be selected, and it's already helped improve our security posture as a project, which is also very important for the wider ecosystem!

go directive bump in next release

Long-time users will be aware that we work very hard to try and keep our requirement for Go source compatibility, through the go directive, especially as we recommend folks use oapi-codegen as a source-tracked dependency.

For more details about this, see our Support Model docs.

In the next minor release, we'll be setting our minimum go directive to Go 1.24 (End-of-Life on 2026-02-11), as it's required for a number of dependencies of ours to be updated any higher, and a change to the module import path for Speakeasy's OpenAPI Overlay library requires us fix this centrally for our users to be able to continue updating their libraries.

[!NOTE]
Nothing is changing as part of v2.6.0, this is a pre-announcement for v2.7.0.

Behind the scenes cleanup

There's also been some work behind-the-scenes to try and clean up outstanding issues (of which we know there are many!) that have been fixed, as well as Marcin's work on trying to do some more significant rework of the internals with help from Claude.

There's still, as ever, work to go with this - as we've mentioned before, sponsoring our work would be greatly appreciated, so we can continue to put in the work, considering this is a widely used and depended on project.

🚀 New features and improvements

🐛 Bug fixes

📝 Documentation updates

👻 Maintenance

📦 Dependency updates

8 changes
  • chore(deps): update module github.com/golangci/golangci-lint to v2.10.1 (makefile) (#​2153) @​renovate[bot]
  • chore(deps): update github/codeql-action action to v4.32.4 (.github/workflows) (#​2157) @​renovate[bot]
  • chore(deps): update actions/setup-go action to v6.3.0 (.github/workflows) (#​2164) @​renovate[bot]
  • chore(deps): update actions/checkout action to v6 (.github/workflows) - autoclosed (#​2165) @​renovate[bot]
  • chore(deps): update release-drafter/release-drafter action to v6.2.0 (.github/workflows) (#​2253) @​renovate[bot]
  • chore(deps): update actions/upload-artifact action to v7 (.github/workflows) (#​2254) @​renovate[bot]
  • chore(deps): update dessant/label-actions action to v5 (.github/workflows) (#​2255) @​renovate[bot]
  • chore(deps): update release-drafter/release-drafter action to v6.1.0 (.github/workflows) (#​2132) @​renovate[bot]

Sponsors

We would like to thank our sponsors for their support during this release.

DevZero logo

Cybozu logo


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Adoption](https://docs.renovatebot.com/merge-confidence/) | [Passing](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [github.com/oapi-codegen/oapi-codegen/v2](https://github.com/oapi-codegen/oapi-codegen) | `v2.5.1` → `v2.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2foapi-codegen%2foapi-codegen%2fv2/v2.7.0?slim=true) | ![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2foapi-codegen%2foapi-codegen%2fv2/v2.7.0?slim=true) | ![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2foapi-codegen%2foapi-codegen%2fv2/v2.5.1/v2.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2foapi-codegen%2foapi-codegen%2fv2/v2.5.1/v2.7.0?slim=true) | --- ### Release Notes <details> <summary>oapi-codegen/oapi-codegen (github.com/oapi-codegen/oapi-codegen/v2)</summary> ### [`v2.7.0`](https://github.com/oapi-codegen/oapi-codegen/releases/tag/v2.7.0): : Squashing bugs, many bugs (and adding some features) [Compare Source](https://github.com/oapi-codegen/oapi-codegen/compare/v2.6.0...v2.7.0) ### Many improvements and even more bug fixes This `v2.7.0` release of `oapi-codegen` contains quite a bit of internal refactoring, focused on our most historically fragile code paths, which relate to the aggregate types (`allOf`/`anyOf`/`oneOf`), `$ref` to external specs, enums, and the spec traversal logic missing quite a few leaf nodes where models should have been generated, but were skipped. The biggest changes are explicitly described in the sections below, and the full list of commits is at the bottom. Thank you to all contributors, we've been going through all past PR's and updating them and merging where we can, and thanks to all our users for reporting issues that you hit. I've ([@&#8203;mromaszewicz](https://github.com/mromaszewicz)) used a lot of LLM help here to scrub through old issues and do some deep internal refactoring to address common problem areas. I intend to continue doing this, since the conditional generation logic is getting quite complicated. When I originally released `oapi-codegen`, the use case was much simpler, all the models were under `#/components/schemas`, and all the references to them were in the requests, responses, etc. I never imagine how many things would be external references or unions, and how many complex OpenAPI specifications people would be generating code for. The initial design was never flexible enough to handle that, so ongoing bug fixes are getting increasingly complex due to edge cases. This version has a lot of internal changes you won't see as a user, but the way we handle type generation internally is unifying lots of copy/paste re-implementations into reusable code for consistency. Most of these changes can be done transparently, but some can't, so, onto the changes: #### Code generation changes which might require some changes on your end This release contains three changes, all very narrow in scope, which will require some manual adjustment of your own code. We've decided that these are small enough and uncommon enough not to require opt-in, which causes internal complexity. It's always a judgment call with these. If we got it wrong, we're happy to revisit it in a maintenance release. ##### Strict-server external response refs require strict-server generation in both packages ([#&#8203;2357](https://github.com/oapi-codegen/oapi-codegen/pull/2357)) If your strict-server spec uses an external `$ref` to a `components/responses/...` defined in another spec, that other spec must also be generated with `strict-server: true`. Add it to the source spec's config and regenerate: ```yaml # config for the spec being $ref'd generate: models: true strict-server: true # now required when imported by a strict-server spec ``` This restores the v2.0.0 behavior that lets you cast response models across package boundaries — the standard pattern for sharing error models (e.g. a common `400`) across services. PR [#&#8203;1387](https://github.com/oapi-codegen/oapi-codegen/pull/1387) had silently changed the embedded type from `N400JSONResponse` to the bare `externalRef0.N400`, so the local and external response structs no longer had matching types and casts stopped compiling. ##### Many more anonymous inner schemas are now hoisted into top level schemas Inline `oneOf`, `anyOf`, and `additionalProperties` schemas embedded directly under an operation's request or response body now flow through the same boilerplate-emission pipeline as `components/schemas`, so they get the `As*` / `From*` / `Merge*` accessor methods they were previously missing. As part of that change, two older naming patterns are replaced with one pattern, shared with all components: ``` GetPets_200_Data_Item → GetPets200JSONResponseBody_Data_Item GetPets200JSONResponse_Data_Item → GetPets200JSONResponseBody_Data_Item ``` In practice, we think this shouldn't break anyone, because this change addresses a bug which produced pointless types with no benefit, and you never interact with these directly, but rather you'd call an accessor on a field of a model. ##### Strict middleware typedefs are now inlined ([#&#8203;2271](https://github.com/oapi-codegen/oapi-codegen/pull/2271)) `StrictHandlerFunc` and `StrictMiddlewareFunc` in generated strict-server code are now inline type definitions instead of aliases to `github.com/oapi-codegen/runtime/strictmiddleware/<framework>`. Generated servers no longer import that package. Before (Echo example): ```go import strictecho "github.com/oapi-codegen/runtime/strictmiddleware/echo" type StrictHandlerFunc = strictecho.StrictEchoHandlerFunc type StrictMiddlewareFunc = strictecho.StrictEchoMiddlewareFunc ``` After: ```go type StrictHandlerFunc func(ctx echo.Context, request any) (any, error) type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc ``` If your code referenced the per-framework names directly — `strictecho.StrictEchoHandlerFunc`, `strictgin.StrictGinHandlerFunc`, `strictnethttp.StrictHTTPHandlerFunc`, `strictiris.StrictIrisHandlerFunc`, `strictecho5.StrictEcho5HandlerFunc` — switch to the local `StrictHandlerFunc` / `StrictMiddlewareFunc` exposed by the generated server package, or import `runtime/strictmiddleware/<framework>` yourself if you really want those names. The underlying signatures are unchanged, so any value satisfying the old type still satisfies the new one. #### 🎉 Notable changes ##### Go 1.24 required ([#&#8203;2264](https://github.com/oapi-codegen/oapi-codegen/pull/2264)) `oapi-codegen` itself now requires Go 1.24.4+ to build and run. The toolchain in your project's `go.mod` (the one used to invoke the codegen) must be ≥ 1.24.4. The code generated will still likely work on older versions. We had to update to Go 1.24 in order to update some dependencies to address vulnerabilities. Go 1.24 is no longer supported, so our next release will update to Go 1.25, and the plan is to stay on supported Go versions. I'm not sure if 1.25 will come in v2.8.0 or v2.7.1 yet, but it's imminent. We have a number of submodules in this repo which exist only to test Go 1.25 routers in a 1.24 module, and it allows us to simplify. Unfortunately, some of our transitive dependencies result in a broken build, by default, so you might have to pin these packages to specific versions: - github.com/speakeasy-api/jsonpath v0.6.3 - github.com/dprotaso/go-yit v0.0.0-20220510233725-9ba8df137936 (See [#&#8203;2015](https://github.com/oapi-codegen/oapi-codegen/issues/2015) for some discusion) ##### Multi-pass type name resolution ([#&#8203;2213](https://github.com/oapi-codegen/oapi-codegen/pull/2213)) Set `output-options.resolve-type-name-collisions: true` to make the codegen detect identifier collisions across schemas, parameters, request bodies, response components, and operation-derived types — and resolve them deterministically by suffixing the loser. Specs that previously failed to generate because two definitions wanted the same Go name now succeed. Trivial example. With this spec: ```yaml components: schemas: Status: type: string enum: [active, archived] parameters: Status: name: status in: query schema: type: string ``` `output-options.resolve-type-name-collisions: true` produces: ```go type Status string // from components.schemas.Status const StatusActive Status = "active" const StatusArchived Status = "archived" type StatusParameter = string // from components.parameters.Status ``` Collision resolution is opt-in. Generated identifier names depend on the *current* set of collisions in the spec; adding a new schema or parameter later that collides with an existing one will rename the existing one to break the new collision. That can silently break user code that imports the previously-stable name as the spec drifts. However, despite the drift, more specs can now correctly generate boilerplate. ##### Parameter binding matrix ([#&#8203;2307](https://github.com/oapi-codegen/oapi-codegen/pull/2307)) The OpenAPI parameter `style` × `explode` × `type` matrix is now fully supported and round-trips consistently across every server backend. Path/query/header/cookie parameters across primitive, array, and object types — including `style: form / spaceDelimited / pipeDelimited / deepObject` × `explode: true/false`, and `style: simple` for headers — generate the same binding logic on every server, and the client-side encoding is symmetric. The internal parameter test suite (`internal/test/parameters/`) now exercises every combination through a server round-trip per backend. If you previously hit an `unsupported style` error, or saw a parameter serialization work under one backend but not another, regenerate and the issue should be gone. You will need to use version `v1.4.0` or higher of `github.com/oapi-codegen/runtime`. ##### Optional / nullable response headers ([#&#8203;2301](https://github.com/oapi-codegen/oapi-codegen/pull/2301)) For strict-server responses, optional and nullable headers now generate as pointer fields (or `nullable.Nullable[T]` when the `nullable-types` output option is set). The generated server only calls `w.Header().Set(...)` when the field is non-nil, so callers can omit optional headers cleanly. Spec: ```yaml responses: '200': headers: X-Required: { required: true, schema: { type: string } } X-Optional: { schema: { type: string } } ``` Before: ```go type GetFoo200ResponseHeaders struct { XRequired string XOptional string // always emitted, even when empty } ``` After: ```go type GetFoo200ResponseHeaders struct { XRequired string XOptional *string // nil → header not sent } ``` To opt out of this change, set `compatibility.headers-implicitly-required: true` to restore the previous always-required behavior. This change breaks enough code that we flagified it. #### 🚀 New features ##### Echo v5 server support ([#&#8203;2188](https://github.com/oapi-codegen/oapi-codegen/pull/2188)) Echo v5 (the upcoming major version) is now a supported server framework. Generate with `generate.echo5-server: true`. Echo v4 is unchanged and remains the target of `generate.echo-server`. ##### Per-handler middleware in Fiber ([#&#8203;2302](https://github.com/oapi-codegen/oapi-codegen/pull/2302)) Fiber generated servers now accept a `HandlerMiddlewares []HandlerMiddlewareFunc` slice in `FiberServerOptions`, applied around every operation handler. The middleware signature is `func(c *fiber.Ctx, next fiber.Handler) error`, matching Fiber's native middleware pattern. Useful for cross-cutting concerns (auth, logging, metrics) that should run after path-level routing but inside the generated-handler boundary. ##### Per-operation middleware in Echo ([#&#8203;2353](https://github.com/oapi-codegen/oapi-codegen/pull/2353)) Echo's `RegisterHandlersWithOptions` now accepts an `OperationMiddlewares map[string][]echo.MiddlewareFunc` keyed by `operationId`, attaching middleware to specific operations at registration time: ```go api.RegisterHandlersWithOptions(e, server, api.RegisterHandlersOptions{ OperationMiddlewares: map[string][]echo.MiddlewareFunc{ "createPet": {authMiddleware, auditMiddleware}, "deletePet": {authMiddleware, adminOnlyMiddleware}, }, }) ``` Operations with no entry in the map (or a `nil` map) are registered with no extra middleware. Available for both Echo v4 and Echo v5 generated servers. ##### Strict-gin error handlers ([#&#8203;1600](https://github.com/oapi-codegen/oapi-codegen/pull/1600)) The Gin strict server now exposes `RequestErrorHandlerFunc` and `ResponseErrorHandlerFunc` on `StrictServerOptions`, matching the pattern already available for the Echo strict server. Bind errors and response-write errors flow through your custom handler instead of using gin's default abort behaviour. Defaults are preserved if you don't set them. *** #### ☢️ Breaking changes - Update external-refs to responses in strict-server to fix an old regression ([#&#8203;2357](https://github.com/oapi-codegen/oapi-codegen/issues/2357)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Overhaul anonymous schema hoisting ([#&#8203;2348](https://github.com/oapi-codegen/oapi-codegen/issues/2348)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Inline strict middleware typedefs ([#&#8203;2271](https://github.com/oapi-codegen/oapi-codegen/issues/2271)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) #### 🎉 Notable changes - Overhaul anonymous schema hoisting ([#&#8203;2348](https://github.com/oapi-codegen/oapi-codegen/issues/2348)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: clean up and test parameter binding ([#&#8203;2307](https://github.com/oapi-codegen/oapi-codegen/issues/2307)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - support optional/nullable response headers ([#&#8203;2301](https://github.com/oapi-codegen/oapi-codegen/issues/2301)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Update all dependencies to Go 1.24 ([#&#8203;2264](https://github.com/oapi-codegen/oapi-codegen/issues/2264)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - feat: multi-pass type name resolution ([#&#8203;2213](https://github.com/oapi-codegen/oapi-codegen/issues/2213)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) #### 🚀 New features and improvements - per-operation middleware in Echo ([#&#8203;2353](https://github.com/oapi-codegen/oapi-codegen/issues/2353)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - support all x-\* extensions and with ref ([#&#8203;1880](https://github.com/oapi-codegen/oapi-codegen/issues/1880)) [@&#8203;paulmach](https://github.com/paulmach) - feat(client): Add ContentType() to ClientWithResponses responses ([#&#8203;2173](https://github.com/oapi-codegen/oapi-codegen/issues/2173)) [@&#8203;CJourneaux](https://github.com/CJourneaux) - Flagify enum validator generation ([#&#8203;2334](https://github.com/oapi-codegen/oapi-codegen/issues/2334)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Strictgin error handler ([#&#8203;1600](https://github.com/oapi-codegen/oapi-codegen/issues/1600)) [@&#8203;actatum](https://github.com/actatum) - Fix a streaming bug + document streaming through example ([#&#8203;1765](https://github.com/oapi-codegen/oapi-codegen/issues/1765)) [@&#8203;perbu](https://github.com/perbu) - Add support for path aliases ([#&#8203;2312](https://github.com/oapi-codegen/oapi-codegen/issues/2312)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: add x-go-name for server urls ([#&#8203;2304](https://github.com/oapi-codegen/oapi-codegen/issues/2304)) [@&#8203;dhpollack](https://github.com/dhpollack) - Support handler-specific middleware for gofiber ([#&#8203;2302](https://github.com/oapi-codegen/oapi-codegen/issues/2302)) [@&#8203;jpetrich](https://github.com/jpetrich) - feat: use http.MethodXXX constants instead of string literals in generated code ([#&#8203;2294](https://github.com/oapi-codegen/oapi-codegen/issues/2294)) [@&#8203;imsugeno](https://github.com/imsugeno) - Generate types from components/securitySchemes to be used as a key in context.WithValue ([#&#8203;1187](https://github.com/oapi-codegen/oapi-codegen/issues/1187)) [@&#8203;nek023](https://github.com/nek023) - feat: Support echo/v5 ([#&#8203;2188](https://github.com/oapi-codegen/oapi-codegen/issues/2188)) [@&#8203;jinuthankachan](https://github.com/jinuthankachan) - feat: multi-pass type name resolution ([#&#8203;2213](https://github.com/oapi-codegen/oapi-codegen/issues/2213)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) #### 🐛 Bug fixes - Route server enums through general enums codegen ([#&#8203;2358](https://github.com/oapi-codegen/oapi-codegen/issues/2358)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Update external-refs to responses in strict-server to fix an old regression ([#&#8203;2357](https://github.com/oapi-codegen/oapi-codegen/issues/2357)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - respect output file path on gofmt failure ([#&#8203;2356](https://github.com/oapi-codegen/oapi-codegen/issues/2356)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Strict server: gate no-content response headers on nullable/optional ([#&#8203;2351](https://github.com/oapi-codegen/oapi-codegen/issues/2351)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Synchronize strict servers ([#&#8203;2350](https://github.com/oapi-codegen/oapi-codegen/issues/2350)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Overhaul anonymous schema hoisting ([#&#8203;2348](https://github.com/oapi-codegen/oapi-codegen/issues/2348)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: allow x-go-type and x-go-type-skip-optional-pointer for allOf ([#&#8203;1610](https://github.com/oapi-codegen/oapi-codegen/issues/1610)) [@&#8203;turip](https://github.com/turip) - Propagate external refs into allOf ([#&#8203;2299](https://github.com/oapi-codegen/oapi-codegen/issues/2299)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Add missing case to type generation traversal ([#&#8203;2298](https://github.com/oapi-codegen/oapi-codegen/issues/2298)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: delegate MarshalJSON on strict response types wrapping union refs ([#&#8203;2332](https://github.com/oapi-codegen/oapi-codegen/issues/2332)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: pointer skipping for client query params ([#&#8203;2330](https://github.com/oapi-codegen/oapi-codegen/issues/2330)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: support x-oapi-codegen-extra-tags on path params in strict-server RequestObject ([#&#8203;2262](https://github.com/oapi-codegen/oapi-codegen/issues/2262)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - sanitize param names for http.ServeMux since they must be valid Go identifiers ([#&#8203;2279](https://github.com/oapi-codegen/oapi-codegen/issues/2279)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Bug Report: demonstration of overlays and allOf not playing together nicely ([#&#8203;2087](https://github.com/oapi-codegen/oapi-codegen/issues/2087)) [@&#8203;nelzblooket](https://github.com/nelzblooket) - fix: include additional types for array response type ([#&#8203;1930](https://github.com/oapi-codegen/oapi-codegen/issues/1930)) [@&#8203;viktorasm](https://github.com/viktorasm) - fix: allOf cycle detection oversight ([#&#8203;2316](https://github.com/oapi-codegen/oapi-codegen/issues/2316)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: avoid stack overflow errors when using heavily recursive types ([#&#8203;1377](https://github.com/oapi-codegen/oapi-codegen/issues/1377)) [@&#8203;yoshikipom](https://github.com/yoshikipom) - fix: Change FormParams to FormValues for Echo v5 ([#&#8203;2311](https://github.com/oapi-codegen/oapi-codegen/issues/2311)) [@&#8203;nicolasmattelaer](https://github.com/nicolasmattelaer) - Fix exploded parameter marshaling and binding inconsistencies ([#&#8203;2184](https://github.com/oapi-codegen/oapi-codegen/issues/2184)) [@&#8203;TelpeNight](https://github.com/TelpeNight) - fix(cli): remove unused `initialism-overrides` option ([#&#8203;2287](https://github.com/oapi-codegen/oapi-codegen/issues/2287)) [@&#8203;gaiaz-iusipov](https://github.com/gaiaz-iusipov) - fix: getting cookie in fiber middleware ([#&#8203;2062](https://github.com/oapi-codegen/oapi-codegen/issues/2062)) [@&#8203;YATAHAKI](https://github.com/YATAHAKI) - Fix typo in echo-v5 middleware import ([#&#8203;2285](https://github.com/oapi-codegen/oapi-codegen/issues/2285)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix(client): correctly marshal `text/plain` requests ([#&#8203;1975](https://github.com/oapi-codegen/oapi-codegen/issues/1975)) [@&#8203;jamietanna](https://github.com/jamietanna) - fix: allow response error handler to set status code ([#&#8203;1963](https://github.com/oapi-codegen/oapi-codegen/issues/1963)) [@&#8203;sean-cunniffe](https://github.com/sean-cunniffe) - AllOf : Only stop when merging schemas with multiple discriminators ([#&#8203;667](https://github.com/oapi-codegen/oapi-codegen/issues/667)) [@&#8203;LelouBil](https://github.com/LelouBil) - fix: use RequiresNilCheck for all params ([#&#8203;2263](https://github.com/oapi-codegen/oapi-codegen/issues/2263)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) #### 📝 Documentation updates - docs: remove non-breaking spaces ([#&#8203;2328](https://github.com/oapi-codegen/oapi-codegen/issues/2328)) [@&#8203;jamietanna](https://github.com/jamietanna) - docs: note that JSON Schema should be pinned ([#&#8203;2266](https://github.com/oapi-codegen/oapi-codegen/issues/2266)) [@&#8203;jamietanna](https://github.com/jamietanna) #### 👻 Maintenance - refactor(codegen): better Swagger compression, modern naming ([#&#8203;1909](https://github.com/oapi-codegen/oapi-codegen/issues/1909)) [@&#8203;gaiaz-iusipov](https://github.com/gaiaz-iusipov) - fix example codegen ([#&#8203;2354](https://github.com/oapi-codegen/oapi-codegen/issues/2354)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Update Greptile settings ([#&#8203;2345](https://github.com/oapi-codegen/oapi-codegen/issues/2345)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Replace old hand written slice sorting with slices package, and other built-in helpers ([#&#8203;2305](https://github.com/oapi-codegen/oapi-codegen/issues/2305)) [@&#8203;gaiaz-iusipov](https://github.com/gaiaz-iusipov) #### 📦 Dependency updates <details> <summary>9 changes</summary> - Update YAML package where possible ([#&#8203;2333](https://github.com/oapi-codegen/oapi-codegen/issues/2333)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - chore(deps): update release-drafter/release-drafter action to v7.2.0 (.github/workflows) ([#&#8203;2322](https://github.com/oapi-codegen/oapi-codegen/issues/2322)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - fix(deps): use updated import path for `github.com/speakeasy-api/openapi/overlay` ([#&#8203;2231](https://github.com/oapi-codegen/oapi-codegen/issues/2231)) [@&#8203;netixx](https://github.com/netixx) - fix(deps): update module github.com/getkin/kin-openapi to v0.135.0 (go.mod) ([#&#8203;2320](https://github.com/oapi-codegen/oapi-codegen/issues/2320)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - Update release-drafter config for V7 ([#&#8203;2317](https://github.com/oapi-codegen/oapi-codegen/issues/2317)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - chore(deps): update release-drafter/release-drafter action to v7 (.github/workflows) ([#&#8203;2293](https://github.com/oapi-codegen/oapi-codegen/issues/2293)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - fix(deps): update module github.com/getkin/kin-openapi to v0.134.0 (go.mod) ([#&#8203;2295](https://github.com/oapi-codegen/oapi-codegen/issues/2295)) [@&#8203;ilia-rassadin-rn](https://github.com/ilia-rassadin-rn) - chore(deps): update release-drafter/release-drafter action to v6.3.0 (.github/workflows) ([#&#8203;2282](https://github.com/oapi-codegen/oapi-codegen/issues/2282)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update oapi-codegen/actions action to v0.6.0 (.github/workflows) ([#&#8203;2273](https://github.com/oapi-codegen/oapi-codegen/issues/2273)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) </details> #### Sponsors We would like to thank our sponsors for their support during this release. <p align="center"> <a href="https://www.devzero.io/lp/dev-environment?utm_campaign=github&utm_source=oapi-codegen%20repo&utm_medium=github%20sponsorship"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/devzero-light.svg"> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/devzero-dark.svg"> <img alt="DevZero logo" src="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/devzero-dark.svg" height="100px"> </picture> </a> </p> <p align="center"> <a href="https://cybozu.co.jp/?utm_source=oapi-codegen+repo&utm_medium=github+sponsorship"> <img alt="Cybozu logo" src="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/cybozu.svg" height="100px"> </a> </p> ### [`v2.6.0`](https://github.com/oapi-codegen/oapi-codegen/releases/tag/v2.6.0): : 7th anniversary release 🎂 [Compare Source](https://github.com/oapi-codegen/oapi-codegen/compare/v2.5.1...v2.6.0) For those that aren't aware, [7 years ago to the day](https://github.com/oapi-codegen/oapi-codegen/commit/e7757a98520dc622499143d9b56bd2046ef1b55e), `oapi-codegen` was born! (Well, technically it's tonight at midnight UTC, but who's splitting hairs?) There's nothing too special planned for today, but we thought it'd be the perfect time to cut ~~a slice of cake~~ a release! #### 🎉 Notable changes ##### New generated code requires `oapi-codegen/runtime` v1.2.0+ As part of [#&#8203;2256](https://github.com/oapi-codegen/oapi-codegen/issues/2256), [`github.com/oapi-codegen/runtime` v1.2.0](https://github.com/oapi-codegen/runtime/releases/tag/v1.2.0) is needed alongside `github.com/oapi-codegen/oapi-codegen`, for new generated code. This is providing a more future-proofed means to bind parameters. See the release notes for the runtime package, and [#&#8203;2256](https://github.com/oapi-codegen/oapi-codegen/issues/2256) for more information. ##### `oapi-codegen` was part of the GitHub Secure Open Source Fund `oapi-codegen` was one of the projects taking part in the third [GitHub Secure Open Source Fund](https://github.com/open-source/github-secure-open-source-fund) session. [We've written up more about what we've learned](https://www.jvt.me/posts/2026/02/17/oapi-codegen-github-secure/), and have some more things to share with you over the coming months about lessons we've learned and improvements we've taken that we can share. We were pretty chuffed to be selected, and it's already helped improve our security posture as a project, which is also very important for the wider ecosystem! ##### `go` directive bump in next release Long-time users will be aware that we work very hard to try and keep our requirement for Go source compatibility, through the `go` directive, especially as we recommend folks use `oapi-codegen` as a source-tracked dependency. For more details about this, see our [Support Model docs](https://github.com/oapi-codegen/oapi-codegen/blob/v2.6.0/SUPPORT.md#minimum-required-go-toolchain-version). In the next minor release, we'll be setting our minimum `go` directive to Go 1.24 ([End-of-Life on 2026-02-11](https://endoflife.date/go)), as it's required for a number of dependencies of ours to be updated any higher, and [a change to the module import path for Speakeasy's OpenAPI Overlay library](https://github.com/oapi-codegen/oapi-codegen/issues/2230) requires us fix this centrally for our users to be able to continue updating their libraries. > \[!NOTE] > Nothing is changing as part of v2.6.0, this is a pre-announcement for v2.7.0. ##### Behind the scenes cleanup There's also been some work behind-the-scenes to try and clean up outstanding issues (of which we know there are many!) that have been fixed, as well as Marcin's work on trying to do some more significant rework of the internals with help from Claude. There's still, as ever, work to go with this - as we've mentioned before, sponsoring our work would be greatly appreciated, so we can continue to put in the work, considering this is a widely used and depended on project. #### 🚀 New features and improvements - feat: Pass schema type/formats to runtime v1.2.0 to allow better parameter serialization ([#&#8203;2256](https://github.com/oapi-codegen/oapi-codegen/issues/2256)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - feat: add Valid() method to generated enum types ([#&#8203;2227](https://github.com/oapi-codegen/oapi-codegen/issues/2227)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Support nullable slice elements and map values ([#&#8203;2185](https://github.com/oapi-codegen/oapi-codegen/issues/2185)) [@&#8203;iamtakingiteasy](https://github.com/iamtakingiteasy) - feat: add configurable type mapping for OpenAPI primitive types ([#&#8203;2223](https://github.com/oapi-codegen/oapi-codegen/issues/2223)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Support unions with multiple mappings pointing to a single underlying type ([#&#8203;2071](https://github.com/oapi-codegen/oapi-codegen/issues/2071)) [@&#8203;tobio](https://github.com/tobio) - feat: add support for custom package alias for external ref imports ([#&#8203;2211](https://github.com/oapi-codegen/oapi-codegen/issues/2211)) [@&#8203;InventivetalentDev](https://github.com/InventivetalentDev) - feat(output-options): add `resolve-type-name-collisions` to avoid name collisions ([#&#8203;200](https://github.com/oapi-codegen/oapi-codegen/issues/200)) [@&#8203;mgurevin](https://github.com/mgurevin) - Adopt fiber middleware template for updated GetReqHeaders() method signature ([#&#8203;1419](https://github.com/oapi-codegen/oapi-codegen/issues/1419)) [@&#8203;getBolted](https://github.com/getBolted) #### 🐛 Bug fixes - fix: qualify external ref schema types in default response codes ([#&#8203;2241](https://github.com/oapi-codegen/oapi-codegen/issues/2241)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: add omitempty to optional nullable fields ([#&#8203;2221](https://github.com/oapi-codegen/oapi-codegen/issues/2221)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix(codegen): generate `nullable.Nullable` in arrays ([#&#8203;2242](https://github.com/oapi-codegen/oapi-codegen/issues/2242)) [@&#8203;jamietanna](https://github.com/jamietanna) - fix: support x-oapi-codegen-extra-tags on parameter schemas ([#&#8203;2232](https://github.com/oapi-codegen/oapi-codegen/issues/2232)) ([#&#8203;2235](https://github.com/oapi-codegen/oapi-codegen/issues/2235)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix(templates/client): correctly nil check query parameters ([#&#8203;2237](https://github.com/oapi-codegen/oapi-codegen/issues/2237)) [@&#8203;jamietanna](https://github.com/jamietanna) - fix(server-urls): restore generation of constants ([#&#8203;2239](https://github.com/oapi-codegen/oapi-codegen/issues/2239)) [@&#8203;jamietanna](https://github.com/jamietanna) - fix(server-urls): use URL in GoDoc if `description` is empty ([#&#8203;2226](https://github.com/oapi-codegen/oapi-codegen/issues/2226)) [@&#8203;jamietanna](https://github.com/jamietanna) - fix: set indentation to 2 when marshalling spec for overlay ([#&#8203;2172](https://github.com/oapi-codegen/oapi-codegen/issues/2172)) [@&#8203;wndhydrnt](https://github.com/wndhydrnt) - fix: handle optional request bodies in strict server mode ([#&#8203;2222](https://github.com/oapi-codegen/oapi-codegen/issues/2222)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix(strict-server): generate correct type for `$ref` text responses ([#&#8203;2225](https://github.com/oapi-codegen/oapi-codegen/issues/2225)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - Fix schema gathering oversight ([#&#8203;2219](https://github.com/oapi-codegen/oapi-codegen/issues/2219)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: handle duplicate path parameters in OpenAPI specs ([#&#8203;2220](https://github.com/oapi-codegen/oapi-codegen/issues/2220)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - fix: escape quoted media type directives ([#&#8203;2217](https://github.com/oapi-codegen/oapi-codegen/issues/2217)) [@&#8203;brahmlower](https://github.com/brahmlower) - Fix Iris strict server for no content case ([#&#8203;1411](https://github.com/oapi-codegen/oapi-codegen/issues/1411)) [@&#8203;ShouheiNishi](https://github.com/ShouheiNishi) - Fixes type collision for enum values that start with \_ (underscore) ([#&#8203;1438](https://github.com/oapi-codegen/oapi-codegen/issues/1438)) [@&#8203;ula](https://github.com/ula) #### 📝 Documentation updates - chore: readme update ([#&#8203;2209](https://github.com/oapi-codegen/oapi-codegen/issues/2209)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - docs: fix link to example ([#&#8203;1884](https://github.com/oapi-codegen/oapi-codegen/issues/1884)) [@&#8203;rkosegi](https://github.com/rkosegi) - docs(extensions): correct links to examples ([#&#8203;1836](https://github.com/oapi-codegen/oapi-codegen/issues/1836)) [@&#8203;yuro241](https://github.com/yuro241) - docs(sponsors): update section ([#&#8203;2195](https://github.com/oapi-codegen/oapi-codegen/issues/2195)) [@&#8203;jamietanna](https://github.com/jamietanna) - docs(sponsors): remove Elastic as a sponsor ([#&#8203;2083](https://github.com/oapi-codegen/oapi-codegen/issues/2083)) [@&#8203;jamietanna](https://github.com/jamietanna) #### 👻 Maintenance - chore(renovate): add module path to security updates + override test-only dependencies' label ([#&#8203;2249](https://github.com/oapi-codegen/oapi-codegen/issues/2249)) [@&#8203;jamietanna](https://github.com/jamietanna) - Configure Greptile code review ([#&#8203;2236](https://github.com/oapi-codegen/oapi-codegen/issues/2236)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - style(gofix): Apply `go fix` ([#&#8203;2229](https://github.com/oapi-codegen/oapi-codegen/issues/2229)) [@&#8203;gaiaz-iusipov](https://github.com/gaiaz-iusipov) - Run golangci-lint on a supported Go version ([#&#8203;2215](https://github.com/oapi-codegen/oapi-codegen/issues/2215)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - refactor(internal): move Fiber tests into their own modules ([#&#8203;2212](https://github.com/oapi-codegen/oapi-codegen/issues/2212)) [@&#8203;mromaszewicz](https://github.com/mromaszewicz) - build: use a re-usable, single, workflow for running CI ([#&#8203;2205](https://github.com/oapi-codegen/oapi-codegen/issues/2205)) [@&#8203;jamietanna](https://github.com/jamietanna) - fix(renovate): only run `make tidy` after Go module updates ([#&#8203;2159](https://github.com/oapi-codegen/oapi-codegen/issues/2159)) [@&#8203;jamietanna](https://github.com/jamietanna) - chore(renovate): run `make tidy` after dependency updates to `go.mod` ([#&#8203;2150](https://github.com/oapi-codegen/oapi-codegen/issues/2150)) [@&#8203;jamietanna](https://github.com/jamietanna) #### 📦 Dependency updates <details> <summary>8 changes</summary> - chore(deps): update module github.com/golangci/golangci-lint to v2.10.1 (makefile) ([#&#8203;2153](https://github.com/oapi-codegen/oapi-codegen/issues/2153)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update github/codeql-action action to v4.32.4 (.github/workflows) ([#&#8203;2157](https://github.com/oapi-codegen/oapi-codegen/issues/2157)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update actions/setup-go action to v6.3.0 (.github/workflows) ([#&#8203;2164](https://github.com/oapi-codegen/oapi-codegen/issues/2164)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update actions/checkout action to v6 (.github/workflows) - autoclosed ([#&#8203;2165](https://github.com/oapi-codegen/oapi-codegen/issues/2165)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update release-drafter/release-drafter action to v6.2.0 (.github/workflows) ([#&#8203;2253](https://github.com/oapi-codegen/oapi-codegen/issues/2253)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update actions/upload-artifact action to v7 (.github/workflows) ([#&#8203;2254](https://github.com/oapi-codegen/oapi-codegen/issues/2254)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update dessant/label-actions action to v5 (.github/workflows) ([#&#8203;2255](https://github.com/oapi-codegen/oapi-codegen/issues/2255)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) - chore(deps): update release-drafter/release-drafter action to v6.1.0 (.github/workflows) ([#&#8203;2132](https://github.com/oapi-codegen/oapi-codegen/issues/2132)) @&#8203;[renovate\[bot\]](https://github.com/apps/renovate) </details> #### Sponsors We would like to thank our sponsors for their support during this release. <p align="center"> <a href="https://www.devzero.io/lp/dev-environment?utm_campaign=github&utm_source=oapi-codegen%20repo&utm_medium=github%20sponsorship"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/devzero-light.svg"> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/devzero-dark.svg"> <img alt="DevZero logo" src="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/devzero-dark.svg" height="100px"> </picture> </a> </p> <p align="center"> <a href="https://cybozu.co.jp/?utm_source=oapi-codegen+repo&utm_medium=github+sponsorship"> <img alt="Cybozu logo" src="https://raw.githubusercontent.com/oapi-codegen/oapi-codegen/v2.6.0/.github/sponsors/cybozu.svg" height="100px"> </a> </p> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43Mi4wIiwidXBkYXRlZEluVmVyIjoiNDMuNzcuOCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 7f1aaab244 to ca2bb8c610 2026-03-07 05:15:00 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from ca2bb8c610 to 06aacdbe2b 2026-03-07 07:15:04 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 06aacdbe2b to dcf357e4e2 2026-03-08 12:10:39 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from dcf357e4e2 to 9895826dd1 2026-03-19 03:11:56 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 9895826dd1 to 16f23deb9f 2026-03-19 04:07:04 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 16f23deb9f to 196cec5d3c 2026-03-19 05:07:27 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 196cec5d3c to 2b27f57311 2026-03-19 08:07:36 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 2b27f57311 to 5647df3072 2026-03-23 03:07:54 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 5647df3072 to fcdb5ecd9c 2026-03-25 06:07:39 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 5647df3072 to 6741579000 2026-03-25 07:07:41 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 6741579000 to 8a36488845 2026-03-26 04:07:47 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 8a36488845 to 74dbb77cf9 2026-03-27 11:07:46 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 74dbb77cf9 to a2b214f12f 2026-04-09 11:10:26 +00:00 Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from a2b214f12f to f6b9c974e1
Some checks failed
renovate/artifacts Artifact file update failure
2026-04-09 12:08:34 +00:00
Compare
Author
Collaborator

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: go.sum
Command failed: go get -t ./...
go: git.happydns.org/happyDeliver/internal/api imports
	git.happydns.org/happyDeliver/internal/model: cannot find module providing package git.happydns.org/happyDeliver/internal/model

### ⚠️ Artifact update problem Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is. ♻ Renovate will retry this branch, including artifacts, only when one of the following happens: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: go.sum ``` Command failed: go get -t ./... go: git.happydns.org/happyDeliver/internal/api imports git.happydns.org/happyDeliver/internal/model: cannot find module providing package git.happydns.org/happyDeliver/internal/model ```
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from f6b9c974e1
Some checks failed
renovate/artifacts Artifact file update failure
to 7c6ff124e7
Some checks failed
renovate/artifacts Artifact file update failure
2026-04-17 07:07:35 +00:00
Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 7c6ff124e7
Some checks failed
renovate/artifacts Artifact file update failure
to 9f5e52a96e
Some checks failed
renovate/artifacts Artifact file update failure
2026-04-28 10:07:42 +00:00
Compare
renovate-bot force-pushed renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x from 9f5e52a96e
Some checks failed
renovate/artifacts Artifact file update failure
to d7b386d33c
Some checks failed
renovate/artifacts Artifact file update failure
2026-05-01 17:07:37 +00:00
Compare
renovate-bot changed title from chore(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to v2.6.0 to chore(deps): update module github.com/oapi-codegen/oapi-codegen/v2 to v2.7.0 2026-05-01 17:07:40 +00:00
nemunaire merged commit 6f6211e833 into master 2026-05-04 03:14:23 +00:00
nemunaire deleted branch renovate/github.com-oapi-codegen-oapi-codegen-v2-2.x 2026-05-04 03:14:23 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
happyDomain/happyDeliver!71
No description provided.