Skip to content

chore: Cherry-pick changes from upstream - #27

Merged
anurag-stepsecurity merged 1 commit into
mainfrom
auto-cherry-pick
Aug 27, 2026
Merged

anurag-stepsecurity merged 1 commit into
mainfrom
auto-cherry-pick

Conversation

@anurag-stepsecurity

Copy link
Copy Markdown
Contributor

@anurag-stepsecurity

anurag-stepsecurity commented Aug 27, 2026 •

Copy link
Copy Markdown
Contributor Author

📦 Target Release Version: 2.37.2
📋 Previous Release Version: 2.37.0

@anurag-stepsecurity anurag-stepsecurity added the review-required Trigger Claude AI code review on the PR label Aug 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR Review

Action Type

Node-based action (runs on node24 via dist/index.js)


Passed Checks

  • License: MIT license present with copyright for both Step Security and the original author (shivammathur and contributors).
  • action.yml: Present with author: 'step-security'.
  • SECURITY.md: Present in repository root.
  • No FUNDING.yml: Correctly absent.
  • auto_cherry_pick.yml: Present in .github/workflows/.
  • actions_release.yml: Present in .github/workflows/.
  • No renovate.json: Correctly absent.
  • No PULL_REQUEST.md: Correctly absent.
  • No ISSUE_TEMPLATE folder: Correctly absent.
  • No CHANGELOG.md: Correctly absent.
  • No .vscode folder: Correctly absent.
  • README.md banner: StepSecurity Maintained Action banner is present at line 1.
  • README.md usage examples: All action references use @v2 (major version only), no complete semver tags in examples.
  • Subscription check URL: Correct (https://agent.api.stepsecurity.io/v1/github/${GITHUB_REPOSITORY}/actions/maintained-actions-subscription) at src/install.ts:41.
  • upstream variable: 'shivammathur/setup-php' correctly matches original-owner: "shivammathur" and repo-name: "setup-php" in auto_cherry_pick.yml.
  • package.json author: "author": "step-security".
  • package.json repository: URL contains step-security.
  • dist/ folder: Present.
  • Build script: "build": "tsc && ncc build -m -o dist" present in package.json scripts.
  • Dependencies: All four runtime dependencies (@actions/core, @actions/exec, axios, compare-versions) are actively used in the codebase.

Failed Checks

None — all checklist items passed.


Warnings

  • Mutable @v1 tag in reusable workflow references: Both .github/workflows/auto_cherry_pick.yml (line 36) and .github/workflows/actions_release.yml (line 24) reference step-security/reusable-workflows/...@v1. A mutable tag means the workflow definition can change without notice. Best practice (and OpenSSF Scorecard requirement) is to pin to a full commit SHA.

  • sanitizeShellInput loose-mode omits redirect/glob characters: In non-strict mode (used for tool version inputs), the function does not strip <, >, *, ?. Shell redirection and globbing characters could be injected via a crafted tool version string. Strict mode (used for extensions) does strip these. Worth reviewing whether all loose-mode call sites can fully trust the upstream tool data they receive.

  • Config file path relies on runtime directory layout: skipGitHubAuthForComposerVersion reads path.join(__dirname, '../src/configs/composer-gh-auth-no-op'). This assumes src/ exists beside dist/ at action run time. While correct for checked-out actions, a silently wrong path would cause the function to return false and skip the protection. Consider an explicit existence check with a meaningful error, or embed the config content directly in the compiled bundle.


Security Findings

No exploitable security vulnerabilities were introduced. This PR is primarily a security improvement that:

  1. Mitigates CVE GHSA-f9f8-rm49-7jv2 — Adds skipGitHubAuthForComposerVersion() and cleanComposerAuthJson() to prevent GitHub token exposure via affected Composer versions (1.x before 1.10.28, 2.0–2.2.x before 2.2.28, 2.3–2.9.x before 2.9.8).
  2. Adds shell injection defenses — escapeForShell(), safeArg(), and sanitizeShellInput() applied to PHP version, INI values, extension names, and tool version constraints.
  3. Hardens input validation — readEnv() now validates property names against /^[A-Za-z0-9_-]+$/; parseVersion() throws on invalid formats instead of silently defaulting.

Summary

This cherry-pick PR brings solid security hardening from upstream and all mandatory checklist items pass. The two warnings around the mutable @v1 reusable-workflow reference and the sanitizeShellInput loose-mode character set are non-blocking but worth a follow-up.

Comment thread src/utils.ts
const pattern = strict
? /[$`"';|&(){}[\]\\<>*?\n\r\t]/g
: /[$`"';|&(){}[\]\\\n\r\t]/g;
return value.replace(pattern, '');

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning: loose mode omits shell redirection and glob characters

In non-strict mode (the default), <, >, *, and ? are not removed. These characters can be exploited for shell redirection (>, <) or glob expansion (*, ?) in some invocation contexts.

Strict mode (used for extensions input) already strips these. Consider whether loose-mode callers — particularly tool version strings that flow into shell commands — are safe, or whether the loose pattern should also strip redirection/glob chars:

Suggested change
return value.replace(pattern, '');
const pattern = strict
? /[$`"';|&(){}[\]\\<>*?\n\r\t]/g
: /[$`"';|&(){}[\]\\<>*?\n\r\t]/g;

Comment thread src/tools.ts
}
return fs
.readFileSync(
path.join(__dirname, '../src/configs/composer-gh-auth-no-op'),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning: silent failure if config file is missing

fs.readFileSync will throw if composer-gh-auth-no-op is not found at the expected path (e.g. after a layout change or during testing outside the action root). The uncaught exception would propagate and crash the action. Consider wrapping with a try/catch that logs a warning and returns false, or assert the file's existence with a clear error message:

if (!fs.existsSync(filePath)) {
  core.warning('composer-gh-auth-no-op config not found; skipping composer auth check.');
  return false;
}

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Cherry-Pick Verification Report

📦 Upstream Changes: 2.37.0...2.37.2

📋 File-by-File Analysis:

.github/CODEOWNERS

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 1 additions, 0 deletions)

.github/FUNDING.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 1 additions, 0 deletions)

.github/SECURITY.md

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 1 additions, 1 deletions)

