Commit graph

6 commits

Author SHA1 Message Date
05b39054b8
supply-chain: hash-pin dependencies (requirements.lock)
requirements.txt used >= floors and installed with no hashes, so every CI run and
install re-resolved to whatever PyPI served. A poisoned release of any dep
(fastapi, aiohttp, lxml, pillow...) would land unverified.

- requirements.lock: 42 pkgs pinned to exact versions + SHA256 (1258 hashes), uv
  (targeted py3.11 to match CI image)
- Makefile install + CI: pip install --require-hashes -r requirements.lock
- requirements.txt stays the loose source; make pins-lock regenerates

Validated: lock installs under --require-hashes, 460 tests pass under resolved versions.
2026-05-21 10:11:31 -04:00
db4eada111 Fix CI: add httpx to test deps (stale cache) 2026-01-06 09:40:10 -05:00
a3c4c19e54 Fix CI to install from requirements.txt 2025-12-22 20:44:18 -05:00
54087c5bb8 Fix CI: use python3 instead of python 2025-12-22 20:24:28 -05:00
fc33032d74 Add build runner tag to CI 2025-12-22 20:20:37 -05:00
f8a1cf6730 Add GitLab CI to run tests on push 2025-12-22 20:18:43 -05:00