使用deps.dev选择依赖项
#安全 #go #dependencies

选择项目的依赖关系是我们有时会忽略的,但是它可能会产生非常相关的影响。下图说明了以下想法:

dependencies

为了促进这一过程,Google最近启动了一个新项目deps.dev。它的口号总结了其目标:了解您的依赖项。该工具支持编程语言,例如JavaScript,Rust,Go,Python和Java。

显示优势,想象一个方案:一个团队正在开发GO中的API,需要选择库来实现Circuit Breaker模式。经过互联网和优秀网站Awesome Go的研究,他们将列表减少到以下选项:

让我们以deps.dev进行每个搜索以开始比较。这些是与LIB分析的链接:

提供的一些信息对我来说很突出。例如,在gobreaker的分析中:

  • 该工具使用安全性,许可证等标准以及是否积极维护了LIB的分数:

dependencies_score

  • 我们可以看到LIB拥有多少个依赖关系以及有多少个项目正在使用,这可能是社区质量和信任的好兆头:

dependencies_dependents

也可以查看LIB是否有任何安全警告。 mercari/go-circuitbreaker lib在这方面有风险:

dependencies_security

有了这些信息,团队可以对他们可以在项目中使用哪些LIB做出更安全的决定。

另一个方便的功能是deps.dev具有API。使用此API,可以在项目的Continuous Integration服务中创建检查,以验证是否存在与依赖关系相关的任何安全警告或是否有新版本的必需库。

deps.dev是一个值得的项目,可以帮助团队选择和管理项目的依赖关系。

最初于2023年4月19日在https://eltonminetto.dev上出版