Skip to content

Commit 0d86b01

Browse files
committed
feat: add schema merge script
Signed-off-by: yash37158 <[email protected]>
1 parent 0d0d57f commit 0d86b01

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

scripts/merge-openapi-specs.sh

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail # ✅ Exit on error, unset vars, and pipefail
3+
4+
# ANSI color codes
5+
GREEN="\033[0;32m"
6+
RED="\033[0;31m"
7+
YELLOW="\033[0;33m"
8+
CYAN="\033[0;36m"
9+
NC="\033[0m"
10+
11+
merged_construct="merged-openapi.yml"
12+
v1beta1="schemas/constructs/v1beta1"
13+
v1alpha1="schemas/constructs/v1alpha1"
14+
v1alpha2="schemas/constructs/v1alpha2"
15+
16+
echo -e "${CYAN}🔹 Merging OpenAPI specifications...${NC}"
17+
18+
# Use exact order from generate-golang.sh
19+
npx --yes @redocly/cli join schemas/base_cloud.yml \
20+
"${v1beta1}/pattern/${merged_construct}" \
21+
"${v1beta1}/component/${merged_construct}" \
22+
"${v1beta1}/model/${merged_construct}" \
23+
"${v1beta1}/subscription/${merged_construct}" \
24+
"${v1beta1}/plan/${merged_construct}" \
25+
"${v1beta1}/feature/${merged_construct}" \
26+
"${v1beta1}/workspace/${merged_construct}" \
27+
"${v1beta1}/environment/${merged_construct}" \
28+
"${v1alpha2}/catalog/${merged_construct}" \
29+
"${v1beta1}/evaluation/${merged_construct}" \
30+
"${v1beta1}/user/${merged_construct}" \
31+
"${v1beta1}/academy/${merged_construct}" \
32+
-o schemas/merged_openapi.yml \
33+
--prefix-tags-with-info-prop title \
34+
--prefix-components-with-info-prop title || {
35+
echo -e "${RED}❌ Schema merging failed!${NC}"
36+
exit 1
37+
}
38+
39+
echo -e "${GREEN}✅ Successfully joined OpenAPI specifications${NC}"
40+
41+
echo -e "${CYAN}🔹 Filtering schemas by tag...${NC}"
42+
43+
# Filter schemas by tag (matching generate-golang.sh)
44+
node scripts/filterOpenapiByTag.js schemas/merged_openapi.yml schemas/cloud_openapi.yml cloud || {
45+
echo -e "${RED}❌ Cloud schema filtering failed!${NC}"
46+
exit 1
47+
}
48+
49+
node scripts/filterOpenapiByTag.js schemas/merged_openapi.yml schemas/meshery_openapi.yml meshery || {
50+
echo -e "${RED}❌ Meshery schema filtering failed!${NC}"
51+
exit 1
52+
}
53+
54+
echo -e "${GREEN}✅ All done!${NC}"

0 commit comments

Comments
 (0)