79 lines
2.7 KiB
YAML
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).
|