我正在尝试编写一个脚本,以快速检查我们的Jenkins插件是否最新。我知道这是Jenkins的内置功能,但是出于安全原因,我们的Jenkins实例无法访问互联网。
我知道我可以从以下位置获得有关插件的很多信息,包括版本:
https://plugins.jenkins.io/<name-of-plugin>
但是,我无法返回HTML以外的任何内容。我可以抓取HTML以获得版本号,但是如果有一个稳定的API返回JSON或类似的API,那将是首选。我很确定Jenkins不会抓取HTML来检查更新,因此API必须存在。有人知道它在哪里吗?
似乎有两种解决方案。我最后刮了:
https://updates.jenkins.io/download/plugins/<name-of-plugin>
最新版本始终位于第二行的第二列中,因此抓取很简单。在大多数情况下,它运行良好,但有时会拒绝连接,我认为这可能是由于脚本发送的请求量大。]
我发现的另一个选项是下载以下JSON文件:
https://updates.jenkins.io/current/update-center.actual.json
当前为1.7MB,其中包含有关所有Jenkins插件的最新版本的信息。它还包含诸如依赖性之类的元数据,它使您的脚本可以验证是否满足所有依赖性。
[不幸的是,我还没有找到下载单个插件的JSON的方法,因此您要么必须为单个插件抓取HTML,要么为所有插件下载大量的JSON。
更新:
我找到了API:https://plugins.jenkins.io/api/plugin/<name-of-plugin>
而且我还找到了源代码和文档: