Repository navigation
ci: the workflows run github-script, create-pull-request and repository-dispatch on Node.js 24, pinned by commit, and CodeRabbit skips the index pull request - #17
Conversation
…tory-dispatch at the commit of the release that runs on Node.js 24, every github-script body compiles as v9 runs it, and CodeRabbit skips the index pull request by its title and reviews none of its files
Reviewer's GuideThe PR modernizes the three remaining JavaScript actions to Node.js 24 using release commit pins, adds compatibility and coverage tests for all workflow usages, and configures CodeRabbit to skip automated index pull requests and their generated files. File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
…repository-dispatch to v4.0.1, the releases that run on Node.js 24, each pinned to its release's commit with the release named beside it; CodeRabbit skips the index pull request by its title and reviews none of the index files
…intainer pins an action to the commit of a release that runs on Node.js 24
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
PR Summary by QodoPin CI actions to Node.js 24 releases and skip index PR reviews
AI Description
Diagram
High-Level Assessment
Files changed (11)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can start a comment with 'qodo' or '@qodo' to chat about any finding |
…4-and-index-review-skip
…sts with create-pull-request v8.1.1, the release the bump and the index publish pin, which runs on Node.js 24
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
After the merge (24686d5, 22:36:51 UTC, by the merge loop once the comment pass was done and the
#20 lands through the merge loop under the same review rule. |
Two follow-ups to #12, #13 and #16.
Three JavaScript actions still targeted Node.js 20. The runner forces them onto Node.js 24 and warns on every run, for example run 39584989953 of the landing workflow: "Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/github-script@v7" (https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/), and run 39477712571 of the weekly bump and run 39654677206 of the weekly changelog, the same for
peter-evans/create-pull-request@22a9089(v7.0.11). Theaction.ymlof each release in use saysusing: node20:actions/github-scriptv7 (13 steps in the two landing workflows, Trusted Weavers, async processing and the pull request enhancement),peter-evans/create-pull-requestv7.0.11 (the bump, the index publish, and since #16 the changelog and the block tag enhancement) andpeter-evans/repository-dispatchv3 (async processing). Every other action the workflows use already runs on Node.js 24 (actions/checkout@v5,setup-node@v5,cache@v5,upload-artifact@v7,download-artifact@v8,setup-python@v6,pnpm/action-setup@v6; eachaction.ymlread at the ref in use).Each index pull request spent one CodeRabbit review. The index publish opens its pull request with
FRAMERS_BUMP_TOKEN, a person's token, and CodeRabbit counts a review against that person's allowance each time it evaluates a pull request ("Review rate limits", https://docs.coderabbit.ai/management/rate-limits). On 21 October that allowance was one review an hour in the morning (CodeRabbit's comments on #12 to #15) and two by the evening (#17 to #19), and an index pull request follows every push to master that changesweaves/,scripts/orschema/. #14, the first, carriedcodex-index.json,codex-report.jsonandcodex-search.json; on #19, the second, CodeRabbit selected the same three files and stopped at its review limit.The change
Each action moves to the release whose
action.ymlsaysusing: node24, pinned to that release's commit with the release named beside it, as the bump pins its actions. Each is the action's newest release. Each commit was read withgh api, fromgit/ref/tags/<release>and, for an annotated tag, from the tag object to its commit, and theaction.ymlwas read at that commit:actions/github-scriptv7(node20)3a2844b, from the annotated tagd746ffepeter-evans/create-pull-request5f6978fpeter-evans/repository-dispatchv3(node20)28959cerepository-dispatch v4.0.0's
action.ymlstill saysusing: 'node20'; v4.0.1 ("Fix node version in actions.yml") is the first that runs on Node.js 24.Breaking changes, from each release page, and how each is handled:
src/create-or-update-branch.tsandsrc/git-command-manager.tsare unchanged, so the branch is still built from the commit checked out andadd-pathsstill goes to onegit add.require('@actions/github')fails, since that package is ESM only, and the script now getsgetOctokit(andoctokit) as parameters, so a script that declares either withconstorletno longer compiles. No script here requires@actions/githubor declares either name. Every octokit method the scripts call (issues.addLabels,createComment,createLabel,getLabel,listComments,removeLabel,updateComment,pulls.createReview,get,list,repos.createCommitStatus,actions.listWorkflowRunsandpaginate) is in v9's bundleddist/index.jsat the pinned commit with the same route, andrequire('fs')resolves through the samewrap-require.tsas v7.CodeRabbit. A new
.coderabbit.yamlsets two keys, both in CodeRabbit's configuration reference (https://docs.coderabbit.ai/reference/configuration) and its schema (https://coderabbit.ai/integrations/schema.v2.json); every other setting keeps CodeRabbit's default:reviews.auto_review.ignore_title_keywords: ['ci(codex): update search index'](https://docs.coderabbit.ai/reference/configuration,reviews.auto_review.ignore_title_keywords): "Skip reviews when the PR title contains any of these keywords (case-insensitive)". The index pull request's title, set byauto-index.yml, isci(codex): update search index and block tags, and no other workflow's pull request title holds the keyword (the bump's, the changelog's and the block tag enhancement's). The rate limits page (https://docs.coderabbit.ai/management/rate-limits) lists "pull requests excluded by automatic review controls" among the actions that "never draw down the allowance", and names title filters among those controls.reviews.path_filters(https://docs.coderabbit.ai/reference/configuration,reviews.path_filters):!codex-index.json,!codex-search.json,!codex-report.json,!codex-blocks.json, the files the index publish commits (itsadd-paths). A pattern that starts with!excludes, so no review reads them in any pull request.Not used: the schema has no key that matches a head branch (its only branch key is
reviews.auto_review.base_branches, the target branch), andignore_usernameswould skip every pull request of the token's owner. UNVERIFIED and not relied on: whether a pull request whose every filepath_filtersexcludes still draws a review; the title keyword skips the index pull request either way. CodeRabbit read the file from this branch on each of its runs here ("Configuration used: Repository: framerslab/codex/.coderabbit.yaml").Docs:
.github/WORKFLOWS.mddescribes CodeRabbit's handling of the index pull request in the index publish's section, and how a maintainer pins an action to a release that runs on Node.js 24.Tests, first
tests/actions-on-node24.test.js(new, 5 cases) holds each release and its commit as read from GitHub, checks everyuses:line of every workflow that names one of the three actions against it, compiles everyactions/github-scriptbody with v9's parameters (require,__original_require__,github,octokit,getOctokit,context,core,exec,glob,io, fromsrc/main.tsat the pinned commit), and checks that no body requires@actions/github.tests/coderabbit-config.test.js(new, 3 cases) reads.coderabbit.yamlbeside the workflows: only the two keys; a title keyword that the index pull request's title holds and no other workflow's pull request title holds; and path filters that exclude exactly the index publish'sadd-paths.actions/github-script@v7,create-pull-request@22a9089 # v7.0.11,repository-dispatch@v3) and the three CodeRabbit cases (no.coderabbit.yaml). The compile and require checks passed on the old scripts, as they should. On 1ef2824, run 39648749940 passed all 314.changelog.yml,ai-enhance-blocks.yml) and tests that require each to match the bump's pin. 15566d1 takes master alone: run 39662250360 failed 3 of 384, the create-pull-request pin case here (ai-enhance-blocks.yml:198) and ci: the changelog and the enhanced block tags reach master through pull requests opened with FRAMERS_BUMP_TOKEN, and the activity script sends only queries GitHub accepts #16's two pin cases (expected 'peter-evans/create-pull-request@22a90…' to be 'peter-evans/create-pull-request@5f697…'). a98dd1f moves both to the bump's pin, copied frombump-framers-deps.yml: run 39662633428 passed all 384, and rename-guard run 39662633418 passed.After the merge
The merge changes
auto-index.yml, so it starts the index workflow on master. The index files carry the time they were built (lastIndexed,generatedAt), so the build always differs from master's and create-pull-request v8.1.1 opens or updates the index pull request; its checks start the landing workflow on github-script v9.0.0, and CodeRabbit should skip it by its title. That run, its annotations and CodeRabbit's skip go in a comment here.ai-enhance-pr.ymlandauto-merge-weavers.ymlrun only on pull requests intomain, a branch this repository does not have;async-processing.ymlruns its github-script steps only for such a pull request and its repository-dispatch step only on a push tomain, so a manual run reaches neither. Those steps run on no event here, and the tests above are their only proof.Reviews
codex exec review --base origin/masterwith the review model gpt-6.1-sol at medium effort (read from the run's session record), on a98dd1f: "No actionable regressions were identified in the action upgrades, CodeRabbit configuration, or accompanying tests.".coderabbit.yaml("Configuration used: Repository: framerslab/codex/.coderabbit.yaml"): "No actionable comments were generated in the recent review." Rate limited again on a98dd1f, which moves twouses:lines (changelog.yml,ai-enhance-blocks.yml) to the pin it reviewed in the other workflows, so it is missing on the head.Risks
@coderabbitai reviewreviews it on request.🤖 Generated with Claude Code