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