我正在尝试编写一个脚本,以快速检查我们的Jenkins插件是否最新。我知道这是Jenkins的内置功能,但是出于安全原因,我们的Jenkins实例无法访问Internet。
我知道我可以从以下网站获得有关插件的很多信息,包括版本:
https://plugins.jenkins.io/<name-of-plugin>
但是,我无法返回HTML以外的任何内容。我可以抓取HTML以获得版本号,但是如果有一个稳定的API返回JSON或类似的API,那将是首选。我很确定Jenkins不会抓取HTML来检查更新,因此API必须存在。有谁知道它在哪里?
答案 0 :(得分:1)
似乎有两种解决方案。我最后刮了:
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>
我还找到了源代码和文档: