Repository navigation
Conversation
- @rtcamp/wp-tooling is on the registry, so the CLI installs from npm instead of github:rtCamp/wp-tooling#<sha>. wp-tooling-ref keeps its name but takes an npm version or range; empty falls back to ^2 in the install step, so 2.x fixes reach consumers without a bump PR here. A caller that pinned the old SHA gets a clear npm error. - The --prefix install stays on purpose: it moves npm's project root out of the checkout, so a consumer's .npmrc cannot redirect @rtCamp (npx would read it and 404). - detect-changes gains --strict: a failed git diff exits 1 (wp-tooling 2.0.0) instead of reporting zero changes and skipping every job, replacing the stderr grep in this step.
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
Review effort: Lite
Findings: 2
Open (2)
What changed in this PR
Updates CI workflows to install wp-tooling from the published @rtcamp/wp-tooling npm package (instead of a pinned Git SHA) and makes change detection fail-fast by using the CLI’s --strict flag.
Changes:
wp-tooling-refinput now represents an npm version/range (defaulting to^2when empty) across workflows.- Install step now runs
npm install --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$VERSION"and adds that prefix’s bin toPATH. detect-changesnow uses--strictand removes stderr-grep-based failure detection; docs updated accordingly.
| File | Description |
|---|---|
| AGENTS.md | Updates guidance to reflect the new ^2 default behavior across workflows. |
| .github/workflows/wp-ci.yml | Rewords wp-tooling-ref input semantics and changes default to empty (implying ^2). |
| .github/workflows/version-monitor.yml | Switches wp-tooling installation to npm and changes defaulting logic to ^2. |
| .github/workflows/ci-detect-changes.yml | Switches wp-tooling installation to npm, adds --strict, and removes stderr parsing workaround. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| npm install --ignore-scripts --no-audit --no-fund --prefix "$prefix" \ | ||
| "github:rtCamp/wp-tooling#${WP_TOOLING_REF}" | ||
| echo "$prefix/node_modules/.bin" >> "$GITHUB_PATH" | ||
| npm install --no-audit --no-fund --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$WP_TOOLING_VERSION" |
| npm install --ignore-scripts --no-audit --no-fund --prefix "$prefix" \ | ||
| "github:rtCamp/wp-tooling#${WP_TOOLING_REF}" | ||
| echo "$prefix/node_modules/.bin" >> "$GITHUB_PATH" | ||
| npm install --no-audit --no-fund --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$WP_TOOLING_VERSION" |
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
6 open findings
This change makeswp-tooling-refan npm version/range, but it also removes the ability to pass a… · New Passing--strictunconditionally will fail the workflow if a caller setswp-tooling-refto a… · New Passing--strictunconditionally will fail the workflow if a caller setswp-tooling-refto a… · New Installing from a semver range (default^2) makes runs non-reproducible over time, which can… · New Previously installation used--ignore-scripts, but the npm-based install no longer does. This is… Same concern as inversion-monitor.yml: dropping--ignore-scriptschanges the trust boundary by…
🧠 Review effort: Lite
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
| npm install --ignore-scripts --no-audit --no-fund --prefix "$prefix" \ | ||
| "github:rtCamp/wp-tooling#${WP_TOOLING_REF}" | ||
| echo "$prefix/node_modules/.bin" >> "$GITHUB_PATH" | ||
| npm install --ignore-scripts --no-audit --no-fund --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$WP_TOOLING_VERSION" |
| run: | | ||
| set -euo pipefail | ||
| args=(--output github --include-files) | ||
| args=(--strict --output github --include-files) |
| exit 1 | ||
| fi | ||
| exit "$status" | ||
| wp-tooling detect-changes "${args[@]}" |
| npm install --ignore-scripts --no-audit --no-fund --prefix "$prefix" \ | ||
| "github:rtCamp/wp-tooling#${WP_TOOLING_REF}" | ||
| echo "$prefix/node_modules/.bin" >> "$GITHUB_PATH" | ||
| npm install --ignore-scripts --no-audit --no-fund --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$WP_TOOLING_VERSION" |
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
10 open findings
Changingwp-tooling-reffrom a git SHA/ref to a semver version/range is a breaking behavior… · New With--strict, failures now correctly exit non-zero, but the previous implementation emitted a… · New With--strict, failures now correctly exit non-zero, but the previous implementation emitted a… · Newnpm lscan exit non-zero for conditions that may not indicate a broken install (commonly peer… · New Installing from a semver range (default^2) makes runs non-reproducible over time, which can… Passing--strictunconditionally will fail the workflow if a caller setswp-tooling-refto a… Passing--strictunconditionally will fail the workflow if a caller setswp-tooling-refto a… This change makeswp-tooling-refan npm version/range, but it also removes the ability to pass a… Previously installation used--ignore-scripts, but the npm-based install no longer does. This is… Same concern as inversion-monitor.yml: dropping--ignore-scriptschanges the trust boundary by…
🧠 Review effort: Lite
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
| WP_TOOLING_VERSION: ${{ inputs.wp-tooling-ref || '^2' }} | ||
| run: | | ||
| set -euo pipefail | ||
| prefix="$RUNNER_TEMP/wp-tooling" | ||
| npm install --ignore-scripts --no-audit --no-fund --prefix "$prefix" \ | ||
| "github:rtCamp/wp-tooling#${WP_TOOLING_REF}" | ||
| echo "$prefix/node_modules/.bin" >> "$GITHUB_PATH" | ||
| npm install --ignore-scripts --no-audit --no-fund --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$WP_TOOLING_VERSION" |
| run: | | ||
| set -euo pipefail | ||
| args=(--output github --include-files) | ||
| args=(--strict --output github --include-files) |
| exit 1 | ||
| fi | ||
| exit "$status" | ||
| wp-tooling detect-changes "${args[@]}" |
| "github:rtCamp/wp-tooling#${WP_TOOLING_REF}" | ||
| echo "$prefix/node_modules/.bin" >> "$GITHUB_PATH" | ||
| npm install --ignore-scripts --no-audit --no-fund --prefix "$RUNNER_TEMP/wp-tooling" "@rtcamp/wp-tooling@$WP_TOOLING_VERSION" | ||
| npm ls --prefix "$RUNNER_TEMP/wp-tooling" @rtcamp/wp-tooling |

What this PR does
Switches the wp-tooling install from a pinned git SHA to the published
@rtcamp/wp-toolingnpm package, and adopts the CLI's new --strict flag.Closes
N/A
Changes
How I verified