You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today's review targeted no-github-request-interpolated-route — the newest rule added since the last recorded run that had no prior refinement issue. The rule is sound and already catches real anti-patterns in the live corpus; the two filed refinements close a grounded client-detection false negative and a diagnostic-precision gap.
The rule inventory has grown from 12 → 15 rules. Two of the three new rules (no-throw-plain-object, require-return-after-core-setfailed) were already reviewed in unrecorded runs (issues #45050, #45051) — those angles were deliberately skipped to avoid duplication.
Scope-resolution false negatives — global.getOctokit(...) is this repo's actual Octokit client factory (setup_globals.cjs:56; create_pull_request.cjs:85; create_agent_session.cjs:37) but is missing from the rule's getOctokit member-object allowlist {github, actions}. A const gh = global.getOctokit(token); gh.request(\GET ...${x}...`)` alias silently escapes. Also: the route argument is never scope-resolved even though the client is (asymmetry).
Diagnostic remedy mismatch — the single message always prescribes the {owner}/{repo} placeholder fix, which is inapplicable to opaque whole-route helpers (\${METHOD} ${routeVar}`) at add_reaction.cjs:193, add_reaction_and_edit_comment.cjs:266, add_workflow_run_comment.cjs:444`.
Analysis detail & deliberately-skipped findings
Rule works as designed. The value-into-path interpolations in route_slash_command.cjs (interpolating owner/repo/issueNumber directly into the path) are genuine true positives the rule correctly flags. No false positives were found across the non-test actions/setup/js/**/*.cjs corpus, which is disciplined.
Skipped — already owned by open issues:
The ~22 JSON-RPC throw { code, message } sites in mcp_server_core.cjs / safe_outputs_handlers.cjs are covered by eslint-factory: no-throw-plain-object should offer an Object.assign(new Error(...)) suggestion #45050, which frames them as true-positives-to-convert (add an Object.assign(new Error(...)) suggestion). Filing an "exempt these as intentional protocol errors" issue would contradict that decision — deferred to the team's existing position.
Ungrounded / not filed: name-only client match ignoring bindings; new Octokit() alias recognition (no such construction in corpus); this.github.request and .concat()-built routes (out of scope by design).
Process note: repo-memory was stale — it did not record the 07-09..07-12 runs that filed #45050/#45051. Reinforced the rule: always gh api dedupe before assuming a rule is unreviewed.
Next actions
On the next run, diff index.ts imports against the 15-rule inventory for a potential 16th rule and lead with it.
If no new rule appears, no-json-stringify-error and prefer-get-error-message are the remaining rules without a dedicated review issue.
Verify fixes for the two filed issues keep static-literal const routes (update_project.cjs:855) unflagged.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
Today's review targeted
no-github-request-interpolated-route— the newest rule added since the last recorded run that had no prior refinement issue. The rule is sound and already catches real anti-patterns in the live corpus; the two filed refinements close a grounded client-detection false negative and a diagnostic-precision gap.The rule inventory has grown from 12 → 15 rules. Two of the three new rules (
no-throw-plain-object,require-return-after-core-setfailed) were already reviewed in unrecorded runs (issues #45050, #45051) — those angles were deliberately skipped to avoid duplication.Key metrics
no-github-request-interpolated-route(first review)route_slash_command.cjs:180/192/204/216Issues filed
global.getOctokit(...)is this repo's actual Octokit client factory (setup_globals.cjs:56;create_pull_request.cjs:85;create_agent_session.cjs:37) but is missing from the rule'sgetOctokitmember-object allowlist{github, actions}. Aconst gh = global.getOctokit(token); gh.request(\GET ...${x}...`)` alias silently escapes. Also: the route argument is never scope-resolved even though the client is (asymmetry).{owner}/{repo}placeholder fix, which is inapplicable to opaque whole-route helpers (\${METHOD} ${routeVar}`) atadd_reaction.cjs:193,add_reaction_and_edit_comment.cjs:266,add_workflow_run_comment.cjs:444`.Analysis detail & deliberately-skipped findings
Rule works as designed. The value-into-path interpolations in
route_slash_command.cjs(interpolatingowner/repo/issueNumberdirectly into the path) are genuine true positives the rule correctly flags. No false positives were found across the non-testactions/setup/js/**/*.cjscorpus, which is disciplined.Skipped — already owned by open issues:
throw { code, message }sites inmcp_server_core.cjs/safe_outputs_handlers.cjsare covered by eslint-factory: no-throw-plain-object should offer anObject.assign(new Error(...))suggestion #45050, which frames them as true-positives-to-convert (add anObject.assign(new Error(...))suggestion). Filing an "exempt these as intentional protocol errors" issue would contradict that decision — deferred to the team's existing position.core.setFaileddetection forrequire-return-after-core-setfailedis covered by eslint-factory: require-return-after-core-setfailed misses aliased/destructuredcore.setFailed#45051.Ungrounded / not filed: name-only client match ignoring bindings;
new Octokit()alias recognition (no such construction in corpus);this.github.requestand.concat()-built routes (out of scope by design).Process note: repo-memory was stale — it did not record the 07-09..07-12 runs that filed #45050/#45051. Reinforced the rule: always
gh apidedupe before assuming a rule is unreviewed.Next actions
index.tsimports against the 15-rule inventory for a potential 16th rule and lead with it.no-json-stringify-errorandprefer-get-error-messageare the remaining rules without a dedicated review issue.constroutes (update_project.cjs:855) unflagged.References:
Beta Was this translation helpful? Give feedback.
All reactions