【问题标题】:Is there a REST API for Jenkins plugins?Jenkins 插件有 REST API 吗?
【发布时间】:2019-10-22 16:16:04
【问题描述】:

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

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

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

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

【问题讨论】:

标签: rest api jenkins plugins jenkins-plugins


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    相关资源
    最近更新 更多