Project Icon

node-jenkins

Node.js库实现Jenkins操作和监控自动化

node-jenkins是一个用于与Jenkins交互的Node.js客户端库。它提供API用于管理Jenkins的构建、作业、凭据和节点等核心功能。该库使开发人员能够在Node.js应用中方便地实现Jenkins操作和监控,简化了自动化流程的集成。

Jenkins

This is a Node.js client for Jenkins.

Documentation

Common Options

These options will be passed along with any call, although only certain endpoints support them.

  • depth (Number, default: 0): how much data to return (see depth control)
  • tree (String, optional): path expression (see Jenkins API documentation for more information)

Jenkins(options)

Initialize a new Jenkins client.

Options

  • baseUrl (String): Jenkins URL
  • crumbIssuer (Boolean, default: true): enable CSRF Protection support
  • formData (Function, optional): enable file upload support on parameterized builds (must pass in require('form-data') as value for this option)
  • headers (Object, optional): headers included in every request
  • and more via papi

Usage

import Jenkins from "jenkins";

const jenkins = new Jenkins({
  baseUrl: "http://user:pass@localhost:8080",
});

jenkins.info(callback)

Get server information.

Usage

await jenkins.info();

Result

{
  "assignedLabels": [{}],
  "description": null,
  "jobs": [
    {
      "color": "blue",
      "name": "example",
      "url": "http://localhost:8080/job/example/"
    }
  ],
  "mode": "NORMAL",
  "nodeDescription": "the master Jenkins node",
  "nodeName": "",
  "numExecutors": 2,
  "overallLoad": {},
  "primaryView": {
    "name": "All",
    "url": "http://localhost:8080/"
  },
  "quietingDown": false,
  "slaveAgentPort": 12345,
  "unlabeledLoad": {},
  "useCrumbs": false,
  "useSecurity": false,
  "views": [
    {
      "name": "All",
      "url": "http://localhost:8080/"
    }
  ]
}

jenkins.build.get(options)

Get build information.

Options

  • name (String): job name
  • number (Integer): build number

Usage

await jenkins.build.get("example", 1);

Result

{
  "actions": [],
  "buildable": true,
  "builds": [
    {
      "number": 1,
      "url": "http://localhost:8080/job/example/1/"
    }
  ],
  "color": "blue",
  "concurrentBuild": false,
  "description": "",
  "displayName": "example",
  "displayNameOrNull": null,
  "downstreamProjects": [],
  "firstBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "healthReport": [
    {
      "description": "Build stability: No recent builds failed.",
      "iconUrl": "health-80plus.png",
      "score": 100
    }
  ],
  "inQueue": false,
  "keepDependencies": false,
  "lastBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastCompletedBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastFailedBuild": null,
  "lastStableBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastSuccessfulBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastUnstableBuild": null,
  "lastUnsuccessfulBuild": null,
  "name": "example",
  "nextBuildNumber": 2,
  "property": [],
  "queueItem": null,
  "scm": {},
  "upstreamProjects": [],
  "url": "http://localhost:8080/job/example/"
}

jenkins.build.log(options)

Get build log.

Options

  • name (String): job name
  • number (Integer): build number
  • start (Integer, optional): start offset
  • type (String, enum: text, html, default: text): output format
  • meta (Boolean, default: false): return object with text (log data), more (boolean if there is more log data), and size (used with start to offset on subsequent calls)

Usage

await jenkins.build.log("example", 1);

jenkins.build.logStream(options)

Get build log stream.

Options

  • name (String): job name
  • number (Integer): build number
  • type (String, enum: text, html, default: text): output format
  • delay (Integer, default: 1000): poll interval in milliseconds

Usage

const log = jenkins.build.logStream("example", 1);

log.on("data", (text) => {
  process.stdout.write(text);
});

log.on("error", (err) => {
  console.log("error", err);
});

log.on("end", () => {
  console.log("end");
});

jenkins.build.stop(options)

Stop build.

Options

  • name (String): job name
  • number (Integer): build number

Usage

await jenkins.build.stop("example", 1);

jenkins.build.term(options)

Terminates build.

Options

  • name (String): job name
  • number (Integer): build number

Usage

await jenkins.build.term("example", 1);

jenkins.credentials.create(options)

Create credentials in a folder or system.

Options

  • folder (String): path of the folder or manage for system credentials
  • store (String): the credentials store, can be either folder or system
  • domain (String): the credentials domain
  • xml (String): configuration XML

Usage

await jenkins.credentials.create("folder", "store", "domain", "xml");

jenkins.credentials.exists(options)

Check if credentials exist in a folder or system.

Options

  • id (String): the id of the credentials
  • folder (String): path of the folder or manage for system credentials
  • store (String): the credentials store, can be either folder or system
  • domain (String): the credentials domain

Usage

await jenkins.credentials.exists("id", "folder", "store", "domain");

jenkins.credentials.config(options)

Get XML configuration of credentials.

Options

  • id (String): the id of the credentials
  • folder (String): path of the folder or manage for system credentials
  • store (String): the credentials store, can be either folder or system
  • domain (String): the credentials domain

Usage

await jenkins.credentials.config("id", "folder", "store", "domain");

jenkins.credentials.config(options)

Update credentials.

Options

  • id (String): the id of the credential
  • folder (String): path of the folder or manage for system credentials
  • store (String): the credentials store, can be either folder or system
  • domain (String): the credentials domain
  • xml (String): configuration XML

Usage

await jenkins.credentials.update("id", "folder", "store", "domain", "xml");

