ci(github-action): update action https://github.com/misospace/pr-reviewer-action (v3.3.0 ➔ v3.4.1) #2316
No reviewers
Labels
No labels
area/bootstrap
area/ci
area/kubernetes
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
renovate/container
renovate/github-action
renovate/github-release
renovate/grafana-dashboard
renovate/helm
renovate/terraform
type/digest
type/major
type/minor
type/patch
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
GiorgioAresu/home-ops!2316
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/https-github.com-misospace-pr-reviewer-action-3.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
v3.3.0→v3.4.1Release Notes
misospace/pr-reviewer-action (https://github.com/misospace/pr-reviewer-action)
v3.4.1Compare Source
Bug Fixes
v3.4.0Compare Source
3.4.0 is about attribution. A reviewer earns its keep by blocking a PR only for something the PR actually did, and by claiming only what it can prove. Both halves got real work here: a proof layer that can now handle a requirement enforced across several seams instead of demanding one blessed location, and a cluster of verdict fixes that stop a red check from landing on the author's doorstep when the real cause was a degraded model run, a check that merely got cancelled, or a question nobody can answer from the diff.
The headline is distributed enforcement for requirement tracing (#981). Declare a rule's seams in
.github/pr-reviewer-owners.yml, and the reviewer must cite every seam — its own enforcement location and its own matching test — before it will call the requirement met. A cross-cutting standard that used to be unverifiable by construction is now provable, and only from a topology the model can't author.Nothing breaks and nothing needs reconfiguring. One default changed in the direction of blocking less, and two opt-in paths shifted; all three are spelled out in Upgrading so a stricter gate than you expect never surprises you.
If your specialists should run on a different model than your primary, that is finally a first-class input:
Requirements that span more than one place
.github/pr-reviewer-owners.ymlmay declaregroups— named seams, each with its ownownersglobs and optionaltestsglobs. The requirement ismetonly when the reviewer cites every declared seam with a distinct enforcement location and a distinct matching test (an injective match, so one citation cannot cover two seams). The topology is read from the base ref: the model cannot declare its own requirement distributed, and a model-suppliedsymbolis excluded from the predicate. Caps at four seams and fails closed past that; agroupsblock yielding fewer than two valid seams degrades to a plain ownership rule with a warning.structural_state, for requirements whose truth is a property of repository state rather than runtime behavior or a dedicated test — ".dockerignoremust not excludeassets/" is provable by re-deriving the assertion from the cited non-source file. The classifier is deliberately strict: containment is enforced (paths with..or symlink components fail closed), compound assertions are rejected, and a trailing test-demand adjunct is stripped before the polarity check.not-traced-by-reviewerinstead of falsely reporting "no valid enforcement location", and a bounded one-pass repair re-asks the primary route for the missing ids. It never overwrites a claim that already exists, and it stands down if you have replaced the trace fragment.`api-key`no longer splits into the prose wordsapiandkey, which was enough to let a fabricated "api key" phrase scope a requirement into a redaction-only diff and raise a falserequirement_trace_incomplete.All of this stays behind
requirement-trace: true, as before. Nothing here turns on by default.The reviewer stops blocking on things the PR didn't do
category: verificationfinding is excluded from every blocking determination. Under the defaultstrictpolicy a finding set of only verification asks publishes as approve;findings_severity_gatednever escalates on them;verdict-policy: modelrelaxes a modelrequest_changeswhen the entire open set is asks. Amajorverification finding could block a PR before — it cannot now.request_changesproduced by a degraded model run — the availability fallback with no evidence, oron-model-failure: notice— no longer tripsfail-on-request-changes. The bypass is provenance-gated on the verdict source, so ordinary primary and fallback verdicts are untouched, and deterministic blocks (evidence blockers, a required check inmode: fail, an incomplete requirement trace) still block.failure, socancelled,timed_outandaction_requiredread as themselves; superseded runs are deduplicated by name keeping the latest; every run of the reviewer's own workflow is excluded. The section is framed as context-only, and a finding with no code anchor whose message is nothing but a check name plus a status predicate is capped toinfo. Arequest_changeswhose every finding just re-announces a red check now approves — CI already gates that merge on its own. The match is anchored and strict on purpose: false negatives beat deterministic false approvals.../inside a comment is not a path-handling risk (#968, closes #960): comment spans are blanked before the content classifier scans, so a JSDoc mentioning../events/types.jsstops firingpath_handling_changesand stops demanding amust_checkon a clean diff. Surviving mentions are still recorded as a discounted provenance signal, and CSS hex colours, URL schemes and unspaced floor division are correctly left as code.# PR Diffand# PR Files, and the truncation caveat comes only from the in-band marker a real cut appends. Small PRs stop claiming their diff was truncated in the model's Unknowns section.Trust, provenance, and secrets
approve. Missing or mismatched ownership fails closed — a fresh review, never a silent skip.sk-families (#991, #997, #1002): bare and hyphenated OpenAIsk-keys are masked in published prose, and the dashed families are masked in repository source evidence —sk-proj-,sk-ant-api03-,sk-or-v1-, plus the marker- and shape-pinnedsk-svcacct-,sk-admin-,sk-None-,sk-ant-oat01-andsk-ant-admin01-. Entropy and marker guards keep ordinary same-prefix paths likedocs/sk-proj-deployment-runbook-notesfrom being redacted. The accepted residual: anoat01token continuing past its 40-character body is masked whole rather than partially.html_urlpath matches the statustarget_urlpath on the runner's origin. Multi-job reviewer workflows and older instances still want an explicitCI_STATUS_CONTEXT; older instances warn immediately and fall back to bounded waiting. No new permissions — the call uses the existing token.Where you can see it
::error::annotation with its file and line on the check run, plus a Severity / Category / Message / File table in the Actions step summary. Model-derived text is redacted and escape-flattened first, so a finding cannot forge a newline or break out of its fence to promote itself into workflow output.ai-specialist-model,ai-specialist-base-url,ai-specialist-api-formatandai-specialist-api-keydefine a specialist profile;ai-specialist-correctness-model,ai-specialist-security-modelandai-specialist-tests-modeloverride the model for one role. Unset fields inherit the primary route. Invalid specialist config fails soft back to primary inheritance — it can never redirect the main review. Workflow inputs only: never PR-controlled, never repo-configurable.ai-reviewlabel or/ai-reviewcommand. Marking the PR ready re-opens it. If you added your ownif: !github.event.pull_request.draftguard, you can drop it.Routing
autoalways starts on primary (#965): there is no longer a deterministic pre-primary route to the smart model. Smart is reached only when a completed primary verdict setssmart_review_requested, bounded to one rerun — the reviewer-requested escalation contract from #721, now with no back door. The inertescalate_on_*sibling flags are formally gone from the contract. This only affects you if you setreview-routing-mode: auto.Upgrading
Pin to
v3.4.0, or the floatingv3tag, which now follows this build. Immutable-version and SHA pins must be bumped deliberately.Three behaviors changed, all in the direction of blocking less. None require a config change.
verdict-policy: strict(the default) — acategory: verificationfinding no longer blocks, even taggedmajor(#986). A verification-only finding set publishes as approve-with-findings.fail-on-request-changes: true(opt-in) — arequest_changesfrom a degraded run (availability fallback with no evidence, oron-model-failure: notice) no longer fails the check (#987). Deterministic blocks still do.review-routing-mode: auto(opt-in) — PRs that could previously skip straight to the smart model now always get a primary review first (#965).Worth knowing:
ai-specialist-*inputs, andgroupsinside.github/pr-reviewer-owners.yml.CI_STATUS_CONTEXT.npm run typecheck && npm testis now the sole developer gate, and the coverage it pinned lives on in focusedtests-v3/regressions.Full changelog: https://github.com/misospace/pr-reviewer-action/compare/v3.3.0...v3.4.0
Generated changelog (release-please)
Features
Bug Fixes
../inside comments (#960) (#968) (811dfcc)Chores
Configuration
📅 Schedule: (in timezone Europe/Rome)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate CLI.
No rendered changes.
konflate 0.6.4 · rendered
5a25a73· full diff →AI Automated Review
Analysis engine: minimax/MiniMax-M2-7-anthropic (anthropic) — primary route · pr-reviewer-action v3.4.1
Findings (1 info)
.forgejo/konflate-evidence-providers.jsonApprove — this is a clean Renovate version-bump of
misospace/pr-reviewer-actionfrom v3.3.0 to v3.4.1, a single-line SHA-pinned reference update with no configuration changes.The PR body faithfully surfaces all changes across the skipped v3.4.0 release (which this PR bridges in one jump): distributed enforcement with
.github/pr-reviewer-owners.ymlgroups,structural_stateproof shape,not-traced-by-reviewerverdict fix, hyphenated-code-span atomisation, and verification-asks never blocking. The actual v3.4.1 patch on top adds only a bug fix (5xx retriable statuses staying on the tier budget). No breaking changes, no new required inputs, and no reconfiguration needed — consistent with the upstream "Nothing breaks and nothing needs reconfiguring" note.Claims to falsify (1/1 held, 4 unverified — feature opt-in, not applicable until owner rules are declared):
structural_state,not-traced-by-reviewer, hyphenated spans): all scoped behindrequirement-trace: trueand.github/pr-reviewer-owners.yml; this repo already hasclaim-falsification: "true"but has nogroupsblocks orstructural_staterequirements declared, so none of these are exercised by the current diff. They are unverified, not violated.category: verificationnever blocking): functional; no evidence of contradiction.Changed files: 1 file, 1 line —
.forgejo/workflows/pr-reviewer.yaml, theusesSHA and its inline comment.Non-blocking caveats:
evidence-providers-file: .forgejo/konflate-evidence-providers.jsoninput points to a file the konflate evidence provider could not locate. This is pre-existing (not introduced by this PR) and the PR description notes the same, but the provider config and file should be reconciled.actionlint,yamllint) on the PR head — these are lint failures on the same commit, unrelated to the action version change, and gate on their own.ci(github-action): update action https://github.com/misospace/pr-reviewer-action (v3.3.0 ➔ v3.4.0)to ci(github-action): update action https://github.com/misospace/pr-reviewer-action (v3.3.0 ➔ v3.4.1)baaebcd4a95a25a73384