Skip to content

ci: dependency-review required check fails closed because Dependency Graph is disabled on TEPP #498

Open

Description

@seonghobae

Finding

The organization required workflow dependency-review fails closed on ContextualWisdomLab/TEPP whenever it runs, independent of the pull request content.

Exact-head evidence: PR #497 head 8db3a57b, run 34754213609 (attempts 1 and 2, the second after rerun-failed-jobs):

##[error]Dependency review evidence unavailable for ContextualWisdomLab/TEPP at exact base a243f18d... and head 8db3a57b...: HTTP 403; curl exit 0. Verify dependency-graph/security configuration and GitHub service behavior, then rerun.

Reproduction with a repository-admin user token (not a rate limit; core quota was 5000/5000 at the time):

gh api repos/ContextualWisdomLab/TEPP/dependency-graph/compare/a243f18d...8db3a57b   # HTTP 403 Forbidden
gh api repos/ContextualWisdomLab/TEPP/dependency-graph/sbom                           # HTTP 404 Not Found

The SBOM endpoint returning 404 on a public repository means the Dependency Graph feature is disabled for this repository, so the dependency-review compare API cannot answer. On PRs where the check is skipping (#480, #492) the workflow simply did not select the job; it is not passing there.

Impact

Any PR on which the required dependency-review check is selected cannot reach a clean required-check state. This is a repository configuration defect, not a code or supply-chain finding of the affected PR.

Required action (repository/org admin; not performable by automation)

  1. Enable Dependency Graph for ContextualWisdomLab/TEPP (Settings → Code security → Dependency graph), then confirm gh api repos/ContextualWisdomLab/TEPP/dependency-graph/sbom returns 200.
  2. Rerun the failed dependency-review job on the affected head and confirm the compare call succeeds.
  3. If the .github reusable workflow is meant to skip rather than fail on repositories without Dependency Graph, that is a separate .github-owner decision; TEPP should keep fail-closed until then.

Tracking

Activity

  1. seonghobae commented on Sep 14, 2026

    @seonghobae
    ContributorAuthor

    Quantifying the impact, measured 2026-09-15 across all 100 open pull requests.

    dependency-review is currently a failing check on 29 of the 80 failing PRs, making it the sixth most common blocker in the queue. It fails for the same reason on all of them: the Dependency Graph is disabled for this repository, so the action has nothing to read.

    This one is not fixable from a branch. It needs a repository administrator to enable Settings → Code security → Dependency graph. The verification afterwards is gh api repos/ContextualWisdomLab/TEPP/dependency-graph/sbom --jq .sbom.name returning 200 instead of 403.

    Recording the count so this can be prioritised against the other queue blockers rather than treated as background noise.

  2. seonghobae commented on Sep 16, 2026

    @seonghobae
    ContributorAuthor

    2026-09-17 fresh owner-path check: the repository-side Dependency Graph prerequisite is still unresolved. PR #538 remains on exact 0a6947b11f2dba9e161f2abe8bdec0f652d4b47a; its Dependency Review path remains fail-closed, and this issue is still the canonical TEPP repository-setting blocker. No leaf workflow shim or substitute scanner has been introduced.

    Separate CodeQL state has progressed and should not be conflated with this setting blocker: attempt-2 compatibility jobs 104915624181 (python) and 104915624335 (actions) both obtained hosted runners and terminally failed while reading an absent current-head dispatch verdict. The subsequent Dispatch current-head CodeQL scan job 104992789328 is the item that remains queued pre-checkout (steps=[]).

    Next valid action here remains repository-admin enablement of Dependency Graph, confirmation that the SBOM endpoint returns HTTP 200, and then an unchanged-head Dependency Review rerun.

  3. seonghobae commented on Sep 17, 2026

    @seonghobae
    ContributorAuthor

    2026-09-17 fresh follow-up on #538 exact 0a6947b11f2dba9e161f2abe8bdec0f652d4b47a: Dependency Review remains the same repository-setting blocker. Security run 35045658427 still has dependency-review job 104707865105 terminal failure at Check dependency review support; OSV and Scorecard are successful but are not substitutes for the required dependency-review evidence.

    CodeQL is a separate lane and has advanced to attempt 3. Detect CodeQL languages job 105046923125 is terminal success; python compatibility job 105046943410 obtained a hosted runner and terminally failed at Read current-head CodeQL dispatch verdict; actions compatibility job 105046922540 is currently queued pre-checkout with runner_id=0 and steps=[]. Do not treat the CodeQL queue state as evidence that the Dependency Graph prerequisite changed.

    Next valid Dependency Review action remains repository-admin enablement of Dependency Graph, SBOM endpoint HTTP 200 verification, then unchanged-head rerun.

  4. seonghobae commented on Sep 17, 2026

    @seonghobae
    ContributorAuthor

    Fresh exact-head reproduction on the current main-target successor: PR #538 exact 0a6947b11f2dba9e161f2abe8bdec0f652d4b47a, Security Scan run 35045658427, job dependency-review 104707865105. The job received a GitHub-hosted runner and checkout succeeded, then Check dependency review support failed; the actual Dependency review action was skipped. In the same run, osv-scan and scorecard completed SUCCESS, so those remain complementary scanners rather than substitutes for the required dependency-review evidence.

    No rerun was issued because the repository prerequisite tracked here has not been shown to change. Required next action remains repository-admin enablement of Dependency Graph, SBOM endpoint HTTP 200 verification, then an unchanged-head rerun. Until that prerequisite changes, repeated leaf reruns would be blind and should remain avoided.

  5. seonghobae commented on Sep 17, 2026

    @seonghobae
    ContributorAuthor

    Fresh unchanged-head evidence from foundation #538 exact 0a6947b11f2dba9e161f2abe8bdec0f652d4b47a: Security Scan run 35045658427 is still failure solely on required dependency-review job 104707865105. That job obtained a hosted runner and exact-head checkout successfully, then failed at Check dependency review support; the actual Dependency review step was skipped. OSV job 104707865051 and Scorecard job 104707865097 succeeded, but they are not substitutes for the required dependency-review evidence. #498 therefore remains the correct repository-admin owner path: enable Dependency Graph, verify SBOM HTTP 200, then rerun unchanged-head dependency-review.

  6. seonghobae commented on Sep 17, 2026

    @seonghobae
    ContributorAuthor

    Fresh downstream confirmation for Ready PR #538 exact 0a6947b11f2dba9e161f2abe8bdec0f652d4b47a: Rust Foundation, Documentation Quality, and Semgrep are GREEN; Security Scan run 35045658427 remains FAILURE and the repository-admin Dependency Graph prerequisite is still open. #538 is otherwise unchanged and mergeable. Keep the owner action as written: enable Dependency Graph, verify the repository SBOM endpoint returns HTTP 200, then rerun dependency-review on the unchanged head. No scanner substitution or leaf gate weakening is authorized.

  7. seonghobae commented on Sep 19, 2026

    @seonghobae
    ContributorAuthor

    2026-09-19 fresh exact-head canary: PR #538 exact f335624cea977fea7d7fe6f36871868557fe2bb7, Security Scan run 35389817143 is terminal FAILURE specifically at dependency-review support admission. Job 105811205491 acquired a GitHub-hosted ubuntu-24.04 runner, completed exact checkout/verification, then the support probe called the exact dependency-graph compare endpoint for base a243f18da4a4ca8a8d068c39922537f1f8ed6ad0 and this head and recorded http_status=403 curl_exit=0. The pinned actions/dependency-review-action@a1d282b... step therefore did not run. Same run's changed-scope, Scorecard, and OSV jobs executed successfully.

    This materially narrows the current blocker: for this exact generation it is not generic runner acquisition starvation, and the historical HTTP 403 in this issue reproduces on the current Ready foundation head. The 403 still does not by itself prove which repository/account configuration property is causal.

    Canonical cross-repository owner .github#810 has been updated with this specimen. Keep #498 open until an authorized repository/org configuration read/write path establishes the actual dependency-graph state, repairs it if needed, and a fresh unchanged-head canary reaches HTTP 200 plus execution of the pinned dependency-review action. No leaf wake commit or substitute scanner is justified.

  8. seonghobae commented on Sep 22, 2026

    @seonghobae
    ContributorAuthor

    Fresh 2026-09-22 verification confirms this remains a live external repository-configuration blocker, not a PR-local dependency finding.

    Main-target successor #538 exact f335624cea977fea7d7fe6f36871868557fe2bb7 already contains the canonical rustls = 0.23.45 repair from #526. Its Rust Foundation run 35389817094 is GREEN and its OSV/Trivy/Scorecard security jobs are GREEN, but Security run 35389817143 fails only in dependency-review at Check dependency review support; the dependency-review action itself is skipped after that fail-closed support probe. This is the same Dependency Graph availability defect tracked here.

    The earlier internal deadline (2026-09-20) has passed. Required admin action is unchanged: enable Dependency Graph for TEPP and verify the SBOM/compare API is available, then rerun the exact affected required check. Do not weaken or skip the required workflow in TEPP to make #538 mergeable.

    This also blocks #648 indirectly: its exact-head cargo-deny failure is RUSTSEC-2026-0285 on protected main's rustls 0.23.43, while the canonical fixed dependency state is already carried by #538. #648 therefore remains Draft and must ordinary-forward reconcile after #538 (or a verified complete successor) reaches protected main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions