ci: bump Actions pins, add track_progress, add claude-debug label toggle - #15
Open
jnasbyupgrade wants to merge 1 commit into
Open
Conversation
Combines three related CI-workflow improvements into one PR (touching only claude-code-review.yml and claude.yml): - Bump actions/checkout@v4 -> @v7 (current latest major) to clear the Node.js-20-deprecation warning it triggers on every run. Supersedes/ incorporates upstream PR Postgres-Extensions#13 and fork branch ci/bump-actions-versions, which made the same v4->v7 bump to the same two lines. anthropics/claude-code-action@v1 is still current (a floating v1 tag exists at v1.0.185) so it is left as-is. - Add track_progress: true to the claude-code-action step in claude-code-review.yml so it posts a live, updating checklist comment as it works instead of staying silent until the whole run finishes -- which, combined with this workflow's cost gate, could leave a PR dark for the better part of an hour. Disabled specifically for labeled-triggered runs (see below): the action's own track_progress validation only accepts opened/synchronize/reopened/ready_for_review for pull_request(_target) events and throws for any other action. - Add a claude-debug PR-label toggle so a maintainer can skip the cost gate and turn on full transcript output (show_full_output) by just labeling the PR, without editing/pushing the workflow file. The label is queried live via `gh pr view` inside the step rather than read from the event payload, since GitHub's "Re-run jobs" replays the original stored payload and would miss a label added afterward. `labeled` is added to the trigger types so applying the label alone starts a fresh run, scoped tightly in the job's `if:` so an unrelated label can't re-trigger this paid workflow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
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.
Summary
Combines three related, independently-motivated CI-workflow fixes into one PR (touching only
claude-code-review.ymlandclaude.yml), per~/test-fixes.mditems #4, #7, and #11:Bump
actions/checkout@v4->@v7(current latest major, confirmed viagh api repos/actions/checkout/releases) in both workflow files, to clear the "Node.js 20 is deprecated" warning it triggers on every run.anthropics/claude-code-action@v1is left as-is — it's a floating major tag still tracking current releases (latest releasev1.0.185), not a stale pin.This supersedes/incorporates ci: bump GitHub Actions to latest versions #13 ("ci: bump GitHub Actions to latest versions") and the
ci/bump-actions-versionsfork branch, which made the identicalv4->v7change to the same two lines. Once this PR merges, ci: bump GitHub Actions to latest versions #13 should be closed (not merging it separately — same diff, now folded in here alongside the other two changes per the "one PR" request). I did not close ci: bump GitHub Actions to latest versions #13 myself.Add
track_progress: trueto theclaude-code-actionstep inclaude-code-review.yml. Without it, the action posts nothing to the PR until the entire run finishes — combined with this workflow's cost gate (which already waits for sibling CI), a run can go dark for the better part of an hour with no visible progress.track_progress: truemakes it post/update a live checklist comment instead.Caveat found while implementing: the action's own
track_progressvalidation only permitsopened/synchronize/reopened/ready_for_reviewforpull_request/pull_request_targetevents and throws for any other action — includinglabeled, which is exactly the new claude-debug trigger added in (3). Sotrack_progressis conditionally disabled (${{ github.event.action != 'labeled' }}) for labeled-triggered runs to avoid that throw.Add a
claude-debugPR-label toggle so a maintainer can skip the cost-gate wait and turn on full transcript output (show_full_output: true) just by labeling the PR, with no workflow-file edit/push needed per debug iteration:gh pr view <pr> --json labels --jq ...), not fromgithub.event.pull_request.labels— GitHub's "Re-run jobs" replays the original stored event payload, so a payload-based check would miss a label added after the run started.labeledwas added to the workflow's triggertypes:, scoped tightly in the job'sif:(github.event.action != 'labeled' || github.event.label.name == 'claude-debug') so applying an unrelated label doesn't re-trigger this paid workflow.show_full_outputbehavior are gated on the live label check.Note on
ci.yml: this repo's.github/workflows/ci.ymldoes not exist onupstream/masteryet (it's in-progress, uncommitted work elsewhere — a separate parallel PR) so there was nothing to bump there in this branch. It only hasactions/checkout@v4there too, which that other PR (or a follow-up) should bump when it lands.Verification (actual observed results)
Broader finding than anticipated: because
claude-code-review.ymlruns onpull_request_target, GitHub Actions sources the entire workflow file — not just thetrack_progressline, but the checkout version, theon:/types:trigger list, and the new debug-label step — from the base branch (master), never from a PR's own head branch. This PR's ownclaude-reviewcheck (run 30961053711) confirmed this concretely: its log showsRun actions/checkout@v4(not v7) and has noCheck for claude-debug labelstep at all — i.e. it ran the unmodifiedmastercopy end to end. None of this PR's three changes toclaude-code-review.ymlare verifiable from this PR's own check; verification for all three (not justtrack_progress) is deferred to after merge.python3 -c "import yaml; yaml.safe_load(open(f))"passed for both files. Repo-widegrep -rn 'actions/checkout@v4'under.github/workflows/finds nothing left. Real-run confirmation that the Node-20-deprecation warning disappears for the changed lines is deferred to the next PR that runs post-merge (see broader finding above) —claude.yml's checkout step is likewise only exercised via non-pull_request_targetevents (issue_comment, etc.) which also load the workflow from the default branch, so it has the same deferred-verification status.track_progress: as documented above and in the file's own comment — unverifiable pre-merge, confirmed by the run log showing notrack_progressinput was even passed (old workflow).claude-debuglabel toggle: added the label to this PR (gh pr edit 15 --add-label claude-debug) and confirmed viagh api .../check-runsthat no new run was triggered at all — because master's currently-live workflow doesn't havelabeledin itson:trigger types either, for the same base-branch-sourcing reason above. This is a cleaner/stronger negative result than the "trusted-fork gate" structural reason anticipated going in — it's not that the job runs and is filtered out, it never even queues. Removed the label afterward (gh pr edit 15 --remove-label claude-debug) to leave the PR unlabeled since it had no observable effect. Real testing of this toggle requires a PR opened after this one merges.Separate, pre-existing, unrelated finding: the one
claude-reviewrun this PR did trigger (using the currentmasterworkflow,actions/checkout@v4) failed at its checkout step withactions/checkout's "pwn request" safety refusal: "Refusing to check out fork pull request code from a 'pull_request_target' workflow ... set 'allow-unsafe-pr-checkout: true'". This reproduces onmastertoday regardless of this PR (the version pin isn't the cause — v4 already exhibits this) since the step checks outjnasbyupgrade/object_reference, whichactions/checkouttreats as a fork relative to the base repoPostgres-Extensions/object_reference. This meansclaude-reviewcurrently fails at checkout for every PR from this fork, independent of anything in this PR. Flagging it since it's real and currently broken, but leaving it out of scope here — fixing it (allow-unsafe-pr-checkout: true) is a real security-tradeoff decision that intersects with this file's existing extensivepull_request_targetsecurity comments, and wasn't part of the three items this PR was scoped to.Test plan
actions/checkout@v4pins — none remainingclaude-reviewcheck run to completion — confirmed (see above) it runs the pre-mergemasterworkflow, so none of the three changes are exercised by it; also surfaced a pre-existing, unrelated checkout failureclaude-debuglabel to this PR — confirmed no run fires pre-merge (master's workflow has nolabeledtrigger yet); label removed afterwardtrack_progressposts a live updating checklist commentclaude-debuglabel toggle skips the cost gate and enablesshow_full_output🤖 Generated with Claude Code