.github/dependabot.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+11 -5)

.github/workflows/codeql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 9 additions, 4 deletions)

.github/workflows/docs.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 20 additions, 10 deletions)

.github/workflows/node.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+8 -3)

.github/workflows/php.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+15 -6) | Missing 5 additions | Missing 3 deletions

.github/workflows/publish.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 20 additions, 10 deletions)

README.md

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+9 -6) | Missing 8 additions | Missing 5 deletions

__tests__/config.test.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+12 -8)

__tests__/tools.test.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+146 -18)

__tests__/utils.test.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+80 -2) | Missing 3 additions

examples/bedrock.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+1 -1)

examples/blackfire-player.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+16 -5)

examples/blackfire.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+17 -5)

examples/cakephp-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+11 -7)

examples/cakephp-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+14 -9)

examples/cakephp.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+11 -5)

examples/codeigniter.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -3)

examples/drupal.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+59 -0)

examples/laminas-mvc.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+3 -2)

examples/laravel-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+5 -3)

examples/laravel-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -4)

examples/laravel.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+2 -1)

examples/lumen-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+2 -2)

examples/lumen-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+6 -6)

examples/lumen.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+3 -2)

examples/phalcon-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -7)

examples/phalcon-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+14 -20)

examples/sage.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+5 -12)

examples/slim-framework.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+2 -1)

examples/symfony-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+13 -13)

examples/symfony-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+13 -13)

examples/symfony.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -7)

examples/wordpress.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+68 -0)

examples/yii3-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+78 -0)

examples/yii3-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+78 -0)

examples/yii3.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+53 -0)

src/config.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+5 -2)

src/configs/composer-gh-auth-no-op

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+3 -0)

src/configs/composer-gh-auth-warn

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+1 -0)

src/configs/os_releases.csv

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -1)

src/install.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+5 -2)

src/scripts/extensions/gearman.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+1 -1)

src/scripts/extensions/phalcon.ps1

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+3 -21)

src/scripts/extensions/phalcon.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+2 -0)

src/scripts/tools/add_tools.ps1

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+24 -2)

src/scripts/tools/add_tools.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+29 -7)

src/scripts/tools/brew.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+1 -0)

src/scripts/win32.ps1

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+13 -9)

src/tools.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+47 -9)

src/utils.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+87 -36) | Missing 1 additions | Missing 1 deletions

📊 Summary:

  • Total files changed upstream: 53
  • Files present in PR: 18/53
  • Files with matching changes: 14/53

