Skip to content

Bump actions/setup-node from 1 to 2.4.0#2

Closed
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot-github_actions-actions-setup-node-2.4.0
Closed

Bump actions/setup-node from 1 to 2.4.0#2
dependabot[bot] wants to merge 1 commit intomasterfrom
dependabot-github_actions-actions-setup-node-2.4.0

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot bot commented on behalf of github Aug 29, 2021

Bumps actions/setup-node from 1 to 2.4.0.

Release notes

Sourced from actions/setup-node's releases.

Support caching for mono repos and repositories with complex structure

This release introduces dependency caching support for mono repos and repositories with complex structure (#305).

By default, the action searches for the dependency file (package-lock.json or yarn.lock) in the repository root. Use the cache-dependency-path input for cases when multiple dependency files are used, or they are located in different subdirectories. This input supports wildcards or a list of file names for caching multiple dependencies.

Yaml example:

steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
  with:
    node-version: 14
    cache: npm
    cache-dependency-path: 'sub-project/package-lock.json'

For more examples of using cache-dependency-path input, see the Advanced usage guide.

Revert temporary fix

We had to disable pre-cached Node.js usage in the previous version due to the broken image cache. Now cache is fixed, so we can safely enable its usage again. Thank you for understanding.

Temporary maintenance fix.

Temporarily disabled usage of pre-cached Node.js.

Support caching pnpm dependencies

This release introduces dependency caching support for the pnpm package manager (#278).

Caching pnpm dependencies:

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
steps:

uses: actions/checkout@v2
uses: pnpm/action-setup@646cdf48217256a3d0b80361c5a50727664284f2
with:
version: 6.10.0
uses: actions/setup-node@v2
with:
node-version: '14'
cache: 'pnpm'
run: pnpm install
run: pnpm test

NOTE: pnpm caching support requires pnpm version >= 6.10.0

... (truncated)

Commits

Dependabot compatibility score

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 commands and options

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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 1 to 2.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v1...v2.4.0)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update Github_actions code labels Aug 29, 2021
@dependabot @github
Copy link
Copy Markdown
Author

dependabot bot commented on behalf of github Oct 4, 2021

Superseded by #7.

@dependabot dependabot bot closed this Oct 4, 2021
@dependabot dependabot bot deleted the dependabot-github_actions-actions-setup-node-2.4.0 branch October 4, 2021 06:09
oojacoboo added a commit that referenced this pull request Apr 18, 2026
…crash)

SecurityFieldMiddleware captures $parameters in process() before
QueryField::fromFieldDescriptor prepends a SourceParameter when
isInjectSource() is true. At resolver invocation time $args then
includes the source as its first element while $parameters (captured
earlier) does not, so array_combine() blows up with:

  Argument #1 ($keys) and argument #2 ($values) must have the same
  number of elements

In practice this masks as a generic "Internal server error" from any
#[Security]-decorated field on an #[ExtendType], which isn't discovered
until someone tries to guard an ExtendType field by role.

AuthorizationFieldMiddleware (@Logged / @right) sidesteps the issue by
using `function (...\$args)` and passing args through transparently —
it doesn't need to map args to parameter names because it has no
expression language context. The Security middlewares are the only
ones that zip args and parameters together, so they're the only ones
that need the fix.

The same bug exists in SecurityInputFieldMiddleware for input field
factories where source is similarly injected by InputField::fromFieldDescriptor.

Fix: pass isInjectSource() through to getVariables() and slice the
leading source arg off \$args before the array_combine. The source is
still available via `this` in the expression context, so no information
is lost for Security expressions.

Regression test: #[Security] on ExtendedContactType::extendedSecretName
exercises the ExtendType + Security combination. Before the fix the
test throws the array_combine TypeError; after, both the failWith null
path and the authorized path return the expected values.
oojacoboo added a commit that referenced this pull request Apr 18, 2026
…crash)

SecurityFieldMiddleware captures $parameters in process() before
QueryField::fromFieldDescriptor prepends a SourceParameter when
isInjectSource() is true. At resolver invocation time $args then
includes the source as its first element while $parameters (captured
earlier) does not, so array_combine() blows up with:

  Argument #1 ($keys) and argument #2 ($values) must have the same
  number of elements

In practice this masks as a generic "Internal server error" from any
#[Security]-decorated field on an #[ExtendType], which isn't discovered
until someone tries to guard an ExtendType field by role.

AuthorizationFieldMiddleware (@Logged / @right) sidesteps the issue by
using `function (...\$args)` and passing args through transparently —
it doesn't need to map args to parameter names because it has no
expression language context. The Security middlewares are the only
ones that zip args and parameters together, so they're the only ones
that need the fix.

The same bug exists in SecurityInputFieldMiddleware for input field
factories where source is similarly injected by InputField::fromFieldDescriptor.

Fix: pass isInjectSource() through to getVariables() and slice the
leading source arg off \$args before the array_combine. The source is
still available via `this` in the expression context, so no information
is lost for Security expressions.

