CI 使用未锁定版本的 npx 包并执行全局安装
原文依据:3 处验证工作流在 push 和 pull_request 上执行 npx skills,但命令没有锁定 npm 包的版本或完整性,并使用 --global -y 非交互安装。npx 在本地无匹配包时可从注册表解析并执行包代码。
如果 skills 包的当前发布版本、解析结果或依赖链被攻陷,第三方代码可在 GitHub Actions 运行器中执行,并访问该作业可见的检出内容、环境和 GitHub 令牌权限。
该工作流在 main 的 push 和 pull_request 上执行 `npx skills add`,未指定 npm 包版本或完整性,并带 `--global -y`。在运行器需要从注册表解析包时,安装脚本或包入口可在 CI 权限范围内执行;受影响权限取决于 GitHub 默认权限、事件类型和可用 secrets。用户可要求锁定精确版本/摘要、禁用生命周期脚本并最小化工作流权限。
on: push: branches: [main] pull_request: branches: [main]查看另外 2 个位置
- uses: actions/setup-node@v4 with: node-version: "20" - name: Install skill run: npx skills add . --all --global -y - name: Install skill run: npx skills add . --all --global -y