Skip to content

DO-2057: create composite action to install safe-chain - #193

Merged
tmthrgd-aligent merged 4 commits into
mainfrom
feature/DO-2057_pin_safe_chain
Nov 5, 2026
Merged

tmthrgd-aligent merged 4 commits into
mainfrom
feature/DO-2057_pin_safe_chain

Conversation

@tmthrgd-aligent

Copy link
Copy Markdown
Contributor

This composite action installs Aikido's safe-chain in the runner. It
installs a fixed version and verifies it's SHA256 checksum.

It also verifies that safe-chain is correctly installed and operational.

Unfortunately Dependabot won't be able to alert us to safe-chain updates
so these will have to be tracked manually.

tmthrgd-aligent and others added 3 commits November 4, 2026 17:09
This composite action installs Aikido's safe-chain in the runner. It
installs a fixed version and verifies it's SHA256 checksum.

It also verifies that safe-chain is correctly installed and operational.

Unfortunately Dependabot won't be able to alert us to safe-chain updates
so these will have to be tracked manually.
…ction

This replaces the manual curl | sh calls that install Aikido's
safe-chain with our composite action. This new action verifies that the
downloaded script hasn't been manipulated before running it. It also
verifies that the install was successful.
Add the existing "Install safe-chain" step before the first package
install in every job that runs npm/yarn/pnpm (including global CLI
installs and the Adobe I/O CLI setup action), matching the step already
used in node-pr, node-publish, aws-cdk, nx-serverless-deployment,
shopify-deploy and the Vercel deploy workflows. This uses our new
install-safe-chain composite action.

Not covered: safe-chain only supports npm- and PyPI-based package
managers, so it cannot protect the following:

- php-quality-checks.yml (Composer): not supported by safe-chain.
  Composer 2.10+ blocks malicious packages by default using Aikido's
  threat feed via Packagist. The workflow installs composer:v2 through
  setup-php, which should resolve to the latest 2.x; pinning
  composer:2.10 or higher would guarantee this protection.
- aem-sync-to-cloudmanager-repo.yml (Maven): not supported by
  safe-chain. Aikido only covers Maven via its separate paid Device
  Protection product.
- magento-cloud-deploy.yml: installs the Magento Cloud CLI via
  `curl | php`, which no package manager tooling intercepts.

Refs:
- https://github.com/AikidoSec/safe-chain
- https://aikido.dev/blog/composer-protected-aikido-packagist

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This should address all of the failures raised.

@aaronmedina-dev aaronmedina-dev left a comment

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.

LGTM

@tmthrgd-aligent

Copy link
Copy Markdown
Contributor Author

@tmthrgd-aligent
tmthrgd-aligent merged commit b0431a7 into main Nov 5, 2026
3 checks passed
@tmthrgd-aligent
tmthrgd-aligent deleted the feature/DO-2057_pin_safe_chain branch November 5, 2026 01:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants