diff --git a/docs/generators/dart-dio.md b/docs/generators/dart-dio.md
index 4dca343c035..c99e33addb0 100644
--- a/docs/generators/dart-dio.md
+++ b/docs/generators/dart-dio.md
@@ -32,6 +32,8 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|pubHomepage|Homepage in generated pubspec| |homepage|
|pubLibrary|Library name in generated code| |openapi.api|
|pubName|Name in generated pubspec| |openapi|
+|pubPublishTo|Publish_to in generated pubspec| |null|
+|pubRepository|Repository in generated pubspec| |null|
|pubVersion|Version in generated pubspec| |1.0.0|
|serializationLibrary|Specify serialization library|
- **built_value**
- [DEFAULT] built_value
- **json_serializable**
- [BETA] json_serializable
|built_value|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
diff --git a/docs/generators/dart.md b/docs/generators/dart.md
index 0d9bf111580..bd6fe201b28 100644
--- a/docs/generators/dart.md
+++ b/docs/generators/dart.md
@@ -30,6 +30,8 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|pubHomepage|Homepage in generated pubspec| |homepage|
|pubLibrary|Library name in generated code| |openapi.api|
|pubName|Name in generated pubspec| |openapi|
+|pubPublishTo|Publish_to in generated pubspec| |null|
+|pubRepository|Repository in generated pubspec| |null|
|pubVersion|Version in generated pubspec| |1.0.0|
|serializationLibrary|Specify serialization library|- **native_serialization**
- Use native serializer, backwards compatible
|native_serialization|
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java
index e542f21b74f..51a8b4bdeae 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java
@@ -44,6 +44,8 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
public static final String PUB_AUTHOR = "pubAuthor";
public static final String PUB_AUTHOR_EMAIL = "pubAuthorEmail";
public static final String PUB_HOMEPAGE = "pubHomepage";
+ public static final String PUB_REPOSITORY = "pubRepository";
+ public static final String PUB_PUBLISH_TO = "pubPublishTo";
public static final String USE_ENUM_EXTENSION = "useEnumExtension";
protected String pubLibrary = "openapi.api";
@@ -53,6 +55,8 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
protected String pubAuthor = "Author";
protected String pubAuthorEmail = "author@homepage";
protected String pubHomepage = "homepage";
+ protected String pubRepository = null;
+ protected String pubPublishTo = null;
protected boolean useEnumExtension = false;
protected String sourceFolder = "src";
protected String libPath = "lib" + File.separator;
@@ -190,6 +194,8 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
addOption(PUB_AUTHOR, "Author name in generated pubspec", pubAuthor);
addOption(PUB_AUTHOR_EMAIL, "Email address of the author in generated pubspec", pubAuthorEmail);
addOption(PUB_HOMEPAGE, "Homepage in generated pubspec", pubHomepage);
+ addOption(PUB_REPOSITORY, "Repository in generated pubspec", pubRepository);
+ addOption(PUB_PUBLISH_TO, "Publish_to in generated pubspec", pubPublishTo);
addOption(USE_ENUM_EXTENSION, "Allow the 'x-enum-values' extension for enums", String.valueOf(useEnumExtension));
addOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC, sourceFolder);
}
@@ -274,6 +280,20 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
additionalProperties.put(PUB_HOMEPAGE, pubHomepage);
}
+ if (additionalProperties.containsKey(PUB_REPOSITORY)) {
+ this.setPubRepository((String) additionalProperties.get(PUB_REPOSITORY));
+ } else {
+ //not set, use to be passed to template
+ additionalProperties.put(PUB_REPOSITORY, pubRepository);
+ }
+
+ if (additionalProperties.containsKey(PUB_PUBLISH_TO)) {
+ this.setPubPublishTo((String) additionalProperties.get(PUB_PUBLISH_TO));
+ } else {
+ //not set, use to be passed to template
+ additionalProperties.put(PUB_PUBLISH_TO, pubPublishTo);
+ }
+
if (additionalProperties.containsKey(USE_ENUM_EXTENSION)) {
this.setUseEnumExtension(convertPropertyToBooleanAndWriteBack(USE_ENUM_EXTENSION));
} else {
@@ -768,6 +788,14 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
this.pubHomepage = pubHomepage;
}
+ public void setPubRepository(String pubRepository) {
+ this.pubRepository = pubRepository;
+ }
+
+ public void setPubPublishTo(String pubPublishTo) {
+ this.pubPublishTo = pubPublishTo;
+ }
+
public void setUseEnumExtension(boolean useEnumExtension) {
this.useEnumExtension = useEnumExtension;
}
diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
index 07d0b317dd3..90608229c68 100644
--- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
+++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache
@@ -2,6 +2,12 @@ name: {{pubName}}
version: {{pubVersion}}
description: {{pubDescription}}
homepage: {{pubHomepage}}
+{{#pubRepository}}
+repository: {{.}}
+{{/pubRepository}}
+{{#pubPublishTo}}
+publish_to: {{.}}
+{{/pubPublishTo}}
environment:
sdk: '>=2.15.0 <3.0.0'
diff --git a/modules/openapi-generator/src/main/resources/dart2/pubspec.mustache b/modules/openapi-generator/src/main/resources/dart2/pubspec.mustache
index cf182945cdb..0b054d73d5c 100644
--- a/modules/openapi-generator/src/main/resources/dart2/pubspec.mustache
+++ b/modules/openapi-generator/src/main/resources/dart2/pubspec.mustache
@@ -6,6 +6,12 @@ name: '{{{pubName}}}'
version: '{{{pubVersion}}}'
description: '{{{pubDescription}}}'
homepage: '{{{pubHomepage}}}'
+{{#pubRepository}}
+repository: {{.}}
+{{/pubRepository}}
+{{#pubPublishTo}}
+publish_to: {{.}}
+{{/pubPublishTo}}
environment:
sdk: '>=2.12.0 <3.0.0'
dependencies:
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java
index 1b268561e52..87dabbbfd00 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java
@@ -48,6 +48,8 @@ public class DartClientOptionsTest extends AbstractOptionsTest {
verify(clientCodegen).setPubAuthor(DartClientOptionsProvider.PUB_AUTHOR_VALUE);
verify(clientCodegen).setPubAuthorEmail(DartClientOptionsProvider.PUB_AUTHOR_EMAIL_VALUE);
verify(clientCodegen).setPubHomepage(DartClientOptionsProvider.PUB_HOMEPAGE_VALUE);
+ verify(clientCodegen).setPubRepository(DartClientOptionsProvider.PUB_REPOSITORY_VALUE);
+ verify(clientCodegen).setPubPublishTo(DartClientOptionsProvider.PUB_PUBLISH_TO_VALUE);
verify(clientCodegen).setSourceFolder(DartClientOptionsProvider.SOURCE_FOLDER_VALUE);
verify(clientCodegen).setUseEnumExtension(Boolean.parseBoolean(DartClientOptionsProvider.USE_ENUM_EXTENSION));
verify(clientCodegen).setEnumUnknownDefaultCase(Boolean.parseBoolean(DartClientOptionsProvider.ENUM_UNKNOWN_DEFAULT_CASE_VALUE));
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java
index 2292d110989..23eee3fd2a2 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java
@@ -47,6 +47,8 @@ public class DartDioClientOptionsTest extends AbstractOptionsTest {
verify(clientCodegen).setPubAuthor(DartDioClientOptionsProvider.PUB_AUTHOR_VALUE);
verify(clientCodegen).setPubAuthorEmail(DartDioClientOptionsProvider.PUB_AUTHOR_EMAIL_VALUE);
verify(clientCodegen).setPubHomepage(DartDioClientOptionsProvider.PUB_HOMEPAGE_VALUE);
+ verify(clientCodegen).setPubRepository(DartDioClientOptionsProvider.PUB_REPOSITORY_VALUE);
+ verify(clientCodegen).setPubPublishTo(DartDioClientOptionsProvider.PUB_PUBLISH_TO_VALUE);
verify(clientCodegen).setSourceFolder(DartDioClientOptionsProvider.SOURCE_FOLDER_VALUE);
verify(clientCodegen).setUseEnumExtension(Boolean.parseBoolean(DartDioClientOptionsProvider.USE_ENUM_EXTENSION));
verify(clientCodegen).setDateLibrary(DartDioClientCodegen.DATE_LIBRARY_DEFAULT);
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java
index 5e468090bed..7851eb08236 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java
@@ -35,6 +35,8 @@ public class DartClientOptionsProvider implements OptionsProvider {
public static final String PUB_AUTHOR_VALUE = "Author";
public static final String PUB_AUTHOR_EMAIL_VALUE = "author@homepage";
public static final String PUB_HOMEPAGE_VALUE = "Homepage";
+ public static final String PUB_REPOSITORY_VALUE = "Repository";
+ public static final String PUB_PUBLISH_TO_VALUE = "Publish To";
public static final String SOURCE_FOLDER_VALUE = "src";
public static final String USE_ENUM_EXTENSION = "true";
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
@@ -59,6 +61,8 @@ public class DartClientOptionsProvider implements OptionsProvider {
.put(DartClientCodegen.PUB_AUTHOR, PUB_AUTHOR_VALUE)
.put(DartClientCodegen.PUB_AUTHOR_EMAIL, PUB_AUTHOR_EMAIL_VALUE)
.put(DartClientCodegen.PUB_HOMEPAGE, PUB_HOMEPAGE_VALUE)
+ .put(DartClientCodegen.PUB_REPOSITORY, PUB_REPOSITORY_VALUE)
+ .put(DartClientCodegen.PUB_PUBLISH_TO, PUB_PUBLISH_TO_VALUE)
.put(CodegenConstants.SOURCE_FOLDER, SOURCE_FOLDER_VALUE)
.put(DartClientCodegen.USE_ENUM_EXTENSION, USE_ENUM_EXTENSION)
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java
index 0072e04e0c1..60cb3529322 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java
@@ -37,6 +37,8 @@ public class DartDioClientOptionsProvider implements OptionsProvider {
public static final String PUB_AUTHOR_VALUE = "Author";
public static final String PUB_AUTHOR_EMAIL_VALUE = "author@homepage";
public static final String PUB_HOMEPAGE_VALUE = "Homepage";
+ public static final String PUB_REPOSITORY_VALUE = "Repository";
+ public static final String PUB_PUBLISH_TO_VALUE = "Publish to";
public static final String ENUM_UNKNOWN_DEFAULT_CASE_VALUE = "false";
@Override
@@ -57,6 +59,8 @@ public class DartDioClientOptionsProvider implements OptionsProvider {
.put(DartDioClientCodegen.PUB_AUTHOR, PUB_AUTHOR_VALUE)
.put(DartDioClientCodegen.PUB_AUTHOR_EMAIL, PUB_AUTHOR_EMAIL_VALUE)
.put(DartDioClientCodegen.PUB_HOMEPAGE, PUB_HOMEPAGE_VALUE)
+ .put(DartDioClientCodegen.PUB_REPOSITORY, PUB_REPOSITORY_VALUE)
+ .put(DartDioClientCodegen.PUB_PUBLISH_TO, PUB_PUBLISH_TO_VALUE)
.put(CodegenConstants.SERIALIZATION_LIBRARY, DartDioClientCodegen.SERIALIZATION_LIBRARY_DEFAULT)
.put(DartDioClientCodegen.DATE_LIBRARY, DartDioClientCodegen.DATE_LIBRARY_DEFAULT)
.put(DartDioClientCodegen.FINAL_PROPERTIES, DartDioClientCodegen.FINAL_PROPERTIES_DEFAULT_VALUE)