{"id":14984635,"url":"https://github.com/silas/node-jenkins","last_synced_at":"2025-05-15T22:06:41.190Z","repository":{"id":4759480,"uuid":"5909741","full_name":"silas/node-jenkins","owner":"silas","description":"Jenkins client","archived":false,"fork":false,"pushed_at":"2024-02-11T00:15:09.000Z","size":277,"stargazers_count":363,"open_issues_count":22,"forks_count":84,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-04-08T08:17:15.564Z","etag":null,"topics":["javascript","jenkins","nodejs"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/jenkins","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-09-22T02:43:29.000Z","updated_at":"2025-02-17T09:51:30.000Z","dependencies_parsed_at":"2024-06-18T12:31:15.650Z","dependency_job_id":"38b31ba1-d258-4882-b090-10dd4879f243","html_url":"https://github.com/silas/node-jenkins","commit_stats":{"total_commits":158,"total_committers":17,"mean_commits":9.294117647058824,"dds":0.1392405063291139,"last_synced_commit":"034f18bca391907eed9ddaa6e8bbf8d1f9c179a6"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silas%2Fnode-jenkins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silas%2Fnode-jenkins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silas%2Fnode-jenkins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silas%2Fnode-jenkins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silas","download_url":"https://codeload.github.com/silas/node-jenkins/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253823425,"owners_count":21969846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","jenkins","nodejs"],"created_at":"2024-09-24T14:09:25.690Z","updated_at":"2025-05-15T22:06:41.144Z","avatar_url":"https://github.com/silas.png","language":"JavaScript","readme":"# Jenkins\n\nThis is a Node.js client for [Jenkins](http://jenkins-ci.org/).\n\n## Documentation\n\n- jenkins: [init](#init), [info](#info)\n- build: [get](#build-get), [log](#build-log), [logStream](#build-log-stream), [stop](#build-stop), [term](#build-term)\n- credentials: [create](#credentials-create), [exists](#credentials-exists), [get config](#credentials-get-config), [set config](#credentials-set-config), [destroy](#credentials-destroy), [list](#credentials-list)\n- job: [build](#job-build), [get config](#job-config-get), [set config](#job-config-set), [copy](#job-config-copy), [create](#job-create), [destroy](#job-destroy), [disable](#job-disable), [enable](#job-enable), [exists](#job-exists), [get](#job-get), [list](#job-list)\n- label: [get](#label-get)\n- node: [get config](#node-config-get), [create](#node-create), [destroy](#node-destroy), [disconnect](#node-disconnect), [disable](#node-disable), [enable](#node-enable), [exists](#node-exists), [get](#node-get), [list](#node-list)\n- plugin: [list](#plugin-list)\n- queue: [list](#queue-list), [item](#queue-item), [cancel](#queue-cancel)\n- view: [get config](#view-config-get), [set config](#view-config-set), [create](#view-create), [destroy](#view-destroy), [exists](#view-exists), [get](#view-get), [list](#view-list), [add job](#view-add), [remove job](#view-remove)\n\n\u003ca id=\"common-options\"\u003e\u003c/a\u003e\n\n### Common Options\n\nThese options will be passed along with any call, although only certain endpoints support them.\n\n- depth (Number, default: 0): how much data to return (see [depth control](https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API#RemoteaccessAPI-Depthcontrol))\n- tree (String, optional): path expression (see Jenkins API documentation for more information)\n\n\u003ca id=\"init\"\u003e\u003c/a\u003e\n\n### Jenkins(options)\n\nInitialize a new Jenkins client.\n\nOptions\n\n- baseUrl (String): Jenkins URL\n- crumbIssuer (Boolean, default: true): enable CSRF Protection support\n- formData (Function, optional): enable file upload support on parameterized builds (must pass in `require('form-data')` as value for this option)\n- headers (Object, optional): headers included in every request\n- and more via [papi](https://github.com/silas/node-papi#client)\n\nUsage\n\n```javascript\nimport Jenkins from \"jenkins\";\n\nconst jenkins = new Jenkins({\n  baseUrl: \"http://user:pass@localhost:8080\",\n});\n```\n\n\u003ca id=\"info\"\u003e\u003c/a\u003e\n\n### jenkins.info(callback)\n\nGet server information.\n\nUsage\n\n```javascript\nawait jenkins.info();\n```\n\nResult\n\n```json\n{\n  \"assignedLabels\": [{}],\n  \"description\": null,\n  \"jobs\": [\n    {\n      \"color\": \"blue\",\n      \"name\": \"example\",\n      \"url\": \"http://localhost:8080/job/example/\"\n    }\n  ],\n  \"mode\": \"NORMAL\",\n  \"nodeDescription\": \"the master Jenkins node\",\n  \"nodeName\": \"\",\n  \"numExecutors\": 2,\n  \"overallLoad\": {},\n  \"primaryView\": {\n    \"name\": \"All\",\n    \"url\": \"http://localhost:8080/\"\n  },\n  \"quietingDown\": false,\n  \"slaveAgentPort\": 12345,\n  \"unlabeledLoad\": {},\n  \"useCrumbs\": false,\n  \"useSecurity\": false,\n  \"views\": [\n    {\n      \"name\": \"All\",\n      \"url\": \"http://localhost:8080/\"\n    }\n  ]\n}\n```\n\n\u003ca id=\"build-get\"\u003e\u003c/a\u003e\n\n### jenkins.build.get(options)\n\nGet build information.\n\nOptions\n\n- name (String): job name\n- number (Integer): build number\n\nUsage\n\n```javascript\nawait jenkins.build.get(\"example\", 1);\n```\n\nResult\n\n```json\n{\n  \"actions\": [],\n  \"buildable\": true,\n  \"builds\": [\n    {\n      \"number\": 1,\n      \"url\": \"http://localhost:8080/job/example/1/\"\n    }\n  ],\n  \"color\": \"blue\",\n  \"concurrentBuild\": false,\n  \"description\": \"\",\n  \"displayName\": \"example\",\n  \"displayNameOrNull\": null,\n  \"downstreamProjects\": [],\n  \"firstBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"healthReport\": [\n    {\n      \"description\": \"Build stability: No recent builds failed.\",\n      \"iconUrl\": \"health-80plus.png\",\n      \"score\": 100\n    }\n  ],\n  \"inQueue\": false,\n  \"keepDependencies\": false,\n  \"lastBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastCompletedBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastFailedBuild\": null,\n  \"lastStableBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastSuccessfulBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastUnstableBuild\": null,\n  \"lastUnsuccessfulBuild\": null,\n  \"name\": \"example\",\n  \"nextBuildNumber\": 2,\n  \"property\": [],\n  \"queueItem\": null,\n  \"scm\": {},\n  \"upstreamProjects\": [],\n  \"url\": \"http://localhost:8080/job/example/\"\n}\n```\n\n\u003ca id=\"build-log\"\u003e\u003c/a\u003e\n\n### jenkins.build.log(options)\n\nGet build log.\n\nOptions\n\n- name (String): job name\n- number (Integer): build number\n- start (Integer, optional): start offset\n- type (String, enum: text, html, default: text): output format\n- 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)\n\nUsage\n\n```javascript\nawait jenkins.build.log(\"example\", 1);\n```\n\n\u003ca id=\"build-log-stream\"\u003e\u003c/a\u003e\n\n### jenkins.build.logStream(options)\n\nGet build log stream.\n\nOptions\n\n- name (String): job name\n- number (Integer): build number\n- type (String, enum: text, html, default: text): output format\n- delay (Integer, default: 1000): poll interval in milliseconds\n\nUsage\n\n```javascript\nconst log = jenkins.build.logStream(\"example\", 1);\n\nlog.on(\"data\", (text) =\u003e {\n  process.stdout.write(text);\n});\n\nlog.on(\"error\", (err) =\u003e {\n  console.log(\"error\", err);\n});\n\nlog.on(\"end\", () =\u003e {\n  console.log(\"end\");\n});\n```\n\n\u003ca id=\"build-stop\"\u003e\u003c/a\u003e\n\n### jenkins.build.stop(options)\n\nStop build.\n\nOptions\n\n- name (String): job name\n- number (Integer): build number\n\nUsage\n\n```javascript\nawait jenkins.build.stop(\"example\", 1);\n```\n\n\u003ca id=\"build-term\"\u003e\u003c/a\u003e\n\n### jenkins.build.term(options)\n\nTerminates build.\n\nOptions\n\n- name (String): job name\n- number (Integer): build number\n\nUsage\n\n```javascript\nawait jenkins.build.term(\"example\", 1);\n```\n\n\u003ca id=\"credentials-create\"\u003e\u003c/a\u003e\n\n### jenkins.credentials.create(options)\n\nCreate credentials in a folder or system.\n\nOptions\n\n- folder (String): path of the folder or `manage` for **system** credentials\n- store (String): the credentials store, can be either `folder` or `system`\n- domain (String): the credentials domain\n- xml (String): configuration XML\n\nUsage\n\n```javascript\nawait jenkins.credentials.create(\"folder\", \"store\", \"domain\", \"xml\");\n```\n\n\u003ca id=\"credentials-exists\"\u003e\u003c/a\u003e\n\n### jenkins.credentials.exists(options)\n\nCheck if credentials exist in a folder or system.\n\nOptions\n\n- id (String): the id of the credentials\n- folder (String): path of the folder or `manage` for **system** credentials\n- store (String): the credentials store, can be either `folder` or `system`\n- domain (String): the credentials domain\n\nUsage\n\n```javascript\nawait jenkins.credentials.exists(\"id\", \"folder\", \"store\", \"domain\");\n```\n\n\u003ca id=\"credentials-get-config\"\u003e\u003c/a\u003e\n\n### jenkins.credentials.config(options)\n\nGet XML configuration of credentials.\n\nOptions\n\n- id (String): the id of the credentials\n- folder (String): path of the folder or `manage` for **system** credentials\n- store (String): the credentials store, can be either `folder` or `system`\n- domain (String): the credentials domain\n\nUsage\n\n```javascript\nawait jenkins.credentials.config(\"id\", \"folder\", \"store\", \"domain\");\n```\n\n\u003ca id=\"credentials-set-config\"\u003e\u003c/a\u003e\n\n### jenkins.credentials.config(options)\n\nUpdate credentials.\n\nOptions\n\n- id (String): the id of the credential\n- folder (String): path of the folder or `manage` for **system** credentials\n- store (String): the credentials store, can be either `folder` or `system`\n- domain (String): the credentials domain\n- xml (String): configuration XML\n\nUsage\n\n```javascript\nawait jenkins.credentials.update(\"id\", \"folder\", \"store\", \"domain\", \"xml\");\n```\n\n\u003ca id=\"credentials-destroy\"\u003e\u003c/a\u003e\n\n### jenkins.credentials.destroy(options)\n\nDelete credentials from folder or system.\n\nOptions\n\n- id (String): the id of the credential\n- folder (String): path of the folder or `manage` for **system** credentials\n- store (String): the credentials store, can be either `folder` or `system`\n- domain (String): the credentials domain\n\nUsage\n\n```javascript\nawait jenkins.credentials.destroy(\"id\", \"folder\", \"store\", \"domain\");\n```\n\n\u003ca id=\"credentials-list\"\u003e\u003c/a\u003e\n\n### jenkins.credentials.list(options)\n\nGet a list of credentials in a folder or system.\n\nOptions\n\n- folder (String): path of the folder or `manage` for **system** credentials\n- store (String): the credentials store, can be either `folder` or `system`\n- domain (String): the credentials domain\n\nUsage\n\n```javascript\nawait jenkins.credentials.list(\"folder\", \"store\", \"domain\");\n```\n\n\u003ca id=\"job-build\"\u003e\u003c/a\u003e\n\n### jenkins.job.build(options)\n\nTrigger build.\n\nOptions\n\n- name (String): job name\n- parameters (Object, optional): build parameters\n- token (String, optional): authorization token\n\nUsage\n\n```javascript\nawait jenkins.job.build(\"example\");\n```\n\n```javascript\nawait jenkins.job.build({\n  name: \"example\",\n  parameters: { name: \"value\" },\n});\n```\n\n```javascript\nawait jenkins.job.build({\n  name: \"example\",\n  parameters: { file: fs.createReadStream(\"test.txt\") },\n});\n```\n\n\u003ca id=\"job-config-get\"\u003e\u003c/a\u003e\n\n### jenkins.job.config(options)\n\nGet job XML configuration.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.job.config(\"example\");\n```\n\n\u003ca id=\"job-config-set\"\u003e\u003c/a\u003e\n\n### jenkins.job.config(options)\n\nUpdate job XML configuration.\n\nOptions\n\n- name (String): job name\n- xml (String): configuration XML\n\nUsage\n\n```javascript\nawait jenkins.job.config(\"example\", xml);\n```\n\n\u003ca id=\"job-config-copy\"\u003e\u003c/a\u003e\n\n### jenkins.job.copy(options)\n\nCreate job by copying existing job.\n\nOptions\n\n- name (String): new job name\n- from (String): source job name\n\nUsage\n\n```javascript\nawait jenkins.job.copy(\"fromJob\", \"example\");\n```\n\n\u003ca id=\"job-create\"\u003e\u003c/a\u003e\n\n### jenkins.job.create(options)\n\nCreate job from scratch.\n\nOptions\n\n- name (String): job name\n- xml (String): configuration XML\n\nUsage\n\n```javascript\nawait jenkins.job.create(\"example\", xml);\n```\n\n\u003ca id=\"job-destroy\"\u003e\u003c/a\u003e\n\n### jenkins.job.destroy(options)\n\nDelete job.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.job.destroy(\"example\");\n```\n\n\u003ca id=\"job-disable\"\u003e\u003c/a\u003e\n\n### jenkins.job.disable(options)\n\nDisable job.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.job.disable(\"example\");\n```\n\n\u003ca id=\"job-enable\"\u003e\u003c/a\u003e\n\n### jenkins.job.enable(options)\n\nEnable job.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.job.enable(\"example\");\n```\n\n\u003ca id=\"job-exists\"\u003e\u003c/a\u003e\n\n### jenkins.job.exists(options)\n\nCheck job exists.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.job.exists(\"example\");\n```\n\n\u003ca id=\"job-get\"\u003e\u003c/a\u003e\n\n### jenkins.job.get(options)\n\nGet job information.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.job.get(\"example\");\n```\n\nResult\n\n```json\n{\n  \"actions\": [],\n  \"buildable\": true,\n  \"builds\": [\n    {\n      \"number\": 1,\n      \"url\": \"http://localhost:8080/job/example/1/\"\n    }\n  ],\n  \"color\": \"blue\",\n  \"concurrentBuild\": false,\n  \"description\": \"\",\n  \"displayName\": \"example\",\n  \"displayNameOrNull\": null,\n  \"downstreamProjects\": [],\n  \"firstBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"healthReport\": [\n    {\n      \"description\": \"Build stability: No recent builds failed.\",\n      \"iconUrl\": \"health-80plus.png\",\n      \"score\": 100\n    }\n  ],\n  \"inQueue\": false,\n  \"keepDependencies\": false,\n  \"lastBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastCompletedBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastFailedBuild\": null,\n  \"lastStableBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastSuccessfulBuild\": {\n    \"number\": 1,\n    \"url\": \"http://localhost:8080/job/example/1/\"\n  },\n  \"lastUnstableBuild\": null,\n  \"lastUnsuccessfulBuild\": null,\n  \"name\": \"example\",\n  \"nextBuildNumber\": 2,\n  \"property\": [],\n  \"queueItem\": null,\n  \"scm\": {},\n  \"upstreamProjects\": [],\n  \"url\": \"http://localhost:8080/job/example/\"\n}\n```\n\n\u003ca id=\"job-list\"\u003e\u003c/a\u003e\n\n### jenkins.job.list(callback)\n\nList jobs.\n\nOptions\n\n- name (String, optional): folder name\n\nUsage\n\n```javascript\nawait jenkins.job.list();\n```\n\nResult\n\n```json\n[\n  {\n    \"color\": \"blue\",\n    \"name\": \"example\",\n    \"url\": \"http://localhost:8080/job/example/\"\n  }\n]\n```\n\n\u003ca id=\"label-get\"\u003e\u003c/a\u003e\n\n### jenkins.label.get(options)\n\nGet label information.\n\nOptions\n\n- name (String): label name\n\nUsage\n\n```javascript\nawait jenkins.label.get(\"master\");\n```\n\nResult\n\n```json\n{\n  \"_class\": \"hudson.model.labels.LabelAtom\",\n  \"actions\": [],\n  \"busyExecutors\": 0,\n  \"clouds\": [],\n  \"description\": null,\n  \"idleExecutors\": 2,\n  \"loadStatistics\": {\n    \"_class\": \"hudson.model.Label$1\"\n  },\n  \"name\": \"master\",\n  \"nodes\": [\n    {\n      \"_class\": \"hudson.model.Hudson\",\n      \"nodeName\": \"\"\n    }\n  ],\n  \"offline\": false,\n  \"tiedJobs\": [],\n  \"totalExecutors\": 2,\n  \"propertiesList\": []\n}\n```\n\n\u003ca id=\"node-config-get\"\u003e\u003c/a\u003e\n\n### jenkins.node.config(options)\n\nGet node XML configuration.\n\nOptions\n\n- name (String): node name\n\nUsage\n\n```javascript\nawait jenkins.node.config(\"example\");\n```\n\n\u003ca id=\"node-create\"\u003e\u003c/a\u003e\n\n### jenkins.node.create(options)\n\nCreate node.\n\nOptions\n\n- name (String): node name\n\nUsage\n\n```javascript\nawait jenkins.node.create(\"node-name\");\n```\n\n\u003ca id=\"node-destroy\"\u003e\u003c/a\u003e\n\n### jenkins.node.destroy(options)\n\nDelete node.\n\nOptions\n\n- name (String): node name\n\nUsage\n\n```javascript\nawait jenkins.node.destroy(\"node-name\");\n```\n\n\u003ca id=\"node-disconnect\"\u003e\u003c/a\u003e\n\n### jenkins.node.disconnect(options)\n\nDisconnect node.\n\nOptions\n\n- name (String): node name\n- message (String, optional): reason for being disconnected\n\nUsage\n\n```javascript\nawait jenkins.node.disconnect(\"node-name\", \"no longer used\");\n```\n\n\u003ca id=\"node-disable\"\u003e\u003c/a\u003e\n\n### jenkins.node.disable(options)\n\nDisable node.\n\nOptions\n\n- name (String): node name\n- message (String, optional): reason for being disabled\n\nUsage\n\n```javascript\nawait jenkins.node.disable(\"node-name\", \"network failure\");\n```\n\n\u003ca id=\"node-enable\"\u003e\u003c/a\u003e\n\n### jenkins.node.enable(options)\n\nEnable node.\n\nOptions\n\n- name (String): node name\n\nUsage\n\n```javascript\nawait jenkins.node.enable(\"node-name\");\n```\n\n\u003ca id=\"node-exists\"\u003e\u003c/a\u003e\n\n### jenkins.node.exists(options)\n\nCheck node exists.\n\nOptions\n\n- name (String): node name\n\nUsage\n\n```javascript\nawait jenkins.node.exists(\"node-name\");\n```\n\n\u003ca id=\"node-get\"\u003e\u003c/a\u003e\n\n### jenkins.node.get(options)\n\nGet node information.\n\nOptions\n\n- name (String): node name\n\nUsage\n\n```javascript\nawait jenkins.node.get(\"node-name\");\n```\n\nResult\n\n```json\n{\n  \"actions\": [],\n  \"displayName\": \"node-name\",\n  \"executors\": [{}, {}],\n  \"icon\": \"computer-x.png\",\n  \"idle\": true,\n  \"jnlpAgent\": true,\n  \"launchSupported\": false,\n  \"loadStatistics\": {},\n  \"manualLaunchAllowed\": true,\n  \"monitorData\": {\n    \"hudson.node_monitors.ArchitectureMonitor\": null,\n    \"hudson.node_monitors.ClockMonitor\": null,\n    \"hudson.node_monitors.DiskSpaceMonitor\": null,\n    \"hudson.node_monitors.ResponseTimeMonitor\": {\n      \"average\": 5000\n    },\n    \"hudson.node_monitors.SwapSpaceMonitor\": null,\n    \"hudson.node_monitors.TemporarySpaceMonitor\": null\n  },\n  \"numExecutors\": 2,\n  \"offline\": true,\n  \"offlineCause\": null,\n  \"offlineCauseReason\": \"\",\n  \"oneOffExecutors\": [],\n  \"temporarilyOffline\": false\n}\n```\n\n\u003ca id=\"node-list\"\u003e\u003c/a\u003e\n\n### jenkins.node.list(callback)\n\nList all nodes.\n\nOptions\n\n- full (Boolean, default: false): include executor count in response\n\nUsage\n\n```javascript\nawait jenkins.node.list();\n```\n\nResult\n\n```json\n{\n  \"busyExecutors\": 0,\n  \"computer\": [\n    {\n      \"actions\": [],\n      \"displayName\": \"master\",\n      \"executors\": [{}, {}],\n      \"icon\": \"computer.png\",\n      \"idle\": true,\n      \"jnlpAgent\": false,\n      \"launchSupported\": true,\n      \"loadStatistics\": {},\n      \"manualLaunchAllowed\": true,\n      \"monitorData\": {\n        \"hudson.node_monitors.ArchitectureMonitor\": \"Linux (amd64)\",\n        \"hudson.node_monitors.ClockMonitor\": {\n          \"diff\": 0\n        },\n        \"hudson.node_monitors.DiskSpaceMonitor\": {\n          \"path\": \"/var/lib/jenkins\",\n          \"size\": 77620142080\n        },\n        \"hudson.node_monitors.ResponseTimeMonitor\": {\n          \"average\": 0\n        },\n        \"hudson.node_monitors.SwapSpaceMonitor\": {\n          \"availablePhysicalMemory\": 22761472,\n          \"availableSwapSpace\": 794497024,\n          \"totalPhysicalMemory\": 515358720,\n          \"totalSwapSpace\": 805302272\n        },\n        \"hudson.node_monitors.TemporarySpaceMonitor\": {\n          \"path\": \"/tmp\",\n          \"size\": 77620142080\n        }\n      },\n      \"numExecutors\": 2,\n      \"offline\": false,\n      \"offlineCause\": null,\n      \"offlineCauseReason\": \"\",\n      \"oneOffExecutors\": [],\n      \"temporarilyOffline\": false\n    },\n    {\n      \"actions\": [],\n      \"displayName\": \"node-name\",\n      \"executors\": [{}, {}],\n      \"icon\": \"computer-x.png\",\n      \"idle\": true,\n      \"jnlpAgent\": true,\n      \"launchSupported\": false,\n      \"loadStatistics\": {},\n      \"manualLaunchAllowed\": true,\n      \"monitorData\": {\n        \"hudson.node_monitors.ArchitectureMonitor\": null,\n        \"hudson.node_monitors.ClockMonitor\": null,\n        \"hudson.node_monitors.DiskSpaceMonitor\": null,\n        \"hudson.node_monitors.ResponseTimeMonitor\": {\n          \"average\": 5000\n        },\n        \"hudson.node_monitors.SwapSpaceMonitor\": null,\n        \"hudson.node_monitors.TemporarySpaceMonitor\": null\n      },\n      \"numExecutors\": 2,\n      \"offline\": true,\n      \"offlineCause\": null,\n      \"offlineCauseReason\": \"\",\n      \"oneOffExecutors\": [],\n      \"temporarilyOffline\": false\n    }\n  ],\n  \"displayName\": \"nodes\",\n  \"totalExecutors\": 2\n}\n```\n\n\u003ca id=\"plugin-list\"\u003e\u003c/a\u003e\n\n### jenkins.plugin.list(callback)\n\nList plugins (note: depth defaults to 1).\n\nUsage\n\n```javascript\nawait jenkins.plugin.list();\n```\n\nResult\n\n```json\n[\n  {\n    \"active\": true,\n    \"backupVersion\": null,\n    \"bundled\": false,\n    \"deleted\": false,\n    \"dependencies\": [{}, {}, {}, {}, {}, {}, {}, {}],\n    \"downgradable\": false,\n    \"enabled\": true,\n    \"hasUpdate\": false,\n    \"longName\": \"Email Extension Plugin\",\n    \"pinned\": false,\n    \"shortName\": \"email-ext\",\n    \"supportsDynamicLoad\": \"MAYBE\",\n    \"url\": \"http://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin\",\n    \"version\": \"2.53\"\n  }\n]\n```\n\n\u003ca id=\"queue-list\"\u003e\u003c/a\u003e\n\n### jenkins.queue.list(callback)\n\nList queues.\n\nUsage\n\n```javascript\nawait jenkins.queue.list();\n```\n\nResult\n\n```json\n{\n  \"items\": [\n    {\n      \"actions\": [\n        {\n          \"causes\": [\n            {\n              \"shortDescription\": \"Started by user anonymous\",\n              \"userId\": null,\n              \"userName\": \"anonymous\"\n            }\n          ]\n        }\n      ],\n      \"blocked\": true,\n      \"buildable\": false,\n      \"buildableStartMilliseconds\": 1389418977387,\n      \"id\": 20,\n      \"inQueueSince\": 1389418977358,\n      \"params\": \"\",\n      \"stuck\": false,\n      \"task\": {\n        \"color\": \"blue_anime\",\n        \"name\": \"example\",\n        \"url\": \"http://localhost:8080/job/example/\"\n      },\n      \"url\": \"queue/item/20/\",\n      \"why\": \"Build #2 is already in progress (ETA:N/A)\"\n    }\n  ]\n}\n```\n\n\u003ca id=\"queue-item\"\u003e\u003c/a\u003e\n\n### jenkins.queue.item(options)\n\nLookup a queue item.\n\nOptions\n\n- number (Integer): queue item number\n\nUsage\n\n```javascript\nawait jenkins.queue.item(130);\n```\n\nResult\n\n```json\n{\n  \"actions\": [\n    {\n      \"causes\": [\n        {\n          \"shortDescription\": \"Started by user anonymous\",\n          \"userId\": null,\n          \"userName\": \"anonymous\"\n        }\n      ]\n    }\n  ],\n  \"blocked\": false,\n  \"buildable\": false,\n  \"id\": 130,\n  \"inQueueSince\": 1406363479853,\n  \"params\": \"\",\n  \"stuck\": false,\n  \"task\": {\n    \"name\": \"test-job-b7ef0845-6515-444c-96a1-d2266d5e0f18\",\n    \"url\": \"http://localhost:8080/job/test-job-b7ef0845-6515-444c-96a1-d2266d5e0f18/\",\n    \"color\": \"blue\"\n  },\n  \"url\": \"queue/item/130/\",\n  \"why\": null,\n  \"executable\": {\n    \"number\": 28,\n    \"url\": \"http://localhost:8080/job/test-job-b7ef0845-6515-444c-96a1-d2266d5e0f18/28/\"\n  }\n}\n```\n\n\u003ca id=\"queue-cancel\"\u003e\u003c/a\u003e\n\n### jenkins.queue.cancel(options)\n\nCancel build in queue.\n\nOptions\n\n- number (Integer): queue item id\n\nUsage\n\n```javascript\nawait jenkins.queue.cancel(23);\n```\n\n\u003ca id=\"view-config-get\"\u003e\u003c/a\u003e\n\n### jenkins.view.config(options)\n\nGet view XML configuration.\n\nOptions\n\n- name (String): job name\n\nUsage\n\n```javascript\nawait jenkins.view.config(\"example\");\n```\n\n\u003ca id=\"view-config-set\"\u003e\u003c/a\u003e\n\n### jenkins.view.config(options)\n\nUpdate view XML configuration.\n\nOptions\n\n- name (String): job name\n- xml (String): configuration XML\n\nUsage\n\n```javascript\nawait jenkins.view.config(\"example\", xml);\n```\n\n\u003ca id=\"view-create\"\u003e\u003c/a\u003e\n\n### jenkins.view.create(options)\n\nCreate view.\n\nOptions\n\n- name (String): view name\n- type (String, enum: list, my): view type\n\nUsage\n\n```javascript\nawait jenkins.view.create(\"example\", \"list\");\n```\n\n\u003ca id=\"view-destroy\"\u003e\u003c/a\u003e\n\n### jenkins.view.destroy(options)\n\nDelete view.\n\nOptions\n\n- name (String): view name\n\nUsage\n\n```javascript\nawait jenkins.view.destroy(\"example\");\n```\n\n\u003ca id=\"view-exists\"\u003e\u003c/a\u003e\n\n### jenkins.view.exists(options)\n\nCheck view exists.\n\nOptions\n\n- name (String): view name\n\nUsage\n\n```javascript\nawait jenkins.view.exists(\"example\");\n```\n\n\u003ca id=\"view-get\"\u003e\u003c/a\u003e\n\n### jenkins.view.get(options)\n\nGet view information.\n\nOptions\n\n- name (String): view name\n\nUsage\n\n```javascript\nawait jenkins.view.get(\"example\");\n```\n\nResult\n\n```json\n{\n  \"description\": null,\n  \"jobs\": [\n    {\n      \"name\": \"test\",\n      \"url\": \"http://localhost:8080/job/example/\",\n      \"color\": \"blue\"\n    }\n  ],\n  \"name\": \"example\",\n  \"property\": [],\n  \"url\": \"http://localhost:8080/view/example/\"\n}\n```\n\n\u003ca id=\"view-list\"\u003e\u003c/a\u003e\n\n### jenkins.view.list(callback)\n\nList all views.\n\nUsage\n\n```javascript\nawait jenkins.view.list();\n```\n\nResult\n\n```json\n{\n  \"views\": [\n    {\n      \"url\": \"http://localhost:8080/\",\n      \"name\": \"All\"\n    },\n    {\n      \"url\": \"http://localhost:8080/view/example/\",\n      \"name\": \"Test\"\n    }\n  ],\n  \"useSecurity\": false,\n  \"useCrumbs\": false,\n  \"unlabeledLoad\": {},\n  \"slaveAgentPort\": 0,\n  \"quietingDown\": false,\n  \"primaryView\": {\n    \"url\": \"http://localhost:8080/\",\n    \"name\": \"All\"\n  },\n  \"assignedLabels\": [{}],\n  \"mode\": \"NORMAL\",\n  \"nodeDescription\": \"the master Jenkins node\",\n  \"nodeName\": \"\",\n  \"numExecutors\": 2,\n  \"description\": null,\n  \"jobs\": [\n    {\n      \"color\": \"notbuilt\",\n      \"url\": \"http://localhost:8080/job/example/\",\n      \"name\": \"test\"\n    }\n  ],\n  \"overallLoad\": {}\n}\n```\n\n\u003ca id=\"view-add\"\u003e\u003c/a\u003e\n\n### jenkins.view.add(options)\n\nAdd job to view.\n\nOptions\n\n- name (String): view name\n- job (String): job name\n\nUsage\n\n```javascript\nawait jenkins.view.add(\"example\", \"jobExample\");\n```\n\n\u003ca id=\"view-remove\"\u003e\u003c/a\u003e\n\n### jenkins.view.remove(options)\n\nRemove job from view.\n\nOptions\n\n- name (String): view name\n- job (String): job name\n\nUsage\n\n```javascript\nawait jenkins.view.remove(\"example\", \"jobExample\");\n```\n\n## Test\n\nRun unit tests\n\n```sh\n$ npm test\n```\n\nRun acceptance tests\n\n```sh\n$ docker compose -f test/compose.yml up -d --build\n$ npm run acceptance\n$ docker compose -f test/compose.yml down\n```\n\n## License\n\nThis work is licensed under the MIT License (see the LICENSE file).\n\n## Notes\n\n[python-jenkins](https://github.com/openstack/python-jenkins) (BSD License, see NOTES)\nwas used as a reference when implementing this client and its\ncreate/reconfigure job XML was used in the tests.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilas%2Fnode-jenkins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilas%2Fnode-jenkins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilas%2Fnode-jenkins/lists"}