Skip to content

ci-status's Dependabot trust-path hold says a person merges it, but the ruleset leaves no path to merge #11270

Closed

Description

@kyle-sexton

Problem

ci-status fails a Dependabot PR that changes a trust-gate path with "A person merges it" (.github/workflows/pr-require-checks.yml, the held_paths branch; owner decision Q24). But the main ruleset requires ci-status to pass and merges to go through the merge queue, and an admin cannot bypass it:

gh pr merge 11183 -R melodic-software/claude-code-plugins --squash --admin
GraphQL: Repository rule violations found
Required status check "ci-status" is failing.
Changes must be made through the merge queue

So a held Dependabot PR has no merge path at all. #11183 (claude-code-action 1.0.264 → 1.0.265) was worked around by re-authoring the bump as #11267.

Expected

The person Q24 names can lift the hold, for example with an approving review on the current head. Other gate/trust holds already work this way: an approving review lifts them, and removing the label does not.

Evidence

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 30, 2026
  2. github-actions commented on Oct 30, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: structural
    Basis: automated intake triage; the lanes App applied this class.

    Size: Small
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: ci-status fails a Dependabot PR that changes trust-gate paths with "A person merges it". The main ruleset requires ci-status and the merge queue, and admin bypass is refused, so a held PR can't be merged by anyone. You expect an approving review on the current head from the person Q24 names to lift the hold, as the other gate and trust holds already do. No duplicate found among open issues. The approach looks clear from the issue. The fix changes trust logic in a workflow, so the code and security review lanes should judge the diff.

    Automated triage, applied by the lanes App.

  3. added
    priority: highSignificant impact, or blocks an imminent release; staff this cycle.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 30, 2026
  4. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Oct 30, 2026
  5. melodic-automation-lanes commented on Oct 30, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane: no trusted-human acceptance criteria: a listed human must put the confirmed - [ ] criteria in the body or post them as their own comment, or, on an issue a listed human filed, intake's newest refinement comment must hold them unedited. Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).

  6. melodic-automation-lanes commented on Oct 30, 2026

    @melodic-automation-lanes
    Contributor

    The latest triage verdict holds nothing: admission moved the issue to status: confirmed; its comment says why.

  7. melodic-automation-lanes commented on Oct 30, 2026

    @melodic-automation-lanes
    Contributor

    Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.

    Intended outcome: ci-status lifts its Dependabot trust-gate path hold when a designated person approves the current head, so a held Dependabot PR can pass ci-status and go through the merge queue.

    Related work

    Open questions

    1. Whose approving review lifts the Dependabot trust-gate hold: the repository owner only, a CODEOWNERS or trusted-actors member, or any user with write access?
      RECOMMENDED: Only a user listed in .github/standards/trusted-actors/trusted-actors.json who is not the PR author, with the approval bound to the current head SHA. Basis: judgment
    2. Is the lift an approving review only, or may a path-scoped alternative such as a passing security review also clear it?
      RECOMMENDED: An approving review only. The path stays held when no such approval exists, and a new push to the head voids the approval. Basis: .base/.github/workflows/pr-require-checks.yml:5062
    3. Should the same lift apply to the other 'A person merges it' failure at line 5158 (agent-App trust-path hold) and the fewer-files, fewer-commits and push-history fail-closed stops, or only the Dependabot held_paths branch at line 5062?
      RECOMMENDED: Only the Dependabot held_paths branch at line 5062. The App hold is off in this repository, and the unreadable-input stops should keep failing closed. Basis: .base/docs/conventions/pr-pipeline/README.md:2566
    4. Should the docs describe the admin bypass as break-glass? README line 2556 says it is, but the ruleset refuses it.
      RECOMMENDED: Yes. Correct the README text, and document the approving-review lift as the supported path. Basis: .base/docs/conventions/pr-pipeline/README.md:2556

    Sources read

    • .base/.github/workflows/pr-require-checks.yml:5017-5068: the Dependabot (exempt author) branch calls held_paths and fails with 'A person merges it.' when a trust-gate path changed. It reads no review.
    • .base/.github/workflows/pr-require-checks.yml:5077-5163: the agent-App trust-path hold has a second 'A person merges it' failure at line 5158.
    • .base/.github/workflows/pr-require-checks.yml:5022-5024: the generated guard empties hold_patterns for every author except Dependabot (id 49699333) while path-holds is false.
    • .base/docs/conventions/pr-pipeline.yaml:1118-1130: ci-status holds a Dependabot PR for trust-gate paths even with path-holds false (Q24).
    • .base/docs/conventions/pr-pipeline/README.md:2555-2577: documents the hold as 'a person merges it' and calls admin bypass break-glass, which the issue's ruleset refusal contradicts.
    • .base/scripts/ci-review-lanes.test.sh:125,444: tests that pin the Q21/Q24 behavior; they would need an approving-review case.
    • .base/.github/workflows/pr-require-checks.yml:5832: the only reviews API read in this file is the one at line 5832, so the held_paths branch has no approval check to extend.

    To answer, post a comment that starts with this line:

    **Decision recorded.** <answer>
    

    Automated refinement by the lanes App. Answer with a comment whose first line is **Decision recorded.**.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.status: needs-decisionAwaiting a human or maintainer judgment call.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions