mcpField
S
security

security

github.com/keejkrej安全138 次安装18 周前更新
代码仓库

关于 security

为代码仓库提供依赖包最低发布时长策略的安全技能,面向维护 Bun、npm、pnpm 或 uv 配置的开发者。它根据仓库实际使用的包管理器设置七天成熟期,并保留其他配置。

主要功能

  1. 01为依赖设置七天发布成熟期
  2. 02识别仓库实际使用的包管理器
  3. 03仅更新相关配置文件
  4. 04保留现有格式与无关设置
  5. 05说明年龄限制的适用边界

适用场景

  1. 01为 Bun 项目配置依赖成熟期
  2. 02为 npm 或 pnpm 仓库设置团队策略
  3. 03为 uv 项目限制 PyPI 新包解析

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/keejkrej/based-skills --skill security

安装后在 Claude Code 中输入/security确认已加载。

详细介绍

安全性:最低发布时长

默认应用七天的注册表软件包成熟期窗口。

常量

  • 使用七天。
  • 按需换算:7 天 = 10080 分钟 = 604800 秒。
  • 仅添加仓库实际使用的软件包管理器。
  • 不要将身份验证令牌和密钥放入已提交的配置中。

设置

工具文件键七天对应值
Bunbunfig.toml [install]minimumReleaseAge604800
npm.npmrcmin-release-age7
pnpmpnpm-workspace.yamlminimumReleaseAge10080
uvpyproject.toml [tool.uv] 或 uv.tomlexclude-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