Update OpenAPI spec #126
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Update OpenAPI spec | |
| on: | |
| schedule: | |
| - cron: "0 8 * * *" # daily at 08:00 UTC | |
| workflow_dispatch: # allow manual trigger | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| update-spec: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v4 | |
| - uses: extractions/setup-just@v2 | |
| - name: Install Python | |
| run: uv python install 3.12 | |
| - name: Install dependencies | |
| run: uv sync --all-groups --group codegen | |
| - name: Fetch latest spec | |
| run: just fetch-spec | |
| - name: Regenerate models | |
| run: just regenerate-models | |
| - name: Read KSeF API version | |
| id: version | |
| run: | | |
| ksef_api_version=$(python - <<'PY' | |
| from pathlib import Path | |
| namespace = {} | |
| exec(Path("src/ksef2/__openapi_version__.py").read_text(), namespace) | |
| print(namespace["version"]) | |
| PY | |
| ) | |
| echo "ksef_api_version=${ksef_api_version}" >> "$GITHUB_OUTPUT" | |
| - name: Check for changes | |
| id: diff | |
| run: | | |
| if git diff --quiet \ | |
| openapi.json \ | |
| src/ksef2/__openapi_version__.py \ | |
| src/ksef2/infra/schema/api/spec/models.py; then | |
| echo "changed=false" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "changed=true" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Create pull request | |
| if: steps.diff.outputs.changed == 'true' | |
| uses: peter-evans/create-pull-request@v7 | |
| with: | |
| add-paths: | | |
| uv.lock | |
| openapi.json | |
| src/ksef2/__openapi_version__.py | |
| src/ksef2/infra/schema/api/spec/models.py | |
| branch: chore/update-openapi-spec | |
| commit-message: "chore: update OpenAPI spec to KSeF API ${{ steps.version.outputs.ksef_api_version }} and regenerate models" | |
| title: "chore: update OpenAPI spec to KSeF API ${{ steps.version.outputs.ksef_api_version }} and regenerate models" | |
| body: | | |
| The KSeF OpenAPI spec has changed. This PR contains the | |
| updated `openapi.json` and regenerated model code. | |
| Detected KSeF API version: `${{ steps.version.outputs.ksef_api_version }}`. | |
| Please review the diff carefully before merging. | |
| labels: dependencies | |
| delete-branch: true |