npm.io
1.0.43 • Published 7h ago

jira-data-center-client

Licence
MIT
Version
1.0.43
Deps
2
Size
236 kB
Vulns
0
Weekly
0

Jira Data Center Client

TypeScript client for Jira Server/Data Center REST API.

Installation

npm install jira-data-center-client

Usage

import { JiraClient } from 'jira-data-center-client';

const client = new JiraClient({
  baseUrl: 'https://jira.example.com',
  token: 'your-personal-access-token',
});

// Get current user
const myself = await client.users.getMyself();

// Search issues with JQL
const result = await client.issues.search({
  jql: 'project = PROJ AND issuetype = Bug',
  maxResults: 50,
});

// Get issue details with changelog
const issue = await client.issues.get({
  issueKeyOrId: 'PROJ-123',
  expand: 'changelog',
});

// Create an issue
const created = await client.issues.create({
  fields: {
    project: { key: 'PROJ' },
    summary: 'New bug report',
    issuetype: { name: 'Bug' },
  },
});

// Update an issue
await client.issues.update({
  issueKeyOrId: 'PROJ-123',
  fields: { summary: 'Updated summary' },
});

// Transition an issue
await client.issues.transition({
  issueKeyOrId: 'PROJ-123',
  transitionId: '31',
});

// Add a comment
await client.issues.addComment({
  issueKeyOrId: 'PROJ-123',
  body: 'This is a comment',
});

// Download all attachments from an issue
await client.issues.downloadAttachment({
  url: attachment.content,
  destinationPath: '/tmp/file.pdf',
});

// Get boards and sprints
const boards = await client.agile.getBoards({ type: 'scrum' });
const sprints = await client.agile.getSprints({ boardId: boards[0].id });

// Create and manage sprints
await client.agile.createSprint({
  name: 'Sprint 1',
  originBoardId: boards[0].id,
});

// Discover custom field IDs
const severityFieldId = await client.fields.getIdByName('Severity');

// Link issues
const linkTypes = await client.links.getTypes();
await client.links.create({
  type: { name: 'Blocks' },
  inwardIssue: { key: 'PROJ-123' },
  outwardIssue: { key: 'PROJ-456' },
});

API Structure

Domain Methods
client.users getMyself, getUser, searchUsers
client.projects getAll, get, getVersions
client.issues search, searchPost, get, searchAll, count, getTransitions, getWorklogs, getChangelog, getAttachment, downloadAttachment, create, update, delete, addComment, editComment, transition, addWorklog, addAttachment
client.fields getAll, getIdByName, getById, getCustom, search, getFieldOptions
client.agile getBoards, getBoard, getSprints, getBoardIssues, getSprintIssues, createSprint, updateSprint
client.links getTypes, getType, create, remove

Authentication

Generate a Personal Access Token in Jira: Profile > Personal Access Tokens > Create token

export JIRA_URL=https://jira.example.com
export JIRA_TOKEN=your-token-here

Requirements

  • Node.js >= 22.0.0
  • Jira Server/Data Center 7.0+

API Endpoints

This client uses:

  • Jira REST API v2: /rest/api/2
  • Agile REST API: /rest/agile/1.0

Authentication: Bearer token (Personal Access Token)

License

MIT

Keywords