jira-data-center-client
v1.0.26
Published
TypeScript client library for Jira Server/Data Center REST API
Downloads
1,258
Maintainers
Readme
Jira Data Center Client
TypeScript client for Jira Server/Data Center REST API.
Installation
npm install jira-data-center-clientUsage
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_PERSONAL_TOKEN=your-token-hereRequirements
- 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
