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/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 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 . 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"