❌ Overall Status: 🔴 INCOMPLETE - Missing files or changes

Comment thread src/utils.ts Outdated
export async function getManifestURLS(): Promise<string[]> {
return [
'https://raw.githubusercontent.com/step-security/setup-php/main/src/configs/php-versions.json',
'https://raw.githubusercontent.com/shivammathur/setup-php/develop/src/configs/php-versions.json',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revert?

Comment thread .github/workflows/php.yml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in cherry-pick we have examples folder, we have in main as well, but here we dont have

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because we already have those changes that's why they're not present in this PR.

Signed-off-by: Anurag Rajawat <anurag@stepsecurity.io>
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Cherry-Pick Verification Report

📦 Upstream Changes: 2.37.0...2.37.2

📋 File-by-File Analysis:

.github/CODEOWNERS

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 1 additions, 0 deletions)

.github/FUNDING.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 1 additions, 0 deletions)

.github/SECURITY.md

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 1 additions, 1 deletions)

.github/dependabot.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+11 -5)

.github/workflows/codeql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 9 additions, 4 deletions)

.github/workflows/docs.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 20 additions, 10 deletions)

.github/workflows/node.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+8 -3)

.github/workflows/php.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+15 -6) | Missing 5 additions | Missing 3 deletions

.github/workflows/publish.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - File missing in PR (upstream has 20 additions, 10 deletions)

README.md

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+9 -6) | Missing 8 additions | Missing 5 deletions

__tests__/config.test.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+12 -8)

__tests__/tools.test.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+146 -18)

__tests__/utils.test.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+80 -2) | Missing 3 additions

examples/bedrock.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+1 -1)

examples/blackfire-player.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+16 -5)

examples/blackfire.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+17 -5)

examples/cakephp-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+11 -7)

examples/cakephp-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+14 -9)

examples/cakephp.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+11 -5)

examples/codeigniter.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -3)

examples/drupal.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+59 -0)

examples/laminas-mvc.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+3 -2)

examples/laravel-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+5 -3)

examples/laravel-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -4)

examples/laravel.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+2 -1)

examples/lumen-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+2 -2)

examples/lumen-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+6 -6)

examples/lumen.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+3 -2)

examples/phalcon-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -7)

examples/phalcon-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+14 -20)

examples/sage.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+5 -12)

examples/slim-framework.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+2 -1)

examples/symfony-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+13 -13)

examples/symfony-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+13 -13)

examples/symfony.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -7)

examples/wordpress.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+68 -0)

examples/yii3-mysql.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+78 -0)

examples/yii3-postgres.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+78 -0)

examples/yii3.yml

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+53 -0)

src/config.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+5 -2)

src/configs/composer-gh-auth-no-op

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+3 -0)

src/configs/composer-gh-auth-warn

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+1 -0)

src/configs/os_releases.csv

  • Upstream has changes: ✅ Yes
  • File exists in PR: ❌ No
  • Status: 🔴 Missing - ❌ No PR patch available (+4 -1)

src/install.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+5 -2)

src/scripts/extensions/gearman.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+1 -1)

src/scripts/extensions/phalcon.ps1

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+3 -21)

src/scripts/extensions/phalcon.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+2 -0)

src/scripts/tools/add_tools.ps1

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+24 -2)

src/scripts/tools/add_tools.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+29 -7)

src/scripts/tools/brew.sh

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+1 -0)

src/scripts/win32.ps1

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+13 -9)

src/tools.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ✅ Yes
  • Status: 🟢 Perfect - ✅ All changes applied correctly (+47 -9)

src/utils.ts

  • Upstream has changes: ✅ Yes
  • File exists in PR: ✅ Yes
  • Changes match: ❌ No
  • Status: 🟡 Partial - ❌ Cherry-pick incomplete (+87 -36) | Missing 1 additions | Missing 1 deletions

📊 Summary:

  • Total files changed upstream: 53
  • Files present in PR: 18/53
  • Files with matching changes: 14/53

❌ Overall Status: 🔴 INCOMPLETE - Missing files or changes

@anurag-stepsecurity
anurag-stepsecurity merged commit ec39a6f into main Aug 27, 2026
73 of 74 checks passed
@anurag-stepsecurity
anurag-stepsecurity deleted the auto-cherry-pick branch August 27, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-required Trigger Claude AI code review on the PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants