Skip to content

Commit 26f295e

Browse files
Ahmed Abbasclaude
andcommitted
chore(ci): enforce minimum release age via Yarn's native gate + freeze qa install
Supply-chain hardening (Asana 1216667157595351): - .yarnrc.yml: npmMinimalAgeGate 4320 (3 days) + npmPreapprovedPackages @convertcom/* — Yarn refuses to install a dependency version younger than 3 days (the smash-and-grab filter), exempting our internal scope. - qa.yml: freeze the dependency install (yarn -> yarn install --immutable) so CI installs strictly from the committed lockfile. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent a0f4ac4 commit 26f295e

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

.github/workflows/qa.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
corepack prepare yarn@stable --activate
3636
3737
- name: Install dependencies
38-
run: yarn
38+
run: yarn install --immutable
3939

4040
- name: Install Playwright browsers
4141
run: |

.yarnrc.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
11
nodeLinker: node-modules
2+
3+
# Supply-chain minimum release age: refuse to install any dependency version
4+
# published less than 3 days ago (smash-and-grab malware is usually yanked
5+
# within hours). Internal @convertcom/* packages are exempt so our own release
6+
# chain never stalls on a freshly-published package.
7+
npmMinimalAgeGate: 4320
8+
npmPreapprovedPackages:
9+
- "@convertcom/*"

0 commit comments

Comments
 (0)