从 Jenkins REST 查询检索参数

2024-01-01


以下 REST 查询将返回上次成功构建作业的参数:https://localhost/job/test1/lastSuccessfulBuild/api/json https://localhost/job/test1/lastSuccessfulBuild/api/json
我有兴趣检索此构建的参数之一,BUILD_VERSION:

{

    "_class": "org.jenkinsci.plugins.workflow.job.WorkflowRun",
    "actions": [
        {
            "_class": "hudson.model.CauseAction",
            "causes": [
                {
                    "_class": "hudson.model.Cause$UpstreamCause",
                    "shortDescription": "Started by upstream project \"continuous-testing-pipeline-for-nightly\" build number 114",
                    "upstreamBuild": 114,
                    "upstreamProject": "continuous-testing-pipeline-for-nightly",
                    "upstreamUrl": "job/continuous-testing-pipeline-for-nightly/"
                }
            ]
        },
        { },
        {
            "_class": "hudson.model.ParametersAction",
            "parameters": [

                {
                    "_class": "hudson.model.StringParameterValue",
                    "name": "BUILD_VERSION",
                    "value": "1.1.15"

有没有办法直接使用 REST Api 检索 BUILD_VERSION (1.1.15) 还是我必须手动解析 json 字符串? 谢谢


简短回答:不。

以编程方式访问通过 JSON API 公开的任何属性的最简单方法是从 Jenkins 支持的 JSON API 之一获取 JSON(在您的情况下:https://localhost/job/<jobname>/lastSuccessfulBuild/api/json)

  1. 将生成的 JSON 复制到http://json2csharp.com http://json2csharp.com
  2. 生成相应的C#代码。不要忘记为顶级课程创建一个有意义的名称。
  3. 使用 C# 以编程方式调用 Rest API休息锐利 https://www.nuget.org/packages/RestSharp/.
  4. 将 json 反序列化为您在上面 2 中定义的 C# 类。

Wammo,您可以访问整个对象树及其所有值。

我使用这种方法编写了一个名为“BuildDashboard”的 MVC5 ASP.NET 站点,以提供开发团队可能需要的所有信息并回答他们提出的每个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Jenkins REST 查询检索参数 的相关文章

  • 使用 zip 实用程序从工作区目录中压缩多个文件/文件夹

    我们有一个 Jenkins 管道 我想压缩位于工作区中多个目录中的多个文件 py 和 cfg 有没有一种方法可以将多个值传递给dirzip 方法的选项 zip zipFile package zip dir WORKSPACE infra
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • Jenkins 管道中的 Sonarqube 质量门状态检查失败

    我是詹金斯管道脚本和声纳库的新手 如果我能就以下问题获得一些帮助 那就太好了 当质量门检查失败时 我想使 Jenkins 声明式管道作业失败 根据声纳文档 https docs sonarqube org latest analysis s
  • Jenkins:尽管没有变化,SCM 仍然触发持续构建

    我们遇到一个问题 尽管没有代码更改 SCM 仍在触发构建 SCM 每 15 分钟轮询一次更改 并且仅在发现更改时才触发构建 以下是连续 SCM 轮询日志的几个示例 Started on Nov 15 2013 11 47 14 AM Usi
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • Jenkins 可以检测到任何 svn 用户每次提交代码吗?

    Jenkins 可以检测到任何 svn 用户每次提交代码吗 我想知道每次 Jenkins 提交 svn user 时 有什么方法或 jenkins 插件吗 现在我用svn updateJenkins 中的 cmd 来更新 svn 您可以按照
  • 在 System Groovy 中暂时禁用 Jenkins 服务器上的 SCM 轮询

    我们有一个 Jenkins 服务器 正在运行 20 到 30 个作业 由于构建过程相当复杂 我们将实际构建分解为 1 个子构建 其中一些可以同时运行 其他则必须遵循之前的构建步骤 因此 我们将每个构建步骤分为 3 组 这三组在构建进行时会被
  • 如何从容器内运行 podman?

    我想跑podman https podman io作为运行 CI CD 管道的容器 但是 我不断从 podman 容器中收到此错误 podman info ERRO 0000 overlay is not supported over ov
  • 如何删除詹金斯中的旧版本? [复制]

    这个问题在这里已经有答案了 我从 Jenkins 的构建目录中删除了旧的构建文件夹 希望它们在 UI 中删除 不幸的是 虽然这些构建目录消失了 但它们的 UI 链接仍然存在 我现在有两个问题 如何删除用户界面中失效的链接 如何从 cli 中
  • 如何让 Jenkins、Sonar 和 JaCoCo 插件在 Eclipse Tycho 插件项目(或者 Cobertura)中协同工作?

    我的设置是 詹金斯 1 448 声纳2 13 詹金斯声纳插件 1 72 Sonar 的 MySql 数据库 我有以下项目 Eclipse 插件项目 使用Maven 多个模块 父级 Maven 项目 源插件项目 测试片段项目 一个简单的 JU
  • 如何使用远程访问 API 获取 jenkins 的系统配置

    詹金斯提供了很好的远程访问API https wiki jenkins ci org display JENKINS Remote access API 可用于获取大量信息 例如作业和视图 我想知道是否或如何从远程访问 API 获取系统 全
  • Jenkins 多分支:更改 Groovy 的工作描述

    我在詹金斯的多分支项目工作正常 但我想修改job描述 默认情况下为 完整项目名称 xxxx 以更有意义 我可以使用以下命令轻松更改构建描述currentBuild当我的变量Jenkinfile已执行 但我不知道如何修改父作业描述 我的用例是
  • 如何通过 JSON / JS 在 Jenkins 中添加 CSRF 面包屑

    我想在 Jenkins 中通过 API 创建作业 但无法连接 Jenkins 中的 CSRF 保护课程 我得到了一个面包屑 但不知道如何将其附加到 JSON 或 JavaScript 中的 url 请求 以通过 POST 方法获取数据传递
  • 如何在 Jenkinsfile 中将 Artifactory DiscardOldBuilds 设置为 true?

    我正在努力使用 Jenkins 多分支管道来实现构建作业 最后阶段是将构建输出上传到 Artifactory 通过界面配置独立作业时 有一个选项 丢弃来自 Artifactory 的旧构建 这允许我仅保留 要保留的最大构建数 设置中指定的相
  • Jenkins sudo:不存在 tty,并且没有使用 NOPASSWD 指定的 Askpass 程序 [重复]

    这个问题在这里已经有答案了 我花了几天时间来设置文件 etc sudoers能够向用户授予 root 权限jenkins 我在我的服务器上安装了 Jenkins 因为我使用 symfony ionic neo4j 等托管多个项目 问题是我无
  • 詹金斯钩子不工作 - 詹金斯位桶

    您好 我正在使用 jenkins 和 bitbucket 当我向 bitbucket 存储库提交任何内容时 我想触发 jenkins 中的构建 在詹金斯 我创建了一个名为test 1 在配置部分Build Triggers我勾选的部分Tri
  • 如何在 MultiJob 插件中传递内部版本号?

    The 多作业插件 https wiki jenkins ci org display JENKINS Multijob Plugin很棒 我想将它用于我的构建过程 但之前有一个问题必须解决 有三个作业 A B 和 C SVN 触发作业 A
  • 如何将用户输入密码与凭据密码进行比较

    我有一个脚本化管道 它使用以下命令请求用户的密码input函数并将其与用户保存的凭据密码进行比较 如果用户输入的是一个类型string然后就可以了 但是 当我将输入类型更改为password 因此当用户键入它时 它在屏幕上不可见 它会失败并
  • 如何通过运行构建队列重新启动 Jenkins?

    我们的 Jenkins 执行大量集成测试 詹金斯运行的时间越长 测试所需的时间就越长 因此 我们每天晚上通过 cronjob 重新启动 Jenkins 服务器 同时 构建队列太长而无法完成 当前正在运行的作业被取消并失败 那太丑了 我找到了
  • 仅运行相应源代码已更改的单元测试?

    我正在 Jenkins CI 服务器中运行单元测试和 Selenium 测试 众所周知 在大型项目中测试需要很长时间才能运行 Java 是否有一个工具 框架只能触发其源代码已更改的测试 这是因为并非每次对 SCM 的提交都会影响源代码的所有

随机推荐