Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
4949f28
[BUG][Java][Spring][SpringBoot] optional array with 'minItems' set ge…
Jan 23, 2026
61e4916
[BUG][Java][Spring][SpringBoot] optional array with 'minItems' set ge…
kingofdisasterr Jan 23, 2026
c4c0239
[BUG] [HTML] Fix html array types (#22795)
madsvonqualen Jan 24, 2026
ab44f6e
Repaired partial_header include for generator csharp (#22442)
ACanisLupus Jan 24, 2026
dd4a722
Fix isRelativeUrl incorrectly detecting URLs containing @, -, ~, . as…
Romanow88 Jan 24, 2026
049e1ed
[swift6][client] make api calls concurrent (#22790)
4brunu Jan 24, 2026
9e33e20
[swift6][client] improve swift 6 thread safety (#22801)
4brunu Jan 24, 2026
e8aa450
[swift6][client] Add new hooks to OpenAPIInterceptor (#22800)
4brunu Jan 25, 2026
97080c9
[dotnet] update samples (#22803)
4brunu Jan 25, 2026
ddc2e3d
[swift6][client] Increase minimum supported SDK to accommodate swift …
4brunu Jan 25, 2026
f49b369
[swift6] fix Vapor build, disable swift 5 tests on CI and enable more…
4brunu Jan 25, 2026
7650f7f
build(deps): bump lodash (#22804)
dependabot[bot] Jan 26, 2026
7677dbb
Add create requestOpts method to {{classname}}Interface #21708 (#21709)
azertyalex Jan 26, 2026
cdbe28e
[BUG][typescript-angular] apiKeys cause service compilation errors (#…
saxicek Jan 26, 2026
75f5be9
[swift6][client] Remove unnecessary Combine checks (#22810)
4brunu Jan 26, 2026
f67080e
update TS samples
wing328 Jan 26, 2026
3644a20
Revert "Add create requestOpts method to {{classname}}Interface #2170…
macjohnny Jan 26, 2026
2fef10f
Generate request config typescript fetch v2 (#22815)
azertyalex Jan 26, 2026
334e8ee
[csharp][generichost] Add HTTP client name to fix client duplicity (#…
McMlok Jan 26, 2026
fb1298a
added xml comments and restrict some access (#22796)
devhl-labs Jan 26, 2026
633bb18
update c# samples
wing328 Jan 26, 2026
5177926
build(deps-dev): bump org.assertj:assertj-core (#22818)
dependabot[bot] Jan 27, 2026
9772009
[Rust] Update reqwest to 0.13 and reqwest-middleware to 0.5 (#22816)
adi-code Jan 27, 2026
3f87e8f
Update python-multipart to newer version (#22821)
wing328 Jan 27, 2026
2d23c0c
[python-fastapi] Set python version to 3.10 (#22823)
wing328 Jan 27, 2026
2f5c840
update assertj to newer version (#22824)
wing328 Jan 27, 2026
3b034f0
[php][php-nextgen] Fix nullability when multiple response types are p…
JulianVennen Jan 27, 2026
562111d
feat(typescript): Update isomorphic-fetch file to allow for response …
Rezrazi Jan 27, 2026
46deae3
Merge remote-tracking branch 'refs/remotes/origin/issue_22784' into i…
Jan 27, 2026
93dece7
generated samples
kingofdisasterr Jan 27, 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/samples-python-fastapi-server.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- uses: actions/checkout@v5
- uses: actions/setup-python@v6
with:
python-version: '3.9'
python-version: '3.10'
- name: Install dependencies
working-directory: ${{ matrix.sample }}
run: |
Expand Down
6 changes: 6 additions & 0 deletions bin/configs/html.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
generatorName: html
outputDir: samples/documentation/html
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/htmlDocs
additionalProperties:
hideGenerationTimestamp: "true"
2 changes: 1 addition & 1 deletion bin/configs/swift6-vapor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ generateAliasAsModel: true
additionalProperties:
projectName: PetstoreClient
useSPMFileStructure: true
useClasses: true
useClasses: false
useBacktickEscapes: true
mapFileBinaryToData: true
9 changes: 0 additions & 9 deletions bitrise.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,6 @@ workflows:
set -e

./samples/client/petstore/swift6/swift6_test_all.sh
- script@1.2.0:
title: Run Swift5 tests
inputs:
- content: |
#!/usr/bin/env bash

set -e

./samples/client/petstore/swift5/swift5_test_all.sh
- script@1.2.0:
title: Run swift-combine tests
inputs:
Expand Down
2 changes: 1 addition & 1 deletion modules/openapi-generator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.23.1</version>
<version>3.27.7</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1326,8 +1326,8 @@ public String toDefaultValue(CodegenProperty cp, Schema schema) {
// if default to empty container option is set, respect the default values provided in the spec
return toArrayDefaultValue(cp, schema);
} else if (schema.getDefault() == null) {
// nullable or containerDefaultToNull set to true
if (cp.isNullable || containerDefaultToNull) {
// nullable or containerDefaultToNull set to true or an optional array with minItems > 0
if (cp.isNullable || containerDefaultToNull || (cp.minItems != null && cp.minItems > 0 && !cp.getHasRequired())) {
return null;
}
return getDefaultCollectionType(schema);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,11 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<Mo
String phpReturnType = String.join("|", phpReturnTypeOptions);
String docReturnType = String.join("|", docReturnTypeOptions);
if (hasEmptyResponse) {
phpReturnType = "?" + phpReturnType;
if (phpReturnTypeOptions.size() > 1) {
phpReturnType = phpReturnType + "|null";
} else {
phpReturnType = "?" + phpReturnType;
}
docReturnType = docReturnType + "|null";
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ public void postProcess() {

@Override
public String generatorLanguageVersion() {
return "3.7";
return "3.10";
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ private static URL getDefaultUrl() {
public static boolean isRelativeUrl(List<Server> servers) {
if (servers != null && servers.size() > 0) {
final Server firstServer = servers.get(0);
return Pattern.matches("^(\\/[\\w\\d]+)+", firstServer.getUrl());
return Pattern.matches("^(\\/[\\w\\d.~@-]+)+", firstServer.getUrl());
}
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@
{{/useJakartaEe}}
<threetenbp-version>2.9.10</threetenbp-version>
<maven-plugin-version>1.0.0</maven-plugin-version>
<assertj-version>3.23.1</assertj-version>
<assertj-version>3.27.7</assertj-version>
<junit-version>5.10.2</junit-version>
</properties>
</project>
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{>partial_header}}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{>partial_header}}
using System;
using Microsoft.Extensions.DependencyInjection;
using {{packageName}}.{{apiPackage}};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand Down Expand Up @@ -53,4 +54,4 @@ namespace {{packageName}}.{{clientPackage}}
parseQueryString[ClientUtils.ApiKeyHeaderToString(Header)] = Uri.EscapeDataString(_raw).ToString(){{nrt!}};
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{>partial_header}}
using System;

namespace {{packageName}}.{{clientPackage}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand Down Expand Up @@ -43,4 +44,4 @@ namespace {{packageName}}.{{clientPackage}}
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", {{packageName}}.Client.ClientUtils.Base64Encode(_username + ":" + _password));
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand Down Expand Up @@ -38,4 +39,4 @@ namespace {{packageName}}.{{clientPackage}}
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand All @@ -19,4 +20,4 @@ namespace {{packageName}}.{{clientPackage}}
/// </summary>
public System.Net.CookieContainer Value { get; } = new System.Net.CookieContainer();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{>partial_header}}
using System;

namespace {{packageName}}.{{clientPackage}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ namespace {{packageName}}.{{clientPackage}}

List<IHttpClientBuilder> builders = new List<IHttpClientBuilder>();

{{#apiInfo}}{{#apis}}builders.Add(_services.AddHttpClient<{{interfacePrefix}}{{classname}}, {{classname}}>(client));
{{#apiInfo}}{{#apis}}builders.Add(_services.AddHttpClient<{{interfacePrefix}}{{classname}}, {{classname}}>("{{packageName}}.{{apiPackage}}.{{interfacePrefix}}{{classname}}", client));
{{/apis}}{{/apiInfo}}
if (builder != null)
foreach (IHttpClientBuilder instance in builders)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand Down Expand Up @@ -42,4 +43,4 @@ namespace {{packageName}}.{{clientPackage}}
request.Headers.Add(signedHeader.Key, signedHeader.Value);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{>partial_header}}
using System.Net.Http;

namespace {{packageName}}.{{apiPackage}}
Expand All @@ -12,4 +13,4 @@ namespace {{packageName}}.{{apiPackage}}
/// </summary>
HttpClient HttpClient { get; }
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand All @@ -26,4 +27,4 @@ namespace {{packageName}}.{{clientPackage}}
Options = options;
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand Down Expand Up @@ -38,4 +39,4 @@ namespace {{packageName}}.{{clientPackage}}
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", _raw);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ namespace {{packageName}}.{{clientPackage}}
/// <typeparam name="TTokenBase"></typeparam>
{{>visibility}} class RateLimitProvider<TTokenBase> : TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
public Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>{{/net70OrLater}}();
/// <summary>
/// Dictionary mapping header names to channels of available tokens for rate limiting.
/// Each channel buffers tokens that have become available and are ready for use.
/// </summary>
protected internal Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>> AvailableTokens { get; } = new{{^net70OrLater}} Dictionary<string, global::System.Threading.Channels.Channel<TTokenBase>>{{/net70OrLater}}();

/// <summary>
/// Instantiates a ThrottledTokenProvider. Your tokens will be rate limited based on the token's timeout.
Expand Down Expand Up @@ -85,7 +89,7 @@ namespace {{packageName}}.{{clientPackage}}
}

/// <inheritdoc/>
public override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}})
protected internal override async System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}})
{
if (!AvailableTokens.TryGetValue(header, out global::System.Threading.Channels.Channel<TTokenBase>{{nrt?}} tokens))
throw new KeyNotFoundException($"Could not locate a token for header '{header}'.");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand All @@ -17,11 +18,18 @@ namespace {{packageName}}.{{clientPackage}}
private object _nextAvailableLock = new object();
private readonly System.Timers.Timer _timer = new System.Timers.Timer();


internal TimeSpan? Timeout { get; set; }

/// <summary>
/// Delegate for token availability notification events.
/// </summary>
/// <param name="sender">The token that became available.</param>
public delegate void TokenBecameAvailableEventHandler(object sender);
public event TokenBecameAvailableEventHandler{{nrt?}} TokenBecameAvailable;

/// <summary>
/// Event raised when a rate-limited token becomes available for use.
/// </summary>
public event TokenBecameAvailableEventHandler{{nrt?}} TokenBecameAvailable;

/// <summary>
/// Initialize a TokenBase object.
Expand All @@ -35,7 +43,6 @@ namespace {{packageName}}.{{clientPackage}}
StartTimer(Timeout.Value);
}


/// <summary>
/// Starts the token's timer
/// </summary>
Expand Down Expand Up @@ -70,4 +77,4 @@ namespace {{packageName}}.{{clientPackage}}
TokenBecameAvailable.Invoke(this);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// <auto-generated>
{{partial_header}}
{{>partial_header}}

{{#nrt}}
#nullable enable

Expand Down Expand Up @@ -36,4 +37,4 @@ namespace {{packageName}}.{{clientPackage}}
Tokens = tokens.ToList();
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ namespace {{packageName}}
/// </summary>
{{>visibility}} abstract class TokenProvider<TTokenBase> where TTokenBase : TokenBase
{
public abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}});
/// <summary>
/// Gets a token asynchronously for the specified header.
/// </summary>
/// <param name="header">The header name to retrieve a token for. Empty string for non-API-key authentication schemes.</param>
/// <param name="cancellation">Cancellation token for the asynchronous operation.</param>
/// <returns>A task that returns the requested token.</returns>
protected internal abstract System.Threading.Tasks.ValueTask<TTokenBase> GetAsync(string header = "", System.Threading.CancellationToken cancellation = default{{^netstandard20OrLater}}(global::System.Threading.CancellationToken){{/netstandard20OrLater}});
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{{#isBodyParam}}<div class="param">{{baseName}} {{#baseType}}<a href="#{{baseType}}">{{baseType}}</a>{{/baseType}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>
{{#isBodyParam}}<div class="param">{{baseName}} {{#isContainer}}{{containerType}}[{{/isContainer}}{{#baseType}}<a href="#{{baseType}}">{{baseType}}</a>{{/baseType}}{{#isContainer}}]{{/isContainer}} {{^required}}(optional){{/required}}{{#required}}(required){{/required}}</div>

<div class="param-desc"><span class="param-type">Body Parameter</span> &mdash; {{unescapedDescription}} {{#defaultValue}}default: {{{.}}}{{/defaultValue}}</div>{{/isBodyParam}}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ orjson==3.9.15
promise==2.3
pydantic>=2
python-dotenv==0.17.1
python-multipart==0.0.18
python-multipart==0.0.22
PyYAML>=5.4.1,<6.1.0
requests==2.32.4
Rx==1.6.1
Expand Down
Loading