From 87f709c3f1d7c7450414ebba80370b9df49b6cd9 Mon Sep 17 00:00:00 2001 From: Carlo Goetz Date: Thu, 29 Jan 2026 14:42:47 +0100 Subject: [PATCH 1/3] feat(ci) add OAS commit hash per service to generated SDKs - record the used commit hash for each service in oas/oas_commits - when creating a PR add each commit hash to services/$service/oas_commit - add github comparison link to PR body --- scripts/download-oas.sh | 2 ++ scripts/sdk-create-pr.sh | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/download-oas.sh b/scripts/download-oas.sh index 0d62d8d..a226a1f 100755 --- a/scripts/download-oas.sh +++ b/scripts/download-oas.sh @@ -57,6 +57,7 @@ EOF fi cd ${work_dir}/${OAS_REPO_NAME} >/dev/null git checkout -q $apiVersion || (echo "version ${apiVersion} does not exist, using main instead" && git checkout -q main) + echo "$service=$(git rev-parse HEAD)" >> oas_commits cd - >/dev/null # Prioritize GA over Beta over Alpha versions @@ -121,3 +122,4 @@ EOF fi mv -f ${max_version_dir}/*.json ${ROOT_DIR}/oas done +mv -f ${work_dir}/${OAS_REPO_NAME}/oas_commits ${ROOT_DIR}/oas/oas_commits \ No newline at end of file diff --git a/scripts/sdk-create-pr.sh b/scripts/sdk-create-pr.sh index 6c103a0..6c0ea36 100755 --- a/scripts/sdk-create-pr.sh +++ b/scripts/sdk-create-pr.sh @@ -119,6 +119,17 @@ for service_path in ${work_dir}/sdk_to_push/services/*; do fi fi + # write OAS commit hash of service into source tree, create compare link + old_commit=$(cat "services/${service}/oas_commit") + new_commit=$(grep "${service}=" "${ROOT_DIR}/oas/oas_commits" | cut -d = -f 2) + compare_link="" + if [[ -n "${old_commit}" ]] && [[ -n "${new_commit}" ]]; then + compare_link=https://github.com/stackitcloud/stackit-api-specifications/compare/${old_commit}...${new_commit} + fi + if [[ -n "${new_commit}" ]]; then + echo "${new_commit}" > "services/${service}/oas_commit" + fi + git add "services/${service}/" if [ "${LANGUAGE}" == "go" ] && [ ! -d "${work_dir}/sdk_backup/services/${service}/" ]; then # Check if it is a newly added SDK module git add go.work @@ -128,7 +139,7 @@ for service_path in ${work_dir}/sdk_to_push/services/*; do echo ">> Creating PR for $service" git commit -m "Generate $service" git push origin "$branch" - gh pr create --title "Generator: Update SDK /services/$service" --body "$COMMIT_INFO" --head "$branch" --base "main" + echo -e "$COMMIT_INFO\nspec comparison: ${compare_link}" | gh pr create --title "Generator: Update SDK /services/$service" --body-file - --head "$branch" --base "main" else echo ">> Pushing changes for $service service..." git commit -m "Generate $service: $COMMIT_INFO" From 6c5871727247dfdeedde6f06e164fcd26cf785cc Mon Sep 17 00:00:00 2001 From: Carlo Goetz Date: Fri, 30 Jan 2026 10:27:39 +0100 Subject: [PATCH 2/3] fix(ci) copy oas_commit file from backup to service folder --- scripts/generate-sdk/languages/go.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/generate-sdk/languages/go.sh b/scripts/generate-sdk/languages/go.sh index cc11165..97c3eee 100644 --- a/scripts/generate-sdk/languages/go.sh +++ b/scripts/generate-sdk/languages/go.sh @@ -216,6 +216,12 @@ generate_go_sdk() { cp -r "${sdk_services_backup_dir}/${service}/VERSION" "${SERVICES_FOLDER}/${service}/VERSION" fi + # If the service has oas_commit file, move it inside the service folder + if [ -f "${sdk_services_backup_dir}/${service}/oas_commit" ]; then + echo "Found ${service} \"oas_commit\" file" + cp -r "${sdk_services_backup_dir}/${service}/oas_commit" "${SERVICES_FOLDER}/${service}/oas_commit" + fi + cd "${SERVICES_FOLDER}/${service}" go work use . # Make sure that dependencies are uptodate From b2f4e7a0d99c57d3004f9e7a154cd9ae92a078d1 Mon Sep 17 00:00:00 2001 From: Carlo Goetz Date: Fri, 30 Jan 2026 10:35:35 +0100 Subject: [PATCH 3/3] fix(ci) also copy oas_commit for java and python --- scripts/generate-sdk/languages/java.sh | 6 ++++++ scripts/generate-sdk/languages/python.sh | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/scripts/generate-sdk/languages/java.sh b/scripts/generate-sdk/languages/java.sh index 0c19407..62da43f 100644 --- a/scripts/generate-sdk/languages/java.sh +++ b/scripts/generate-sdk/languages/java.sh @@ -180,6 +180,12 @@ generate_java_sdk() { cp -r "${sdk_services_backup_dir}/${service}/VERSION" "${SERVICES_FOLDER}/${service}/VERSION" fi + # If the service has oas_commit file, move it inside the service folder + if [ -f "${sdk_services_backup_dir}/${service}/oas_commit" ]; then + echo "Found ${service} \"oas_commit\" file" + cp -r "${sdk_services_backup_dir}/${service}/oas_commit" "${SERVICES_FOLDER}/${service}/oas_commit" + fi + done cd "${SDK_REPO_LOCAL_PATH}" diff --git a/scripts/generate-sdk/languages/python.sh b/scripts/generate-sdk/languages/python.sh index 330baee..d476cd0 100644 --- a/scripts/generate-sdk/languages/python.sh +++ b/scripts/generate-sdk/languages/python.sh @@ -170,6 +170,12 @@ generate_python_sdk() { cp -r "${sdk_services_backup_dir}/${service}/NOTICE.txt" "${SERVICES_FOLDER}/${service}/NOTICE.txt" fi + # If the service has oas_commit file, move it inside the service folder + if [ -f "${sdk_services_backup_dir}/${service}/oas_commit" ]; then + echo "Found ${service} \"oas_commit\" file" + cp -r "${sdk_services_backup_dir}/${service}/oas_commit" "${SERVICES_FOLDER}/${service}/oas_commit" + fi + cd "${SERVICES_FOLDER}/${service}" # Run formatter isort .