Files
2026-07-13 13:12:33 +08:00

79 lines
2.7 KiB
YAML

name: Models.dev Snapshot Refresh
"on":
schedule:
# Monthly, 06:00 UTC on the 1st. Data-only refresh of the vendored
# models.dev snapshot; the PR it opens still goes through normal review.
- cron: "0 6 1 * *"
workflow_dispatch:
# The job fetches public catalog data and opens a PR with the diff. It must
# never receive provider API keys or other live-test secrets — only the
# workflow GITHUB_TOKEN, scoped to branch + PR creation.
permissions:
contents: write
pull-requests: write
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: false
jobs:
refresh-snapshot:
name: Refresh vendored models.dev snapshot
runs-on: ubuntu-latest
timeout-minutes: 10
env:
UV_PYTHON: "3.12"
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Set up uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Install dependencies
shell: bash
# Base dependencies only: the refresh script needs the provider
# registry and httpx, nothing from the dev/recommended extras.
run: uv sync --frozen
- name: Refresh models.dev snapshot
shell: bash
run: uv run python scripts/refresh_models_dev_snapshot.py
- name: Open data-refresh pull request
uses: peter-evans/create-pull-request@v7
with:
branch: data/models-dev-snapshot-refresh
delete-branch: true
add-paths: src/opensquilla/provider/models_dev_snapshot.json
commit-message: Refresh vendored models.dev snapshot
title: Refresh vendored models.dev snapshot (scheduled data refresh)
body: |
Scheduled data-only refresh of the vendored models.dev snapshot
(`src/opensquilla/provider/models_dev_snapshot.json`), produced by
`uv run python scripts/refresh_models_dev_snapshot.py`.
- Scope: vendored model-metadata snapshot only; no runtime code
changes.
- Branch target: main
- Linked issue: None
- Release notes: not needed (data refresh).
- Tests: default CI on this PR revalidates the snapshot shape.
- Safety: **needs human review before merge** — upstream data
mistakes (context windows, output caps) poison context budgeting
at runtime. Review the diff line by line; the snapshot is kept
deliberately small for this reason.
- Third-party origin: models.dev api.json (MIT, maintained by the
SST team).