name: Generate Pydantic Stubs from api.comfy.org on: schedule: - cron: '0 0 * * 1' workflow_dispatch: jobs: generate-models: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install dependencies run: | python -m pip install --upgrade pip pip install 'datamodel-code-generator[http]' npm install @redocly/cli - name: Download OpenAPI spec run: | curl -o openapi.yaml https://api.comfy.org/openapi - name: Filter OpenAPI spec with Redocly run: | npx @redocly/cli bundle openapi.yaml --output filtered-openapi.yaml --config comfy_api_nodes/redocly.yaml --remove-unused-components - name: Generate API models run: | datamodel-codegen --use-subclass-enum --input filtered-openapi.yaml --output comfy_api_nodes/apis --output-model-type pydantic_v2.BaseModel - name: Check for changes id: git-check run: | git diff --exit-code comfy_api_nodes/apis || echo "changes=true" >> $GITHUB_OUTPUT - name: Create Pull Request if: steps.git-check.outputs.changes == 'true' uses: peter-evans/create-pull-request@v5 with: commit-message: 'chore: update API models from OpenAPI spec' title: 'Update API models from api.comfy.org' body: | This PR updates the API models based on the latest api.comfy.org OpenAPI specification. Generated automatically by the a Github workflow. branch: update-api-stubs delete-branch: true base: master