用途
depsdotdev 用于通过 deps.dev API(Open Source Insights)获取开源包的依赖情报。它把包坐标(system/name/version)映射为高信号的依赖信息,适合需要查询包元数据、版本、依赖关系和安全公告的场景。
主要能力
- 获取包元数据与版本列表(GetPackage)
- 检查单个版本的信息,包括许可证、安全公告、相关链接(GetVersion)
- 获取声明的依赖约束(GetRequirements)
- 获取解析后的依赖图(GetDependencies)
- 将项目仓库映射到包版本(GetProjectPackageVersions)
- 通过文件哈希或精确版本键进行查询(Query)
- 使用 purl、批量端点及 dependents 等 v3alpha 功能
使用方式
- 优先使用稳定 API 基础地址:https://api.deps.dev/v3
- 仅在需要 purl 和批量端点时使用 v3alpha
- 发送请求前对所有路径和查询值进行百分号编码
- 在后续调用中使用响应返回的规范值(packageKey、versionKey、projectKey)
最小工作流:
- 将用户输入规范化为 {system, name, version?}
- 若缺少版本,调用 GetPackage,优先选择 isDefault 或最新发布的版本
- 调用 GetVersion 获取许可证、公告、来源等元数据
- 当用户询问“声明”与“解析”依赖的区别时,补充 GetRequirements 和 GetDependencies
- 若输入是哈希或 purl,使用 Query 或 v3alpha purl 端点
技能内提供以下参考文档:
- references/endpoint-map.md:端点映射与快速路由
- references/request-shapes-and-encoding.md:URL/purl 规则与编码
- references/limits-errors-and-reliability.md:批量/查询限制与错误处理
- references/v3alpha-extras.md:purl、批量、dependents 等 v3alpha 功能
- examples/curl-cheatsheet.md:curl 模式与 jq 片段
适用场景
- 查询某个包的可用版本
- 检查某个版本的许可证与安全公告
- 分析包的声明依赖约束或解析后的依赖图
- 将代码仓库映射到对应的包版本
- 通过文件哈希或精确版本键定位包
限制
- 稳定 API 为 v3,v3alpha 仅用于 purl 和批量端点等特定功能
- 需注意批量与查询的限制及错误处理
- 所有路径和查询值必须进行百分号编码
- 外部文档:API 概览与版本见 https://docs.deps.dev/api/,稳定 REST schema 见 https://docs.deps.dev/api/v3/,实验性 REST schema 见 https://docs.deps.dev/api/v3alpha/