fix: resolve all npm audit advisories - #203
Merged
Merged
Conversation
- npm audit fix across the dependency tree (17 advisories -> 0) - raise axios floor to ^1.20.0 and @actions/core to ^1.11.1 - bump @typescript-eslint packages to ^8.68.0 to clear the minimatch ReDoS advisory - eslint config passes an absolute tsconfigRootDir, required by typescript-eslint 8.68 - rebuild dist/ Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UTdciRVE8crbaoxq4JyXt4
weiyin
approved these changes
Aug 28, 2026
weiyin
approved these changes
Aug 28, 2026
Merged
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.
Stack 2/3 — based on #202, merge that first. Review only the top commit; the diff will shrink once #202 lands.
mainSummary
npm audit: 17 advisories (1 critical, 10 high) → 0. 112 lockfile entries changed (79 upgrades, 3 majors, 12 added, 11 removed, 7 downgrades).Direct dependencies
axios^1.7.7→^1.20.0@actions/core^1.10.1→^1.11.1@typescript-eslint/eslint-plugin^8.28.0→^8.68.0@typescript-eslint/parser^8.28.0→^8.68.0eslint^9.23.0(unchanged)js-yaml^4.1.0(unchanged)The two
^1.xfloor raises matter because the old carets still permitted the vulnerable versions — a fresh install without the lockfile could land on one.Breaking changes
parserOptions.tsconfigRootDirnpm run lintfails on all 5 source fileseslint.config.mjsnow passes the absolute__dirnameit already computesNo breaking changes reach the shipped action — the only two bundled packages moved by a minor and by nothing at all.
Transitive changes worth calling out
@actions/http-clientundici ^5.25.4; 2.1.1 has no undici dep. This — not an@actions/corebump — is what cleared the 12 undici advisories@actions/core's OIDC helper uses http-client, and this action never calls it. See note belowundici@fastify/busboyproxy-from-envminimatchtypescript-estreeeslint-visitor-keys@typescript-eslint/visitor-keysprettier-eslint/@typescript-eslint/*prettier-eslint's private treeform-datafollow-redirectsOn the
@actions/http-clientdowngradeWorth a reviewer's eye.
npm audit fixresolved the undici advisories by moving backwards to a release that predates the undici dependency, rather than forwards. It's harmless here —@actions/coreonly pulls http-client in forgetIDToken(), which this action never calls — but the forward-looking fix is@actions/core3.x (which depends on@actions/http-client^4.0.0). That is a major bump with its own API review, so it's deliberately out of scope for this PR.dist/
dist/index.jsdrops 1.36MB → 655KB, entirely from undici leaving the bundle. Regenerated withnpm run package;check-distconfirms it matches a clean rebuild.The old bundle also emitted
DEP0169 DeprecationWarning: url.parse()on every run. Gone.A real user-facing fix, not just CVE hygiene
axios older than 1.16.1 issues plain-HTTP (non-CONNECT) requests for HTTPS when a proxy is configured. On the pre-bump bundle that produces a hard
405 Method Not Allowedfrom the proxy, i.e. the action is broken today for anyone on a self-hosted runner behind a corporate egress proxy. This was reproduced directly: the pre-bump bundle fails, this branch's bundle succeeds against the same endpoint.Validation
CI on this branch, both green:
Because this swaps the HTTP client, the rebuilt bundle was also exercised against the live API (
api.appetize.io), covering both upload modes and the realGITHUB_OUTPUTpath:appFile, multipart, 7.7MB apk)publicKey+appFile, withdisableHome/launchUrl/buttonText)appUrl, JSON body)The
appUrlpath is worth noting: it is covered by no automated test — the unit tests never touch the network andtest.ymlonly exercisesappFile— so it was verified by hand here.🤖 Generated with Claude Code
https://claude.ai/code/session_01UTdciRVE8crbaoxq4JyXt4