关于 security
为代码仓库提供依赖包最低发布时长策略的安全技能,面向维护 Bun、npm、pnpm 或 uv 配置的开发者。它根据仓库实际使用的包管理器设置七天成熟期,并保留其他配置。
主要功能
- 01为依赖设置七天发布成熟期
- 02识别仓库实际使用的包管理器
- 03仅更新相关配置文件
- 04保留现有格式与无关设置
- 05说明年龄限制的适用边界
适用场景
- 01为 Bun 项目配置依赖成熟期
- 02为 npm 或 pnpm 仓库设置团队策略
- 03为 uv 项目限制 PyPI 新包解析
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ keejkrej/ based-skills --skill security安装后在 Claude Code 中输入/security确认已加载。
详细介绍
安全性:最低发布时长
默认应用七天的注册表软件包成熟期窗口。
常量
- 使用七天。
- 按需换算:
7天 =10080分钟 =604800秒。 - 仅添加仓库实际使用的软件包管理器。
- 不要将身份验证令牌和密钥放入已提交的配置中。
设置
| 工具 | 文件 | 键 | 七天对应值 |
|---|---|---|---|
| Bun | bunfig.toml [install] | minimumReleaseAge | 604800 |
| npm | .npmrc | min-release-age | 7 |
| pnpm | pnpm-workspace.yaml | minimumReleaseAge | 10080 |
| uv | pyproject.toml [tool.uv] 或 uv.toml | exclude-newer | "7 days" |
Bun
- 添加根目录下的
bunfig.toml,或更新现有文件。 - 仅在需要针对特定情况进行例外时使用
minimumReleaseAgeExcludes。
[install]
minimumReleaseAge = 604800
文档:https://bun.sh/docs/runtime/bunfig#installminimumreleaseage
npm
- 添加项目级
.npmrc,以应用团队策略。 - 不要同时使用
min-release-age和before。 - 仅对有充分理由的特定软件包设置排除项。
min-release-age=7
文档:https://docs.npmjs.com/cli/using-npm/config#min-release-age
pnpm
- 对于 pnpm 11.x,将非身份验证设置放在
pnpm-workspace.yaml中。 - 如果不存在工作区文件,则添加一个最简文件,并包含当前软件包。
- 仅在需要针对特定情况(例如内部作用域)进行例外时使用
minimumReleaseAgeExclude。 - 升级旧版 pnpm 仓库时,迁移
.npmrc中旧的时长设置。
minimumReleaseAge: 10080
文档:https://pnpm.io/settings#minimumreleaseage
uv
- 为 PyPI 解析设置
exclude-newer。 - 优先使用
"7 days",以提高可读性。 - 仅在需要针对特定软件包进行例外时使用
exclude-newer-package。
[tool.uv]
exclude-newer = "7 days"
exclude-newer = "7 days"
文档:https://docs.astral.sh/uv/reference/settings/#exclude-newer
工作流
- 根据锁文件和配置检测软件包管理器:
bun.lock、bunfig.toml、package.json、其他锁文件、pnpm-workspace.yaml、pyproject.toml、uv.toml。 - 仅更新相关文件。
- 保留现有格式和无关设置。
- 更改策略后,运行常规安装、同步或锁定命令。
- 如果解析失败,请收紧版本范围、等待达到成熟期,或添加范围狭窄的排除项。
- 适当时,在 PR 备注或贡献者文档中说明七天策略。
限制
- 将时长限制作为一种防护措施,而非替代锁文件审查、脚本限制、私有注册表控制或密钥扫描。
- 使用 Git、tarball、路径或私有注册表依赖项时,检查上游行为。
评论
支持 Markdown