Skip to content

Update OpenAPI spec #126

Update OpenAPI spec

Update OpenAPI spec #126

Workflow file for this run

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