Repository navigation
test(lab-ops-hub): wire both crawl-validator suites into npm test and CI - #471
Merged
Merged
Conversation
npm test previously ran only the TypeScript suite; the Python container validator suite from #469 was run by nothing, and no workflow mentioned the package at all. Split test into test:ts/test:py with test running both (failing if either fails), add a lab-ops-hub workflow that runs npm test on pkgs/lab-ops-hub/** changes, and document the one command in the README. Ablation-verified: removing the Python trailing-dot strip leaves the TS suite green but makes npm test exit 1 (localhost. test fails). Fixes #470
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configuration
📒 Files selected for processing: 3
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
4 tasks
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.
Fixes #470
Problem
PR #469 added the first Python tests for the lab-ops-hub container crawl validator, but nothing ran them — and no CI ran the TypeScript suite either:
pkgs/lab-ops-hub/package.json: the only test entry point wasnode --test "test/**/*.test.ts", which matches only the TypeScript suite.grep lab-ops-hub .github/workflows/returned nothing — no workflow mentioned the package. The checks on the crawl-fix PRs (lab-ops-hub: public Worker has no auth on mutating, upload, AI and crawl endpoints (PR #436) #441, lab-ops-hub: Worker-fallback crawler follows redirects to non-public targets (no redirect validation, unlike the container) #460, lab-ops-hub: fetchFollowingValidatedRedirects fetches its start URL unvalidated — the SSRF guard is not safe by construction (PR #461) #464, lab-ops-hub: crawl validators accept trailing-dot spellings of refused hosts (localhost., 169.254.169.254.) #466, lab-ops-hub container crawler accepts inet_aton IPv4 spellings (127.1, 2130706433, 0x7f.1) — loopback SSRF bypass in validate_crawl_url #468) were treefmt / flake eval only.The two validators (
validateCrawlUrlin the Worker,validate_crawl_urlin the container) are the SSRF guard for a publicly reachable crawler with a documented "same policy independently" contract; tests that never run cannot pin that policy.Solution
package.json:npm testnow runs both suites and fails if either fails —test:ts(the previous Node command, unchanged)&&test:py(python3 -m unittest discover -s test -p "test_*.py", the command the Python file's header already documented)..github/workflows/lab-ops-hub.yml: runsnpm teston pull requests and pushes to main touchingpkgs/lab-ops-hub/**(plus the workflow itself), following the repo's existing workflow patterns (checkout/setup v7 pins, Node 24 as in mcpx.yml, Python 3.12 as in research-workflow.yml, timeout-minutes cap per CI: add timeout-minutes caps to every job in every workflow #293, push runs keyed by run_id per CI: push-to-main verification runs share one cancellable group — 11 of the last 18 id-check main runs were cancelled by the next merge #392). Neither suite needs the package dependencies installed (TS tests import only puresrc/lib.ts; Python tests are stdlib-only), so there is deliberately no install step.README.md: new Testing section naming the one command.Verification
npm teston the fixed tree: TypeScript 11/11 pass, Python 4/4 pass.container/app.py) leaves the TypeScript suite green (11/11) butnpm testnow exits 1 —test_container_validatefails onhttp://localhost./exactly as it should. With the strip restored,npm testis green again. Before this PR, that Python-only regression would have passed every automated check.Single-repo: lab-ops-hub exists only in developing-today/code.
Need help on this PR? Tag
@codesmith-botwith what you need.