是否有针对Jenkins插件的REST API?

时间:2019-10-22 16:16:04

标签: rest api jenkins plugins jenkins-plugins

我正在尝试编写一个脚本,以快速检查我们的Jenkins插件是否最新。我知道这是Jenkins的内置功能,但是出于安全原因,我们的Jenkins实例无法访问Internet。

我知道我可以从以下网站获得有关插件的很多信息,包括版本:

https://plugins.jenkins.io/<name-of-plugin>

但是,我无法返回HTML以外的任何内容。我可以抓取HTML以获得版本号,但是如果有一个稳定的API返回JSON或类似的API,那将是首选。我很确定Jenkins不会抓取HTML来检查更新,因此API必须存在。有谁知道它在哪里?

1 个答案:

答案 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>

我还找到了源代码和文档:

https://github.com/jenkins-infra/plugin-site-api