diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaCSharpGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaCSharpGenerator.java index 19dfa7d77b..e9586802ca 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaCSharpGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaCSharpGenerator.java @@ -121,9 +121,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("netcore_project.mustache", "Algolia.Search.csproj")); supportingFiles.add(new SupportingFile("Configuration.mustache", "Clients", packageName + "Configuration.cs")); - supportingFiles.add(new SupportingFile("LICENSE", "../", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", "../.github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", "../.github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, "../"); reservedWords.removeIf(word -> word.equals("Configuration")); } diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaDartGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaDartGenerator.java index e8782e6b41..b20f7f359a 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaDartGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaDartGenerator.java @@ -100,10 +100,9 @@ public void processOpts() { supportingFiles.add(new SupportingFile("version.mustache", srcFolder, "version.dart")); supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("LICENSE", "../client_core/", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", "../../.github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", "../../.github/ISSUE_TEMPLATE", "Bug_report.yml")); + + Helpers.addCommonSupportingFiles(supportingFiles, "../../"); // Search config additionalProperties.put("isSearchClient", client.equals("search")); diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaGoGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaGoGenerator.java index 9337ff0364..9b1b09287a 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaGoGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaGoGenerator.java @@ -54,9 +54,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("configuration.mustache", "", "configuration.go")); supportingFiles.add(new SupportingFile("client.mustache", "", "client.go")); - supportingFiles.add(new SupportingFile("LICENSE", "../../", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", "../../.github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", "../../.github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, "../../"); try { additionalProperties.put("packageVersion", Helpers.getClientConfigField("go", "packageVersion")); diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java index ab6baba149..8337877152 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaJavaGenerator.java @@ -55,9 +55,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("gradle.properties.mustache", "", "gradle.properties")); additionalProperties.put("isSearchClient", client.equals("search")); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", ".github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, ""); reservedWords.removeIf(word -> word.equals("configuration")); diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaJavascriptGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaJavascriptGenerator.java index 79bad9b646..a3465ebc3e 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaJavascriptGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaJavascriptGenerator.java @@ -59,11 +59,9 @@ public void processOpts() { // root export files supportingFiles.add(new SupportingFile("index.mustache", "", "index.js")); supportingFiles.add(new SupportingFile("index.d.mustache", "", "index.d.ts")); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("LICENSE", "", "../../LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", "../../.github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", "../../.github/ISSUE_TEMPLATE", "Bug_report.yml")); + + Helpers.addCommonSupportingFiles(supportingFiles, "../../"); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaKotlinGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaKotlinGenerator.java index 6921602fc1..4d371c2cbf 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaKotlinGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaKotlinGenerator.java @@ -112,9 +112,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("gradle.properties.mustache", "", "gradle.properties")); supportingFiles.add(new SupportingFile("README_BOM.mustache", "client-bom", "README.md")); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", ".github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, ""); additionalProperties.put("packageVersion", Helpers.getClientConfigField("kotlin", "packageVersion")); } diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java index ff25805b47..b3bb20b10b 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaPhpGenerator.java @@ -51,9 +51,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("client_config.mustache", "lib/Configuration", getClientName(client) + "Config.php")); supportingFiles.add(new SupportingFile("Algolia.mustache", "lib", "Algolia.php")); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", ".github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, ""); additionalProperties.put("isSearchClient", client.equals("search")); additionalProperties.put("configClassname", getClientName(client) + "Config"); diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaPythonGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaPythonGenerator.java index f756420cba..17fd509bd0 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaPythonGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaPythonGenerator.java @@ -87,9 +87,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("__init__.mustache", "http", "__init__.py")); supportingFiles.add(new SupportingFile("config.mustache", packageName, "config.py")); - supportingFiles.add(new SupportingFile("LICENSE", "../", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", "../.github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", "../.github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, "../"); } @Override diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaRubyGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaRubyGenerator.java index f2dd9beb90..4f2a6d8839 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaRubyGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaRubyGenerator.java @@ -42,9 +42,7 @@ public void processOpts() { apiTestTemplateFiles.clear(); modelTestTemplateFiles.clear(); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", ".github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, ""); // Remove some files we don't want to output or change their paths supportingFiles.removeIf( diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaScalaGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaScalaGenerator.java index 63fb755100..b1a1160d5c 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaScalaGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaScalaGenerator.java @@ -75,9 +75,7 @@ public void processOpts() { supportingFiles.add(new SupportingFile("version.mustache", "", "version.sbt")); supportingFiles.add(new SupportingFile("jsonSupport.mustache", modelFolder, "JsonSupport.scala")); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", ".github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, ""); additionalProperties.put("isSearchClient", client.equals("search")); typeMapping.put("AnyType", "Any"); diff --git a/generators/src/main/java/com/algolia/codegen/AlgoliaSwiftGenerator.java b/generators/src/main/java/com/algolia/codegen/AlgoliaSwiftGenerator.java index e1a7e46878..f81c7636ef 100644 --- a/generators/src/main/java/com/algolia/codegen/AlgoliaSwiftGenerator.java +++ b/generators/src/main/java/com/algolia/codegen/AlgoliaSwiftGenerator.java @@ -197,9 +197,7 @@ public void processOpts() { supportingFiles.add( new SupportingFile("client_configuration.mustache", sourceFolder, getClientName(CLIENT) + "ClientConfiguration.swift") ); - supportingFiles.add(new SupportingFile("LICENSE", "", "LICENSE")); - supportingFiles.add(new SupportingFile("issue.yml", ".github/workflows", "issue.yml")); - supportingFiles.add(new SupportingFile("Bug_report.yml", ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + Helpers.addCommonSupportingFiles(supportingFiles, ""); supportingFiles.add(new SupportingFile("Package.mustache", "Package.swift")); supportingFiles.add(new SupportingFile("podspec.mustache", projectName + ".podspec")); diff --git a/generators/src/main/java/com/algolia/codegen/utils/Helpers.java b/generators/src/main/java/com/algolia/codegen/utils/Helpers.java index 5d5ea12851..2b60eac644 100644 --- a/generators/src/main/java/com/algolia/codegen/utils/Helpers.java +++ b/generators/src/main/java/com/algolia/codegen/utils/Helpers.java @@ -14,6 +14,7 @@ import org.openapitools.codegen.CodegenOperation; import org.openapitools.codegen.CodegenServer; import org.openapitools.codegen.CodegenServerVariable; +import org.openapitools.codegen.SupportingFile; import org.openapitools.codegen.model.OperationsMap; public class Helpers { @@ -258,6 +259,15 @@ public static void prettyPrint(Object o) { Json.prettyPrint(o); } + public static void addCommonSupportingFiles(List supportingFiles, String root) { + supportingFiles.add(new SupportingFile("LICENSE", "", root + "LICENSE")); + supportingFiles.add(new SupportingFile("issue.yml", root + ".github/workflows", "issue.yml")); + supportingFiles.add(new SupportingFile("Bug_report.yml", root + ".github/ISSUE_TEMPLATE", "Bug_report.yml")); + supportingFiles.add( + new SupportingFile("do-not-edit-this-repository.yml", root + ".github/workflows", "do-not-edit-this-repository.yml") + ); + } + public static String getLanguageVersion(String language) throws IOException { String versionFile = language.equals("javascript") ? ".nvmrc" diff --git a/templates/csharp/do-not-edit-this-repository.yml b/templates/csharp/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/csharp/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/dart/do-not-edit-this-repository.yml b/templates/dart/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/dart/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/do-not-edit-this-repository.yml b/templates/do-not-edit-this-repository.yml new file mode 100644 index 0000000000..a2abcd81e2 --- /dev/null +++ b/templates/do-not-edit-this-repository.yml @@ -0,0 +1,24 @@ +name: Do not edit files in this repository + +on: + pull_request: + types: + - opened + - synchronize + - reopen + branches: + - 'main' + +jobs: + auto_close_pr: + name: Close PR + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Close PR + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + gh pr close "${PR_NUMBER}" -d -c "Thanks for contributing to our API clients! Sorry to close your PR, but this repository is fully generated, you can port your changes to [the API Clients Automation repository](https://github.com/algolia/api-clients-automation). If you need some guidance, feel free to [open an issue](https://github.com/algolia/api-clients-automation/issues) or [read our contribution guide](https://api-clients-automation.netlify.app/docs/introduction)." diff --git a/templates/go/do-not-edit-this-repository.yml b/templates/go/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/go/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/java/do-not-edit-this-repository.yml b/templates/java/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/java/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/javascript/clients/do-not-edit-this-repository.yml b/templates/javascript/clients/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..282054f64b --- /dev/null +++ b/templates/javascript/clients/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/kotlin/do-not-edit-this-repository.yml b/templates/kotlin/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/kotlin/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/php/do-not-edit-this-repository.yml b/templates/php/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/php/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/python/do-not-edit-this-repository.yml b/templates/python/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/python/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/ruby/do-not-edit-this-repository.yml b/templates/ruby/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/ruby/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/scala/do-not-edit-this-repository.yml b/templates/scala/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/scala/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file diff --git a/templates/swift/do-not-edit-this-repository.yml b/templates/swift/do-not-edit-this-repository.yml new file mode 120000 index 0000000000..05fdc83be2 --- /dev/null +++ b/templates/swift/do-not-edit-this-repository.yml @@ -0,0 +1 @@ +../do-not-edit-this-repository.yml \ No newline at end of file