jenkins.credentials.destroy(options)

Delete credentials from folder or system.

Options

  • id (String): the id of the credential
  • folder (String): path of the folder or manage for system credentials
  • store (String): the credentials store, can be either folder or system
  • domain (String): the credentials domain

Usage

await jenkins.credentials.destroy("id", "folder", "store", "domain");

jenkins.credentials.list(options)

Get a list of credentials in a folder or system.

Options

  • folder (String): path of the folder or manage for system credentials
  • store (String): the credentials store, can be either folder or system
  • domain (String): the credentials domain

Usage

await jenkins.credentials.list("folder", "store", "domain");

jenkins.job.build(options)

Trigger build.

Options

  • name (String): job name
  • parameters (Object, optional): build parameters
  • token (String, optional): authorization token

Usage

await jenkins.job.build("example");
await jenkins.job.build({
  name: "example",
  parameters: { name: "value" },
});
await jenkins.job.build({
  name: "example",
  parameters: { file: fs.createReadStream("test.txt") },
});

jenkins.job.config(options)

Get job XML configuration.

Options

  • name (String): job name

Usage

await jenkins.job.config("example");

jenkins.job.config(options)

Update job XML configuration.

Options

  • name (String): job name
  • xml (String): configuration XML

Usage

await jenkins.job.config("example", xml);

jenkins.job.copy(options)

Create job by copying existing job.

Options

  • name (String): new job name
  • from (String): source job name

Usage

await jenkins.job.copy("fromJob", "example");

jenkins.job.create(options)

Create job from scratch.

Options

  • name (String): job name
  • xml (String): configuration XML

Usage

await jenkins.job.create("example", xml);

jenkins.job.destroy(options)

Delete job.

Options

  • name (String): job name

Usage

await jenkins.job.destroy("example");

jenkins.job.disable(options)

Disable job.

Options

  • name (String): job name

Usage

await jenkins.job.disable("example");

jenkins.job.enable(options)

Enable job.

Options

  • name (String): job name

Usage

await jenkins.job.enable("example");

jenkins.job.exists(options)

Check job exists.

Options

  • name (String): job name

Usage

await jenkins.job.exists("example");

jenkins.job.get(options)

Get job information.

Options

  • name (String): job name

Usage

await jenkins.job.get("example");

Result

{
  "actions": [],
  "buildable": true,
  "builds": [
    {
      "number": 1,
      "url": "http://localhost:8080/job/example/1/"
    }
  ],
  "color": "blue",
  "concurrentBuild": false,
  "description": "",
  "displayName": "example",
  "displayNameOrNull": null,
  "downstreamProjects": [],
  "firstBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "healthReport": [
    {
      "description": "Build stability: No recent builds failed.",
      "iconUrl": "health-80plus.png",
      "score": 100
    }
  ],
  "inQueue": false,
  "keepDependencies": false,
  "lastBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastCompletedBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastFailedBuild": null,
  "lastStableBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastSuccessfulBuild": {
    "number": 1,
    "url": "http://localhost:8080/job/example/1/"
  },
  "lastUnstableBuild": null,
  "lastUnsuccessfulBuild": null,
  "name": "example",
  "nextBuildNumber": 2,
  "property": [],
  "queueItem": null,
  "scm": {},
  "upstreamProjects": [],
  "url": "http://localhost:8080/job/example/"
}

jenkins.job.list(callback)

List jobs.

Options

  • name (String, optional): folder name

Usage

await jenkins.job.list();

Result

[
  {
    "color": "blue",
    "name": "example",
    "url": "http://localhost:8080/job/example/"
  }
]

jenkins.label.get(options)

Get label information.

Options

  • name (String): label name

Usage

await jenkins.label.get("master");

Result

{
  "_class": "hudson.model.labels.LabelAtom",
  "actions": [],
  "busyExecutors": 0,
  "clouds": [],
  "description": null,
  "idleExecutors": 2,
  "loadStatistics": {
    "_class": "hudson.model.Label$1"
  },
  "name": "master",
  "nodes": [
    {
      "_class": "hudson.model.Hudson",
      "nodeName": ""
    }
  ],
  "offline": false,
  "tiedJobs": [],
  "totalExecutors": 2,
  "propertiesList": []
}

jenkins.node.config(options)

Get node XML configuration.

Options

  • name (String): node name

Usage

await jenkins.node.config("example");

jenkins.node.create(options)

Create node.

Options

  • name (String): node name

Usage

await jenkins.node.create("node-name");

jenkins.node.destroy(options)

Delete node.

Options

  • name (String): node name

Usage

await jenkins.node.destroy("node-name");

jenkins.node.disconnect(options)

Disconnect node.

Options

  • name (String): node name
  • message (String, optional): reason for being disconnected

Usage

await jenkins.node.disconnect("node-name", "no longer used");

jenkins.node.disable(options)

Disable node.

Options

  • name (String): node name
  • message (String, optional): reason for being disabled

Usage

await jenkins.node.disable("node-name", "network failure");

jenkins.node.enable(options)

Enable node.

Options

  • name (String): node name

Usage

await jenkins.node.enable("node-name");

jenkins.node.exists(options)

Check node exists.

Options

  • name (String): node name

Usage

await jenkins.node.exists("node-name");

jenkins.node.get(options)

Get node information.

Options

  • name (String): node name

Usage

await jenkins.node.get("node-name");

Result

{
  "actions": [],
  "displayName": "node-name",
  "executors": [{}, {}],
  "icon": "computer-x.png",
  "idle": true,
 
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号