Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
324c905
feat(api): add 35 missing schemas from models.yaml
Oct 22, 2025
612bc07
feat(api): synchronize schema fields with models.yaml
Oct 22, 2025
34b1ed8
feat(params): consolidate parameters to components.parameters library
Oct 22, 2025
b4cafdb
feat(paths): sync API paths with v20111101.yaml using yq
Oct 23, 2025
12a9989
feat(tags): synchronize OpenAPI tags for improved navigation
Oct 23, 2025
85f4a5d
feat(phase6): fix schema structures and remove deprecated schemas
Oct 23, 2025
99794a4
feat(phase7): fix type mismatches from integer to number
Oct 23, 2025
ca73299
feat(phase8): internalize external references for self-contained spec
Oct 23, 2025
f940dca
feat(phase9): final validation and complete parity achieved
Oct 23, 2025
42dd6f2
fully replace mx_platform_api.yml with v20111101.yml, remove tmp files
Oct 23, 2025
7f09511
fix(parameters): add missing schema definitions and in property
Oct 23, 2025
1dd3c59
fix(structure): reorder YAML keys to OpenAPI spec requirements
Oct 23, 2025
08519bb
fix(parameters): add missing properties to includes parameter
Oct 23, 2025
a50ec03
tmp file clean up, rename mx_platform_api.yml > v20111101.yaml
Oct 23, 2025
754ddcc
chore(ci): update workflows for v20111101.yml filename
Oct 23, 2025
e5b923a
fix(ci): correct file extension to .yaml in workflows
Oct 23, 2025
ba5c292
fix(ci): restore original version.yml workflow logic
Oct 23, 2025
511bef9
revert filename change: v20111101.yaml back to mx_platform_api.yml an…
Oct 23, 2025
0e35a0c
fix(spec): add missing bearerAuth scheme and transaction parameters
Oct 24, 2025
c066049
fix(spec): sync 21 missing operationIds from source
Oct 24, 2025
5ccc7a8
fix(openapi): sync missing parameters and response schemas from source
Oct 24, 2025
af694d5
remove redundant refs
Oct 24, 2025
b1baf42
fix(openapi): add required items field to iso_country_code array schema
Oct 28, 2025
6d35d5b
fix(openapi): sync version and deprecation flag with source spec
Oct 28, 2025
749b341
re-apply unused tags for parity to v20111101.yaml
Oct 29, 2025
c3fd719
mx_platform_api generated by tiny mx from v20111101
Nov 5, 2025
d07ea83
Phase 0.2 | Add Dry-run test SDK generation across all languages (#172)
nickitza Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions .github/workflows/sdk-generation-validation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Test SDK Generation Validation

on:
pull_request:
paths:
- 'openapi/mx_platform_api.yml'

jobs:
validate-sdk-generation:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- language: java
generator: java
display_name: Java
- language: ruby
generator: ruby
display_name: Ruby
- language: python
generator: python
display_name: Python
- language: node
generator: typescript-axios
display_name: Node
- language: csharp
generator: csharp
display_name: C#
- language: go
generator: go
display_name: Go

name: ${{ matrix.display_name }} SDK Generation

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20'

- name: Install OpenAPI Generator CLI
run: npm install -g @openapitools/openapi-generator-cli

- name: Create output directory
run: mkdir -p ./sdk-output/${{ matrix.language }}

- name: Generate Test SDK
run: |
openapi-generator-cli generate \
-i openapi/mx_platform_api.yml \
-g ${{ matrix.generator }} \
-o ./sdk-output/${{ matrix.language }} \
--skip-validate-spec

- name: Verify expected files were generated
run: |
echo "Checking for generated files in ./sdk-output/${{ matrix.language }}"
ls -la ./sdk-output/${{ matrix.language }}

cd ./sdk-output/${{ matrix.language }}

# Check for key files based on language
case "${{ matrix.language }}" in
"java")
find . -name "pom.xml" -quit > /dev/null || (echo "❌ Missing pom.xml" && exit 1)
find . -name "*.java" -quit > /dev/null || (echo "❌ No Java files found" && exit 1)
echo "✅ Java SDK structure validated"
;;
"ruby")
find . -name "*.gemspec" -quit > /dev/null || (echo "❌ Missing gemspec file" && exit 1)
find . -name "*.rb" -quit > /dev/null || (echo "❌ No Ruby files found" && exit 1)
echo "✅ Ruby SDK structure validated"
;;
"python")
find . -name "setup.py" -quit > /dev/null || (echo "❌ Missing setup.py" && exit 1)
find . -name "*.py" -quit > /dev/null || (echo "❌ No Python files found" && exit 1)
echo "✅ Python SDK structure validated"
;;
"node")
find . -name "package.json" -quit > /dev/null || (echo "❌ Missing package.json" && exit 1)
find . \( -name "*.ts" -o -name "*.js" \) -quit > /dev/null || (echo "❌ No TypeScript/JavaScript files found" && exit 1)
echo "✅ Node SDK structure validated"
;;
"csharp")
find . -name "*.csproj" -quit > /dev/null || (echo "❌ Missing csproj file" && exit 1)
find . -name "*.cs" -quit > /dev/null || (echo "❌ No C# files found" && exit 1)
echo "✅ C# SDK structure validated"
;;
"go")
find . -name "go.mod" -quit > /dev/null || (echo "❌ Missing go.mod" && exit 1)
find . -name "*.go" -quit > /dev/null || (echo "❌ No Go files found" && exit 1)
echo "✅ Go SDK structure validated"
;;
esac

- name: Clean up
if: always()
run: rm -rf ./sdk-output/${{ matrix.language }}
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# === AI Toolkit ===
# Private Mode - All AI files ignored
.ai/*
.claude/*
.mcp.json
.cursor/*
.gemini/*
.github/instructions/*
.github/chatmodes/*
.github/prompts/*
.vscode/mcp.json
# === End AI Toolkit ===
Loading