fix(ci): repair refresh-data workflow, triage stale security alerts - #161
Merged
Merged
Conversation
The Refresh training data workflow failed on every scheduled run since 2026-08-17: create-pull-request v7.0.8 runs 'git remote prune origin' against the credentials checkout@v6 persists, sending a duplicate Authorization header that GitHub rejects with HTTP 400. v8.1.1 targets checkout@v6 and skips the prune on hosted runners. Also records the triage of the 12 stale-snapshot Dependabot alerts (8 keras, 4 python-multipart) in the changelog and bumps the release to 2.3.1. No dependency versions changed: keras is already 3.15.1 and python-multipart was removed in 2.2.0.
|
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Part A: 12 open Dependabot alerts (8 keras, 4 python-multipart)
All 12 were false positives matched against a stale
requirements.txtdependency-graph snapshot (keras 3.13.2, python-multipart 0.0.27, tensorflow 2.20.0) -- the same frozen snapshot already documented in.github/dependabot.yml. Verified at HEADf705411:requirements-ml.txt, thepyproject.tomlmlextra, and both hash-pinned lock exports -- at or above every first-patched version (3.14.0 for chore(deps): update redis docker tag to v8.6 #118, 3.15.0 for chore(deps): update dependency node to v24 #119-chore: update security policy r1 #125).requirements.txtcontains no keras at all.python-multipartwas removed entirely in v2.2.0 (the API is JSON-only);git grepfinds no reference in any manifest (chore(deps): update dependency msw to v2.12.7 #100-chore(deps): update dependency prettier to v3.8.0 #103).Action taken: dismissed all 12 alerts via the API with per-alert justifications -- keras as
inaccurate, python-multipart asnot_used. No dependency version needed changing, so no pins moved.uv lock --checkpasses,uv sync --extra mlsucceeds, keras 3.15.1 imports, the FastAPI app loads, and all 59 backend tests pass.If alerts respawn from the frozen snapshot (two in-repo fixes have already failed to purge it: the forced re-parse in
03aa6b6and the pip ecosystem declaration independabot.yml), the remaining options are repo-admin actions: disable and re-enable the dependency graph under Settings > Advanced Security, or ask GitHub support to drop the stalerequirements.txtsnapshot.Part B: failing
Refresh training dataworkflowFailed on all three scheduled runs (Aug 17, 24, 31). Root cause from run 33390403866:
peter-evans/create-pull-requestv7.0.8 runsgit remote prune originagainst the credentialsactions/checkout@v6persists, so git sends a duplicate Authorization header and GitHub rejects it with HTTP 400 (fatal: unable to access ... error: 400, exit 128). The data-fetch step succeeded on every failed run; only PR creation broke. Not a secret issue -- the workflow uses the defaultGITHUB_TOKEN.Fix: bump
create-pull-requestto v8.1.1 (SHA-pinned5f6978f), which targets checkout@v6 and restricts the prune to self-hosted runners (fixed upstream in v7.0.11, PR #4250). Verify by dispatching the workflow manually after merge (gh workflow run refresh-data.yml).Also
pyproject.toml,client/package.json,main.py,uv.lock.Tested
uv lock --checkpasses;uv syncanduv sync --extra mlsucceedkeras 3.15.1imports; FastAPI app module loadsrefresh-data.ymlparses as valid YAML