Regression test: #[Security] on ExtendedContactType::extendedSecretName
exercises the ExtendType + Security combination. Before the fix the
test throws the array_combine TypeError; after, both the failWith null
path and the authorized path return the expected values.
oojacoboo added a commit that referenced this pull request Apr 18, 2026
…crash) (thecodingmachine#792)

* Fix #[Security] on ExtendType fields (source-injection array_combine crash)

SecurityFieldMiddleware captures $parameters in process() before
QueryField::fromFieldDescriptor prepends a SourceParameter when
isInjectSource() is true. At resolver invocation time $args then
includes the source as its first element while $parameters (captured
earlier) does not, so array_combine() blows up with:

  Argument #1 ($keys) and argument #2 ($values) must have the same
  number of elements

In practice this masks as a generic "Internal server error" from any
#[Security]-decorated field on an #[ExtendType], which isn't discovered
until someone tries to guard an ExtendType field by role.

AuthorizationFieldMiddleware (@Logged / @right) sidesteps the issue by
using `function (...\$args)` and passing args through transparently —
it doesn't need to map args to parameter names because it has no
expression language context. The Security middlewares are the only
ones that zip args and parameters together, so they're the only ones
that need the fix.

The same bug exists in SecurityInputFieldMiddleware for input field
factories where source is similarly injected by InputField::fromFieldDescriptor.

Fix: pass isInjectSource() through to getVariables() and slice the
leading source arg off \$args before the array_combine. The source is
still available via `this` in the expression context, so no information
is lost for Security expressions.

Regression test: #[Security] on ExtendedContactType::extendedSecretName
exercises the ExtendType + Security combination. Before the fix the
test throws the array_combine TypeError; after, both the failWith null
path and the authorized path return the expected values.

* ci: drop PHP 8.1, pin PHPUnit to 11.x, pin webpack for Docusaurus build

PHP 8.1 reached end-of-life in 2025 so drop it from the test matrix and
bump the runtime requirement to >=8.2. On the matrix side this also
clears a pre-existing red CI caused by PHPUnit 12.x (PHP >=8.3) now
resolving over PHPUnit 11.x on 8.1.

Pin `phpunit/phpunit` to `^11.0` explicitly — PHPUnit 11 is the latest
major that supports PHP 8.2, and 12.x's PHP >=8.3 requirement is what
was breaking composer resolution for every PR opened after PHPUnit
12.5.22 shipped.

Acknowledge advisory PKSA-5jz8-6tcw-pbk4 (GHSA-qrr6-mg7r-m243) with a
targeted audit-ignore carrying the threat-model rationale. The advisory
describes argument injection via newlines in PHP INI values forwarded to
child processes; phpunit is require-dev only and the attack surface is
phpunit config + CLI args authored by maintainers/CI, which carry the
same trust boundary as any other committed code. No fix has been
backported to PHPUnit 10.x or 11.x. Revisit when a backport ships or
when we bump min PHP to 8.3 and can move to ^12.5.22.

For the Docusaurus docs workflow, pin webpack to 5.88.2 via a
package.json `resolutions` block. Webpack versions newer than 5.88.x
tightened ProgressPlugin schema validation and reject options that
webpackbar@5 (transitively pinned by @docusaurus/core 2.4.3) passes
through, producing the "options has an unknown property 'name' /
'color' / 'reporters' / 'reporter'" build failure on every PR.

* ci: add PHP 8.5 to the test matrix

* fix: satisfy PHPStan 8.5 strict nullable-offset analysis

PHPStan on PHP 8.5 is stricter about array-offset access when the key
type includes null. Three pre-existing call sites tripped the new
offsetAccess.invalidOffset rule; all three are safe to tighten without
behavior change on any supported PHP version (8.2+).

FieldsBuilder::mapDocBlock — skip @param tags with no variable name
(phpdocumentor returns null there) instead of silently coercing null
into an empty-string key.

GlobTypeMapperCache::registerAnnotations — GlobAnnotationsCache's
withType() sets typeClassName and typeName together, so inside the
`typeClassName !== null` branch typeName is guaranteed non-null. Add
an assert() to document the invariant for the analyser.

IteratorTypeMapper::splitIteratorFromOtherTypes — restructure so the
unset/return happens inside the loop where $key has a concrete
array-key type, instead of carrying a nullable $key across the
loop/early-return boundary. Also drops the unused null initializer.

* fix: coding-standard follow-ups for the 8.2 cs-check run

- Add missing `use function assert;` import in GlobTypeMapperCache so the
  new assertion satisfies the Slevomat no-fallback-global-function rule.
- Exclude SlevomatCodingStandard.TypeHints.ClassConstantTypeHint: the
  rule expects PHP 8.3 typed class constants, but our minimum supported
  PHP is 8.2 so the rule can't be satisfied. Re-enable when min PHP
  lifts to 8.3.

* ci: pin doctrine/coding-standard to ^13.0 only

The ClassConstantTypeHint rule we exclude lives only in v13; on
`--prefer-lowest` composer was picking v12 and phpcs errored with
"Referenced sniff ... does not exist" when it hit the exclude.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update Github_actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants