From 8dc98530b882d30ddfdc65120582e21e8e2b382d Mon Sep 17 00:00:00 2001 From: Thisaru Guruge Date: Fri, 11 Apr 2025 13:30:42 +0530 Subject: [PATCH 1/2] Skip multi module repos --- regenerate-openapi-connectors/main.bal | 4 +++- regenerate-openapi-connectors/types.bal | 14 +++----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/regenerate-openapi-connectors/main.bal b/regenerate-openapi-connectors/main.bal index dacd1b54..4636fc41 100644 --- a/regenerate-openapi-connectors/main.bal +++ b/regenerate-openapi-connectors/main.bal @@ -89,7 +89,9 @@ public function main() returns error? { public function getGeneratedModuleList() returns Module[]|error { List moduleList = check (check io:fileReadJson(MODULE_LIST_JSON)).fromJsonWithType(); - return moduleList.generated_connectors; + return from Module module in moduleList.generated_connectors + where module.is_multiple_connectors == false + select module; } isolated function waitForRegeneration(ProcessingModule[] processingModules) returns error? { diff --git a/regenerate-openapi-connectors/types.bal b/regenerate-openapi-connectors/types.bal index c6f2eaed..80df666c 100644 --- a/regenerate-openapi-connectors/types.bal +++ b/regenerate-openapi-connectors/types.bal @@ -14,23 +14,15 @@ // specific language governing permissions and limitations // under the License. -type List record {| - Module[] library_modules; - Module[] extended_modules; - Module[] handwritten_connectors; - Module[] driver_modules; +type List record { Module[] generated_connectors; - Module[] tools; -|}; +}; type Module record { string name; - string module_version; - int level; string default_branch; - boolean release; - string version_key; boolean inProgress = false; + boolean is_multiple_connectors = false; }; type ProcessingModule record {| From 2077dd462ddfc046e3d1d561e7eb9754070d6c3e Mon Sep 17 00:00:00 2001 From: Thisaru Guruge Date: Fri, 11 Apr 2025 15:41:38 +0530 Subject: [PATCH 2/2] Allow regeneration even when the branch exists --- .../workflows/regenerate-connector-template.yml | 14 ++++++++++---- regenerate-openapi-connectors/main.bal | 2 -- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/regenerate-connector-template.yml b/.github/workflows/regenerate-connector-template.yml index be6a07e3..76c4627b 100644 --- a/.github/workflows/regenerate-connector-template.yml +++ b/.github/workflows/regenerate-connector-template.yml @@ -127,7 +127,7 @@ jobs: echo "Unsupported file extension: ${{ inputs.openapi-url }}" exit 1 fi - + - name: Read File Extension working-directory: docs/spec run: | @@ -135,6 +135,14 @@ jobs: ext="${file##*.}" echo "EXTENSION=$ext" >> "$GITHUB_ENV" + - name: Checkout or Create Branch + run: | + if git show-ref --verify --quiet refs/heads/regenerate-connector; then + git checkout regenerate-connector + else + git checkout -b regenerate-connector + fi + - name: Flatten OpenAPI Specification if: ${{ inputs.flatten-openapi }} working-directory: docs/spec @@ -169,11 +177,9 @@ jobs: - name: Commit Files id: commitFiles run: | - git checkout -b regenerate-connector - changed=false # First commit: OpenAPI spec changes - git add docs/spec/ + git add docs/spec/ if ! git diff --cached --quiet; then git commit -m "[AUTOMATED] Update OpenAPI spec" changed=true diff --git a/regenerate-openapi-connectors/main.bal b/regenerate-openapi-connectors/main.bal index 4636fc41..9d801aad 100644 --- a/regenerate-openapi-connectors/main.bal +++ b/regenerate-openapi-connectors/main.bal @@ -69,7 +69,6 @@ public function main() returns error? { printError(modules); return modules; } - modules.forEach((m) => io:println(m.name)); ProcessingModule[] processingModules = []; if modules.length() == 0 { return; @@ -141,7 +140,6 @@ isolated function triggerModuleRegeneration(Module m) returns int|error { if branchResult is github:BranchWithProtection { string message = string `Branch ${REGENERATION_BRANCH} already exists for module: ${m.name}`; printInfo(message); - return error(message); } error? dispatchResult = github->/repos/[GITHUB_ORG]/[m.name]/actions/workflows/[workflow]/dispatches.post(payload);