jenkins-remote-api
v1.0.29
Published
Jenkins remote access API with typescript
Downloads
244
Readme
Description
This project provides a Jenkins remote access API client for Node.js, allowing you to interact with Jenkins servers programmatically. It includes modules for managing jobs, users, computers, credentials, and queue items within Jenkins.
Installation
$ npm install jenkins-remote-api@latest
Usage
Initialize API Client
import APIClient from 'jenkins-remote-api';
const client = new APIClient('http://jenkins-url', 'username', 'apiToken');
await client.init();
Manage Jobs
import JobAPI from 'jenkins-remote-api/src/jenkins/job';
const jobAPI = new JobAPI(client);
// List jobs
const jobs = await jobAPI.list('job-name-filter');
// Create or update a job
await jobAPI.createOrUpdate('job-name', '<configXML>');
Manage Users
import UserAPI from 'jenkins-remote-api/src/jenkins/user';
const userAPI = new UserAPI(client);
// Add a new user
await userAPI.add({ fullName: 'John Doe', password: 'password123', email: '[email protected]' });
// List users
const users = await userAPI.list('filter');
Manage Computers
import ComputerAPI from 'jenkins-remote-api/src/jenkins/computer';
const computerAPI = new ComputerAPI(client);
// List computers
const computers = await computerAPI.list();
// Add a new computer
await computerAPI.add({
name: 'new-computer',
description: 'A new Jenkins node',
executors: 2,
remote_fs: '/var/jenkins',
labels: ['linux', 'docker'],
slave_port: 22,
mode: 'NORMAL',
credentials_id: 'cred-id',
slave_host: '192.168.1.100',
slave_user: 'jenkins'
});
Manage Credentials
import CredentialsAPI from 'jenkins-remote-api/src/jenkins/credentials';
const credentialsAPI = new CredentialsAPI(client);
// Add credentials
await credentialsAPI.add({
username: 'jenkins-user',
usernameSecret: true,
password: 'secret',
id: 'cred-id',
description: 'Jenkins user credentials'
});
Manage Queue
import QueueAPI from 'jenkins-remote-api/src/jenkins/queue';
const queueAPI = new QueueAPI(client);
// Get queue item by ID
const queueItem = await queueAPI.getById(123);
For more detailed usage, refer to the test files in each module.