Skip to content

raye-deng/jenkins-remote-api

Repository files navigation

Jenkins remote access api client for node.js

NPM Version

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: 'john.doe@example.com' });

// 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.

About

Jenkins Remote Access API with typescript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published