关于这款工具及其开源,InfoQ有幸采访了Robert。
InfoQ:用户如何从依赖项更新通知获益?
VersionEye一直在关注来自不同包管理器的大约100万个软件库,因此,它知道特定库当前的版本。例如,它可以监控你在GitHub上的package.json文件,并每天通知你过期的依赖项。邮件通知的频率可以按项目定义,选项包括每天、每周、每月或从不。VersionEye已经支持12种包管理器,比如Maven、NPM、PIP,并且可以识别它们的语法。
InfoQ:有些软件库使用了著佐权许可,将它们用于企业环境会更加困难。VersionEye能提供什么帮助?
VersionEye爬取器也一直在收集软件许可的元信息。目前,我们已经有大约600万个软件工件的许可信息,而且数量还在增加。在许可选项卡中,VersionEye会列出项目的所有依赖项及其许可。此外,还有一个表格展示不同许可在项目中的分布。根据需要,还可以创建一个白名单,只将特定的许可加入其中,例如MIT和Apache。如果项目指定了许可白名单,那么VersionEye就会根据许可白名单检查依赖项使用的所有许可,如果有违反许可的情况,就会发送邮件通知。借助VersionEye的Maven插件,如果存在违反许可的情况,它甚至可以中断CI服务器上的构建过程。我们的部分企业客户就是那样使用VersionEye的。
InfoQ:安全漏洞检查是如何实现的?
VersionEye一直在5个分别针对Java、PHP、Ruby、Node.JS和Python的安全数据库中积累安全信息,并且一直在将安全漏洞和包管理器中的相应工件做匹配。通过恰当的设置,例如VersionEye Maven插件、VersionEye Gradle插件或VersionEye SBT插件,如果项目受到安全漏洞的影响,就可以中断CI服务器上的构建过程。当然,如果觉得漏洞不严重,也可以根据项目忽略安全漏洞。
InfoQ:为了有效地使用VersionEye,我需要调整开发过程吗?
如果你的项目在GitHub或Bitbucket上,那么你就可以使用GitHub或Bitbucket账户免费注册,并简单地选择哪些项目文件应该由VersionEye监控。那样,你就会自动收到针对项目的邮件通知,而不必再做其他任何操作。
如果你想更进一步,则可以将VersionEye集成到构建和测试周期。几乎所有的主流构建工具都有针对VersionEye的原生插件,它们使用了公共VersionEye API。这些插件会在构建时执行安全和许可合法情况检查,并在需要时中断构建过程。对于那些需要确保许多软件项目和开发人员开发质量的大公司而言,这非常有用。
InfoQ:是什么让您决定开源VersionEye?
我们开源VersionEye,是因为希望该软件得到更广泛的应用,同时也希望得到来自开源社区的贡献。
迄今为止,我们都是以VMWare镜像的形式出售VersionEye企业版。镜像的交付和防护过程非常耗时和令人不快。那虽然可行,但软件销售比较困难。企业对透明度和安全心存担忧,因为他们不知道这个他们要在自己的基础设施上运行的黑盒子里究竟发生了什么。
现在,我们不必再操心VMWare镜像的防护和代码的保密了,我们的客户也不必再担心这个黑盒子软件了。如果一切都开源了,那么整个的分发和维护就变得简单了许多,大公司也获得了他们想要的透明度和信任。
InfoQ:你们的商业模型发生了怎样的变化?
去年,我们出售软件,现在我们出售VersionEye API的访问权限、软件托管和服务支持。任何人都可以从GitHub上免费获取代码或者从Docker Hub上获取Docker镜像。但是,如果你启动自己的VersionEye实例,则本地数据库是空的。你可以通过一种同步机制从VersionEye API更新本地数据库,而那就是收费的了。或者,你可以运行自己的Java爬取器,但目前为止,没有人希望维护一整个爬取框架。从VersionEye API获取数据更简单也更便宜。
====================================分割线================================
本文转自d1net(转载)