Skip to content
This repository was archived by the owner on May 9, 2025. It is now read-only.

Commit 6e4317d

Browse files
committed
Merge branch 'master' into feature-sets-meta
* master: (28 commits) [meta] Support Kotlin meta generator (OpenAPITools#4156) [Go][Server] minor enhancement to the template (OpenAPITools#4417) Replace the old ResourceSupport (OpenAPITools#4426) [Core, Rust Server, ASP.NET Core] Fix Codegen Operation Scope Consistency (OpenAPITools#3495) Add Go Server featureCORS option (OpenAPITools#4400) Fix treatment of nullable types in a few more places (OpenAPITools#4315) prefix local variable with localVar (OpenAPITools#4402) [kotlin][client] gson complete integration (OpenAPITools#4332) [kotlin] [bugfix] [maven-plugin]: prevent ClassCastException with boolean config options (OpenAPITools#4361) add sbt, bazel to integration (OpenAPITools#4416) Add a blog post tutorial about generating Java clients using OpenAPI v3 (OpenAPITools#4405) add freshcells to company list (OpenAPITools#4414) Update isSet when the object is received from callback. (OpenAPITools#4385) Ruby client nullable (OpenAPITools#4391) Fixes Kotlin client property names that include a dollar sign for template override (OpenAPITools#4351) [Python] [Performance] Avoid unnessacary checks inside the loop (OpenAPITools#4305) Add QEDIT as a company that's using OpenAPI Generator (OpenAPITools#4392) update cpp flag for pistache (OpenAPITools#4386) Feature optional emit default values (OpenAPITools#4347) skip the test as async call may have finished (OpenAPITools#4377) ...
2 parents 6e4e159 + 357f6ca commit 6e4317d

File tree

445 files changed

+8944
-1478
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

445 files changed

+8944
-1478
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
- [ ] Read the [contribution guidelines](https://github.com/openapitools/openapi-generator/blob/master/CONTRIBUTING.md).
77
- [ ] If contributing template-only or documentation-only changes which will change sample output, [build the project](https://github.com/OpenAPITools/openapi-generator#14---build-projects) before.
88
- [ ] Run the shell script(s) under `./bin/` (or Windows batch scripts under`.\bin\windows`) to update Petstore samples related to your fix. This is important, as CI jobs will verify _all_ generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run `./bin/{LANG}-petstore.sh`, `./bin/openapi3/{LANG}-petstore.sh` if updating the code or mustache templates for a language (`{LANG}`) (e.g. php, ruby, python, etc).
9-
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `4.1.x`, `5.0.x`. Default: `master`.
9+
- [ ] File the PR against the [correct branch](https://github.com/OpenAPITools/openapi-generator/wiki/Git-Branches): `master`, `4.3.x`, `5.0.x`. Default: `master`.
1010
- [ ] Copy the [technical committee](https://github.com/openapitools/openapi-generator/#62---openapi-generator-technical-committee) to review the pull request if your PR is targeting a particular programming language.

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ script:
138138
# test maven plugin
139139
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/java-client.xml
140140
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/multi-module/pom.xml
141+
- mvn clean compile -f modules/openapi-generator-maven-plugin/examples/kotlin.xml
141142
# test gradle plugin
142143
- (cd modules/openapi-generator-gradle-plugin/samples/local-spec && ./gradlew buildGoSdk)
143144
- (cd modules/openapi-generator-gradle-plugin/samples/local-spec && ./gradlew openApiGenerate)

CI/samples.ci/client/petstore/java/test-manual/okhttp-gson/api/PetApiTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,6 @@ public void onDownloadProgress(long bytesRead, long contentLength, boolean done)
128128
//empty
129129
}
130130
});
131-
// the API call should be executed asynchronously, so result should be empty at the moment
132-
assertTrue(result.isEmpty());
133131

134132
// wait for the asynchronous call to finish (at most 10 seconds)
135133
final int maxTry = 10;

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
[![Windows Test](https://ci.appveyor.com/api/projects/status/github/openapitools/openapi-generator?branch=master&svg=true&passingText=Windows%20Test%20-%20OK&failingText=Windows%20Test%20-%20Fails)](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu)
99
[![JDK11 Build](https://cloud.drone.io/api/badges/OpenAPITools/openapi-generator/status.svg?ref=refs/heads/master)](https://cloud.drone.io/OpenAPITools/openapi-generator)
1010

11+
[`4.3.x`](https://github.com/OpenAPITools/openapi-generator/tree/4.3.x) branch: [![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/4.3.x.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator)
12+
[![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator/tree/4.3.x.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator)
13+
[![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=4.3.x)](https://app.shippable.com/github/OpenAPITools/openapi-generator)
14+
[![Windows Test](https://ci.appveyor.com/api/projects/status/github/openapitools/openapi-generator?branch=4.3.x&svg=true&passingText=Windows%20Test%20-%20OK&failingText=Windows%20Test%20-%20Fails)](https://ci.appveyor.com/project/WilliamCheng/openapi-generator-wh2wu)
15+
[![JDK11 Build](https://cloud.drone.io/api/badges/OpenAPITools/openapi-generator/status.svg?ref=refs/heads/4.3.x)](https://cloud.drone.io/OpenAPITools/openapi-generator)
16+
1117
[`5.0.x`](https://github.com/OpenAPITools/openapi-generator/tree/5.0.x) branch: [![Build Status](https://img.shields.io/travis/OpenAPITools/openapi-generator/5.0.x.svg?label=Integration%20Test)](https://travis-ci.org/OpenAPITools/openapi-generator)
1218
[![Integration Test2](https://circleci.com/gh/OpenAPITools/openapi-generator/tree/5.0.x.svg?style=shield)](https://circleci.com/gh/OpenAPITools/openapi-generator)
1319
[![Run Status](https://api.shippable.com/projects/5af6bf74e790f4070084a115/badge?branch=5.0.x)](https://app.shippable.com/github/OpenAPITools/openapi-generator)
@@ -516,7 +522,7 @@ Please refer to [customization.md](docs/customization.md) on how to customize th
516522

517523
### [3.2 - Workflow Integration (Maven, Gradle, Github, CI/CD)](#table-of-contents)
518524

519-
Please refer to [integration.md](docs/integration.md) on how to integrate OpenAPI generator with Maven, Gradle, Github and CI/CD.
525+
Please refer to [integration.md](docs/integration.md) on how to integrate OpenAPI generator with Maven, Gradle, sbt, Bazel, Github and CI/CD.
520526

521527
### [3.3 - Online OpenAPI generator](#table-of-contents)
522528

@@ -578,6 +584,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
578584
- [Element AI](https://www.elementai.com/)
579585
- [Fenergo](https://www.fenergo.com/)
580586
- [FormAPI](https://formapi.io/)
587+
- [FreshCells](https://www.freshcells.de/)
581588
- [Fuse](https://www.fuse.no/)
582589
- [Gantner](https://www.gantner.com)
583590
- [GenFlow](https://github.com/RepreZen/GenFlow)
@@ -587,6 +594,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
587594
- [IBM](https://www.ibm.com/)
588595
- [JustStar](https://www.juststarinfo.com)
589596
- [Klarna](https://www.klarna.com/)
597+
- [Kronsoft Development](https://www.kronsoft.ro/home/)
590598
- [Médiavision](https://www.mediavision.fr/)
591599
- [Metaswitch](https://www.metaswitch.com/)
592600
- [Myworkout](https://myworkout.com)
@@ -596,6 +604,8 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
596604
- [Ponicode](https://ponicode.dev/)
597605
- [Pricefx](https://www.pricefx.com/)
598606
- [Prometheus/Alertmanager](https://github.com/prometheus/alertmanager)
607+
- [QEDIT](https://qed-it.com)
608+
- [Qulix Systems](https://www.qulix.com)
599609
- [Raiffeisen Schweiz Genossenschaft](https://www.raiffeisen.ch)
600610
- [RedHat](https://www.redhat.com)
601611
- [RepreZen API Studio](https://www.reprezen.com/swagger-openapi-code-generation-api-first-microservices-enterprise-development)
@@ -678,6 +688,7 @@ Here are some companies/projects (alphabetical order) using OpenAPI Generator in
678688
- 2019-10-16 - [How to ship APIs faster?](https://medium.com/@accounts_76224/how-to-ship-apis-faster-cabef2f819e4) by [Simon Guilliams @ PoniCode](https://ponicode.dev)
679689
- 2019-10-22 - [OpenAPI + Spring Boot(Kotlin)でファイルダウンロードAPIを作成する](https://qiita.com/boronngo/items/4b78b92526209daeaee9) by [Yuki Furukawa](https://twitter.com/yuki_furukawa5)
680690
- 2019-10-24 - [Microprofile OpenAPI - Code First or Design First?](https://github.com/pe-st/apidocs/blob/master/MicroProfile-OpenAPI-all-slides.pdf) by [Peter [pɛʃə] Steiner](https://twitter.com/pesche) at [eclipsecon Europe 2019](https://www.eclipsecon.org/europe2019/sessions/microprofile-openapi-code-first-or-design-first)
691+
- 2019-11-06 - [Generating API clients based on OpenAPI v3 specifications](https://98elements.com/blog/generating-api-clients-based-on-openapi-v3-specifications) by [Dominik Jastrzębski @ 98elements](https://98elements.com)
681692

682693
## [6 - About Us](#table-of-contents)
683694

bin/kotlin-client-all.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/sh
22

3+
./bin/kotlin-client-gson.sh
34
./bin/kotlin-client-nonpublic.sh
45
./bin/kotlin-client-okhttp3.sh
56
./bin/kotlin-client-petstore-multiplatform.sh

bin/kotlin-client-gson.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/sh
2+
3+
SCRIPT="$0"
4+
echo "# START SCRIPT: $SCRIPT"
5+
6+
while [ -h "$SCRIPT" ] ; do
7+
ls=$(ls -ld "$SCRIPT")
8+
link=$(expr "$ls" : '.*-> \(.*\)$')
9+
if expr "$link" : '/.*' > /dev/null; then
10+
SCRIPT="$link"
11+
else
12+
SCRIPT=$(dirname "$SCRIPT")/"$link"
13+
fi
14+
done
15+
16+
if [ ! -d "${APP_DIR}" ]; then
17+
APP_DIR=$(dirname "$SCRIPT")/..
18+
APP_DIR=$(cd "${APP_DIR}"; pwd)
19+
fi
20+
21+
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
22+
23+
if [ ! -f "$executable" ]
24+
then
25+
mvn -B clean package
26+
fi
27+
28+
# if you've executed sbt assembly previously it will use that instead.
29+
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
30+
ags="generate -t modules/openapi-generator/src/main/resources/kotlin-client -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g kotlin --artifact-id kotlin-petstore-gson --additional-properties serializationLibrary=gson -o samples/client/petstore/kotlin-gson $@"
31+
32+
java ${JAVA_OPTS} -jar ${executable} ${ags}

bin/kotlin-client-nonpublic.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,3 @@ export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
3030
ags="generate -t modules/openapi-generator/src/main/resources/kotlin-client -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g kotlin --artifact-id kotlin-petstore-nonpublic --additional-properties nonPublicApi=true -o samples/client/petstore/kotlin-nonpublic $@"
3131

3232
java ${JAVA_OPTS} -jar ${executable} ${ags}
33-
34-
cp CI/samples.ci/client/petstore/kotlin-string/pom.xml samples/client/petstore/kotlin-string/pom.xml

bin/kotlin-client-okhttp3.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,3 @@ export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
3030
ags="generate -t modules/openapi-generator/src/main/resources/kotlin-client -i modules/openapi-generator/src/test/resources/2_0/petstore.yaml -g kotlin --artifact-id kotlin-petstore-okhttp3 --library jvm-okhttp3 -o samples/client/petstore/kotlin-okhttp3 $@"
3131

3232
java ${JAVA_OPTS} -jar ${executable} ${ags}
33-
34-
#cp CI/samples.ci/client/petstore/kotlin-okhttp3/pom.xml samples/client/petstore/kotlin-okhttp3/pom.xml

bin/meta-codegen-kotlin.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/bin/sh
2+
3+
SCRIPT="$0"
4+
echo "# START SCRIPT: $SCRIPT"
5+
6+
if ! command -v gradle > /dev/null; then
7+
echo "[WARN] This script requires a system gradle to be installed. Not treating this as an error."
8+
exit 0
9+
fi
10+
11+
while [ -h "$SCRIPT" ] ; do
12+
ls=`ls -ld "$SCRIPT"`
13+
link=`expr "$ls" : '.*-> \(.*\)$'`
14+
if expr "$link" : '/.*' > /dev/null; then
15+
SCRIPT="$link"
16+
else
17+
SCRIPT=`dirname "$SCRIPT"`/"$link"
18+
fi
19+
done
20+
21+
if [ ! -d "${APP_DIR}" ]; then
22+
APP_DIR=`dirname "$SCRIPT"`/..
23+
APP_DIR=`cd "${APP_DIR}"; pwd`
24+
fi
25+
26+
executable="./modules/openapi-generator-cli/target/openapi-generator-cli.jar"
27+
28+
if [ ! -f "$executable" ]
29+
then
30+
./mvnw -B clean package
31+
fi
32+
33+
\rm -rf "samples/meta-codegen-kotlin/lib"
34+
35+
export JAVA_OPTS="${JAVA_OPTS} -Xmx1024M -DloggerPath=conf/log4j.properties"
36+
ags="meta -n myClientCodegen -t DOCUMENTATION -p com.my.company.codegen -o samples/meta-codegen-kotlin/lib -l kotlin $@"
37+
38+
java $JAVA_OPTS -jar $executable $ags
39+
40+
if [ ! -f samples/meta-codegen-kotlin/gradle/wrapper/gradle-wrapper.jar ]; then
41+
(cd samples/meta-codegen-kotlin/ && gradle wrapper --gradle-version 5.6.2 --distribution-type bin)
42+
fi
43+
44+
45+
(cp samples/meta-codegen-kotlin/gradlew samples/meta-codegen-kotlin/lib/ && \
46+
cp -R samples/meta-codegen-kotlin/gradle samples/meta-codegen-kotlin/lib/ && \
47+
cd samples/meta-codegen-kotlin/lib && \
48+
./gradlew shadowJar)
49+
50+
ags2="generate -g myClientCodegen -i modules/openapi-generator/src/test/resources/2_0/petstore.json -o samples/meta-codegen-kotlin/usage $@"
51+
52+
java $JAVA_OPTS -cp samples/meta-codegen-kotlin/lib/build/libs/my-client-codegen-openapi-generator-1.0-SNAPSHOT-all.jar:$executable org.openapitools.codegen.OpenAPIGenerator $ags2

bin/utils/openapi-generator-cli.sh

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ set -o pipefail
2222

2323
for cmd in {mvn,jq,curl}; do
2424
if ! command -v ${cmd} > /dev/null; then
25-
>&2 echo "This script requires '${cmd}' to be installed."
25+
>&2 echo "This script requires '${cmd}' to be installed."
2626
exit 1
2727
fi
2828
done
@@ -42,7 +42,18 @@ artifactid=openapi-generator-cli
4242
ver=${OPENAPI_GENERATOR_VERSION:-$(latest.tag $ghrepo)}
4343

4444
jar=${artifactid}-${ver}.jar
45-
DIR=${OPENAPI_GENERATOR_DOWLOAD_CACHE_DIR:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"}
45+
46+
# TODO: Remove OPENAPI_GENERATOR_DOWLOAD_CACHE_DIR for release 5.0
47+
if [ -n "${OPENAPI_GENERATOR_DOWLOAD_CACHE_DIR}" ]; then
48+
>&2 printf "[WARN] Variable OPENAPI_GENERATOR_DOWLOAD_CACHE_DIR is misspelled.\nPlease change to OPENAPI_GENERATOR_DOWNLOAD_CACHE_DIR. This option will be removed in the 5.0 release.\n"
49+
fi
50+
cachedir=${OPENAPI_GENERATOR_DOWNLOAD_CACHE_DIR:-"$OPENAPI_GENERATOR_DOWLOAD_CACHE_DIR"}
51+
52+
DIR=${cachedir:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"}
53+
54+
if [ ! -d "${DIR}" ]; then
55+
mkdir -p "${DIR}"
56+
fi
4657

4758
if [ ! -f ${DIR}/${jar} ]; then
4859
repo="central::default::https://repo1.maven.org/maven2/"

docs/generators/csharp-netcore.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ sidebar_label: csharp-netcore
1919
|returnICollection|Return ICollection<T> instead of the concrete type.| |false|
2020
|optionalMethodArgument|C# Optional method argument, e.g. void square(int x=10) (.net 4.0+ only).| |true|
2121
|optionalAssemblyInfo|Generate AssemblyInfo.cs.| |true|
22+
|optionalEmitDefaultValues|Set DataMember's EmitDefaultValue.| |false|
2223
|optionalProjectFile|Generate {PackageName}.csproj.| |true|
2324
|nonPublicApi|Generates code with reduced access modifiers; allows embedding elsewhere without exposing non-public API calls to consumers.| |false|
2425
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|

docs/generators/go-server.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ sidebar_label: go-server
1010
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
1111
|sourceFolder|source folder for generated code| |go|
1212
|serverPort|The network port the generated server binds to| |8080|
13+
|featureCORS|Enable Cross-Origin Resource Sharing middleware| |false|

docs/integration.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ Supported tasks include:
1919

2020
See the [openapi-generator-maven-plugin README](https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-maven-plugin/README.md) for details related to configuring and using the Maven Plugin.
2121

22+
### sbt Integration
23+
24+
Please refer to https://github.com/upstart-commerce/sbt-openapi-generator
25+
26+
### Bazel Integration
27+
28+
Please refer to https://github.com/OpenAPITools/openapi-generator-bazel
29+
2230
### GitHub Integration
2331

2432
To push the auto-generated SDK to GitHub, we provide `git_push.sh` to streamline the process. For example:

modules/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/Meta.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,34 @@ public class Meta implements Runnable {
7272
allowedValues = {"CLIENT", "SERVER", "DOCUMENTATION", "CONFIG", "OTHER"})
7373
private String type = "OTHER";
7474

75+
@Option(name = {"-l", "--language"}, title = "language",
76+
description = "the implementation language for the generator class",
77+
allowedValues = {"java", "kotlin"}
78+
)
79+
private String language = "java";
80+
7581
@Override
7682
public void run() {
7783
final File targetDir = new File(outputFolder);
7884
LOGGER.info("writing to folder [{}]", targetDir.getAbsolutePath());
7985

8086
String mainClass = CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, name) + "Generator";
87+
String kebabName = CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, name);
8188

82-
List<SupportingFile> supportingFiles =
89+
List<SupportingFile> supportingFiles = "kotlin".equals(language) ?
8390
ImmutableList.of(
91+
new SupportingFile("kotlin/build_gradle.mustache", "", "build.gradle.kts"),
92+
new SupportingFile("kotlin/gradle.properties", "", "gradle.properties"),
93+
new SupportingFile("kotlin/settings.mustache", "", "settings.gradle"),
94+
new SupportingFile("kotlin/generatorClass.mustache", on(File.separator).join("src/main/kotlin", asPath(targetPackage)), mainClass.concat(".kt")),
95+
new SupportingFile("kotlin/generatorClassTest.mustache", on(File.separator).join("src/test/kotlin", asPath(targetPackage)), mainClass.concat("Test.kt")),
96+
new SupportingFile("kotlin/README.mustache", "", "README.md"),
97+
98+
new SupportingFile("api.template", "src/main/resources" + File.separator + name,"api.mustache"),
99+
new SupportingFile("model.template", "src/main/resources" + File.separator + name,"model.mustache"),
100+
new SupportingFile("myFile.template", String.join(File.separator, "src", "main", "resources", name), "myFile.mustache"),
101+
new SupportingFile("services.mustache", "src/main/resources/META-INF/services", CodegenConfig.class.getCanonicalName()))
102+
: ImmutableList.of(
84103
new SupportingFile("pom.mustache", "", "pom.xml"),
85104
new SupportingFile("generatorClass.mustache", on(File.separator).join("src/main/java", asPath(targetPackage)), mainClass.concat(".java")),
86105
new SupportingFile("generatorClassTest.mustache", on(File.separator).join("src/test/java", asPath(targetPackage)), mainClass.concat("Test.java")),
@@ -97,6 +116,7 @@ public void run() {
97116
.put("generatorPackage", targetPackage)
98117
.put("generatorClass", mainClass)
99118
.put("name", name)
119+
.put("kebabName", kebabName)
100120
.put("generatorType", type)
101121
.put("fullyQualifiedGeneratorClass", targetPackage + "." + mainClass)
102122
.put("openapiGeneratorVersion", currentVersion).build();

0 commit comments

Comments
 (0)