Repository navigation
feat(OMN-13877): add dep-provenance gate to omniclaude + repin omnibase-core to PyPI - #1840
Conversation
…se-core to PyPI Port the canonical per-repo dep-provenance gate from omnibase_infra (OMN-13873) to omniclaude, closing the last hole in the org-wide rollout (OMN-13877): - scripts/check_dep_provenance.py — static/offline gate: forbids any git/rev/branch/tag source for omnibase-core|spi|compat in [tool.uv.sources] (onex-change-control + omnibase-infra exempt; inline `# raw-override-ok: <ticket>` escape hatch). - .github/workflows/dep-provenance-gate.yml — job "Dep Provenance Gate" (merge_group-safe always-reports; enforces only when pyproject.toml changes). - .pre-commit-config.yaml — check-dep-provenance local hook. - tests/scripts/test_check_dep_provenance.py — 14 recurrence-guard tests. Repin omnibase-core from the `git rev=v0.43.0` tag to PyPI so the new gate passes. The PyPI 0.43.0 wheel omits omnibase_core.models.skill.model_skill_result (the git tag shipped it) and 0.45.0+ renamed it to model_skill_result_file; omniclaude imports the 0.44.0 module, so the resolvable-from-PyPI compatible range is 0.44.x. Constraint narrowed to >=0.44.0,<0.45.0 + `uv lock` (0.44.0). Full unit suite green (11304 passed) with PYTHONPATH cleared to match CI; the lone local failure is an environmental missing-`timeout`-binary case (CI Ubuntu has it). Gate + all 14 gate tests pass. Refs: OMN-13877, OMN-13873
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 38 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (5)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
| Verdict | Meaning | Blocks merge? |
|---|---|---|
passed |
No critical/error findings | No |
blocked |
CRITICAL or ERROR findings found | Yes |
degraded |
All models unavailable (infra) | No (pilot) |
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524)
Evidence-Source: OCC#3524
Evidence-Ticket: OMN-13877
Summary
Closes the last hole in the org-wide dep-provenance gate rollout (OMN-13877): omniclaude was the only Python repo without the gate. Ports the canonical per-repo gate from omnibase_infra dev (OMN-13873, PR #2187) and repins omnibase-core from a git tag to PyPI so the new gate passes.
Refs: OMN-13877, OMN-13873
What shipped
scripts/check_dep_provenance.py— static/offline gate; forbids anygit/rev/branch/tagsource foromnibase-core|spi|compatin[tool.uv.sources](onex-change-control+omnibase-infraexempt; inline# raw-override-ok: <ticket>escape hatch). Ported verbatim from infra; the escape-regex var was renamed_RAW_OVERRIDE_OK_REso omniclaude's strictervalidate-secretshook does not false-positive on a*_TOKEN_*name..github/workflows/dep-provenance-gate.yml— jobDep Provenance Gate; merge_group-safe always-reports, enforces only when a PR modifiespyproject.toml. Safe as a required check (never wedges the queue)..pre-commit-config.yaml—check-dep-provenancelocal hook (runs onpyproject.toml).tests/scripts/test_check_dep_provenance.py— 14 recurrence-guard tests (reject core/spi git-rev, branch, tag, underscore, single-quote, indented, subtable; allow occ-only/PyPI-only; escape-token semantics; fail-closed on missing file).Repin (the reason the gate can pass here)
omniclaude pinned
omnibase-core = { git rev = "v0.43.0" }. Findings:omnibase_core/models/skill/model_skill_result.py, but the PyPI 0.43.0 wheel omits it; PyPI 0.45.0+ renamed it tomodel_skill_result_file.py. omniclaude'sshared/models/model_skill_result.pyimports themodel_skill_resultmodule.model_skill_result.py). Narrowed the constraint to>=0.44.0,<0.45.0in bothdependenciesand[tool.uv].override-dependencies, removed the git source, anduv lock(nowomnibase-core 0.44.0fromregistry = pypi.org/simple).Verification (local, PYTHONPATH cleared to match CI)
python3 scripts/check_dep_provenance.py→OK(exit 0).pytest tests/scripts/test_check_dep_provenance.py→ 14 passed.pytest tests/ -m "not integration",env -u PYTHONPATH) → 11304 passed, 32 skipped. The lone local failure (test_checkout_occ_contracts_shell_suite) is an environmental missing-timeout-binary case on this macOS host (CI Ubuntu hastimeout), unrelated to this change.validate-secrets,validate-clean-root, and all pre-commit/pre-push hooks pass (no--no-verify).After merge,
Dep Provenance Gateis flipped required on omniclaudedev.