v3.4.1 - #253
Merged
Merged
Conversation
Bumps the github-actions group with 1 update in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby). Updates `ruby/setup-ruby` from 1.319.0 to 1.321.0 - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Changelog](https://github.com/ruby/setup-ruby/blob/master/release.rb) - [Commits](ruby/setup-ruby@003a5c4...95ef2b0) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-version: 1.321.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com>
…ub-actions group across 1 directory (#251) Bumps the github-actions group with 1 update in the / directory: [ruby/setup-ruby](https://github.com/ruby/setup-ruby). Updates `ruby/setup-ruby` from 1.319.0 to 1.321.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/ruby/setup-ruby/releases">ruby/setup-ruby's releases</a>.</em></p> <blockquote> <h2>v1.321.0</h2> <h2>What's Changed</h2> <ul> <li>Add jruby-10.1.1.0 by <a href="https://github.com/ruby-builder-bot"><code>@ruby-builder-bot</code></a> in <a href="https://redirect.github.com/ruby/setup-ruby/pull/932">ruby/setup-ruby#932</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ruby/setup-ruby/compare/v1.320.0...v1.321.0">https://github.com/ruby/setup-ruby/compare/v1.320.0...v1.321.0</a></p> <h2>v1.320.0</h2> <h2>What's Changed</h2> <ul> <li>Update CRuby releases on Windows by <a href="https://github.com/ruby-builder-bot"><code>@ruby-builder-bot</code></a> in <a href="https://redirect.github.com/ruby/setup-ruby/pull/931">ruby/setup-ruby#931</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/ruby/setup-ruby/compare/v1.319.0...v1.320.0">https://github.com/ruby/setup-ruby/compare/v1.319.0...v1.320.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ruby/setup-ruby/commit/95ef2b042f9d7a56d8268cba8559e2842e2ad01b"><code>95ef2b0</code></a> Add jruby-10.1.1.0</li> <li><a href="https://github.com/ruby/setup-ruby/commit/a30dfa457ad68707b8b910ac3a244714b61c0626"><code>a30dfa4</code></a> Update CRuby releases on Windows</li> <li>See full diff in <a href="https://github.com/ruby/setup-ruby/compare/003a5c4d8d6321bd302e38f6f0ec593f77f06600...95ef2b042f9d7a56d8268cba8559e2842e2ad01b">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
Install runtime NPM plugins from the Find action root so bare ESM imports resolve the same node_modules tree from source and compiled loaders. Add a cross-workspace integration test against the released alt-text plugin. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8b9119b6-5862-4597-b7d9-ad1522e125f4
Install published plugins beside the active source or compiled loader so ESM resolution works without re-resolving the Find action's locked dependencies. Align scanner docs and tests with the released alt-text plugin workflow syntax. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8b9119b6-5862-4597-b7d9-ad1522e125f4
Remove the source-local node_modules tree created by the published package integration test so every run leaves the checkout clean. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8b9119b6-5862-4597-b7d9-ad1522e125f4
v3.4.0 installs NPM plugins from the consumer workspace, then imports them from the Find action. The install succeeds, but Node can't resolve the package from `dist/pluginManager/pluginNpmLoader.js`. This happened in [the alt text plugin workflow](https://github.com/github/accessibility-scanner-alt-text-plugin/actions/runs/30406827436) after switching to the new package object in #62. This installs the package beside the loader module with an explicit npm prefix. In the action that's `dist/pluginManager/node_modules`, so the bare ESM import finds it without using `GITHUB_WORKSPACE`. Keeping the install out of the Find action root also avoids npm re-resolving the action's own dependencies. The allowlist, version pinning, `--ignore-scripts`, `--no-save`, `--no-package-lock`, duplicate handling, and warnings are unchanged. I tested the exact input from #62: ```yaml scans: | ["axe", {"name": "alt-text-scan", "package": "@github/accessibility-scanner-alt-text-plugin", "version": "1.1.0"}] ``` In a clean scanner copy with a separate consumer cwd, the published 1.1.0 package loaded from the compiled action. A local page produced both the plugin's `placeholder-alt-text` finding and Axe's `button-name` finding. The Find action's dependency versions were unchanged after the install. Also ran all 82 action tests, lint, format check, and the Find build. I updated the scanner docs that still showed plugin 1.0.0 or described `scans` as strings only. This needs a scanner v3.4.1 after merge. The plugin stays on v1.1.0, then its workflow pin can move from the v3.4.0 commit to the v3.4.1 commit.
Contributor
There was a problem hiding this comment.
🟢 Ready to approve
The resolution fix is focused, contract-consistent, and covered by unit and integration tests.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
Fixes NPM plugin resolution for the v3.4.1 release by installing plugins beside the compiled loader.
Changes:
- Installs NPM plugins under the loader’s module path.
- Adds integration and regression coverage.
- Updates plugin documentation, examples, and workflow dependency pin.
File summaries
| File | Description |
|---|---|
README.md |
Updates the plugin example to v1.1.0. |
PLUGINS.md |
Documents v3.4.1 requirements and plugin version. |
action.yml |
Clarifies the scans input format. |
.github/workflows/test.yml |
Updates the pinned Ruby setup action. |
.github/actions/find/tests/pluginNpmLoader.test.ts |
Verifies the new NPM install path. |
.github/actions/find/tests/pluginNpmLoader.integration.test.ts |
Tests installation outside the consumer workspace. |
.github/actions/find/tests/findForUrl.test.ts |
Covers the documented mixed scan input. |
.github/actions/find/src/pluginManager/pluginNpmLoader.ts |
Installs packages beside the compiled loader. |
.github/actions/find/README.md |
Documents object-form NPM plugin entries. |
Review details
- Files reviewed: 9/9 changed files
- Comments generated: 0
- Review effort level: Medium
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
JoyceZhu
reviewed
Jul 29, 2026
JoyceZhu
reviewed
Jul 29, 2026
JoyceZhu
reviewed
Jul 29, 2026
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
JoyceZhu
approved these changes
Jul 30, 2026
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
Cuts the v3.4.1 patch release to fix NPM plugin module resolution introduced in v3.4.0.
Fix
NPM plugins are now installed beside the compiled Find action loader, allowing Node to resolve and import them correctly when the scanner runs from a consumer repository (#252).
This fixes the failure encountered when loading: