kanidm/scripts/openapi_tests/check_openapi_spec.sh
James Hodgkinson dbf59474bb
OpenAPI schema fixes (#2590)
* OpenAPI schema fixes
* Adding OpenAPI schema checks to the release script
2024-03-01 16:57:36 +10:00

47 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
set -e
cleanup() {
echo "Cleaning up ${1}"
rm -rf "$1"
}
if [ -f openapi.json ]; then
rm openapi.json
fi
WORKDIR="$(mktemp -d)"
echo "Trying to pull openapi.json to ${WORKDIR}"
curl -sfk https://localhost:8443/docs/v1/openapi.json > "${WORKDIR}/openapi.json" || echo "Failed download"
if [ ! -f "${WORKDIR}/openapi.json" ]; then
echo "Failed to download openapi.json"
cleanup "${WORKDIR}"
exit 1
fi
# if "${WORKDIR}/openapi.json" is empty, exit
if [ ! -s "${WORKDIR}/openapi.json" ]; then
echo "openapi.json is empty, cleaning up and exiting"
cleanup "${WORKDIR}"
exit 1
fi
echo "Running pythonopenapi/openapi-spec-validator"
docker run \
--mount "type=bind,src=${WORKDIR}/openapi.json,target=/openapi.json" \
--rm pythonopenapi/openapi-spec-validator /openapi.json && \
echo "openapi-spec-validator passed"
echo "Running openapitools/openapi-generator-cli"
docker run --rm \
--mount "type=bind,src=${WORKDIR},target=/spec" \
openapitools/openapi-generator-cli validate \
-i /spec/openapi.json
cleanup "${WORKDIR}"
echo "It looks to have passed OK!"