Class JiraBulkApiWrapper

Wrapper for JIRA bulk issue creation API

Handles both partial success (HTTP 201) and full failure (HTTP 400) responses, normalizing them into a consistent BulkApiResult format.

Example

const wrapper = new JiraBulkApiWrapper(jiraClient);

const payloads = [
{ fields: { project: { key: 'ENG' }, issuetype: { name: 'Task' }, summary: 'Issue 1' } },
{ fields: { project: { key: 'ENG' }, issuetype: { name: 'Bug' }, summary: 'Issue 2' } }
];

const result = await wrapper.createBulk(payloads);

console.log(`Created: ${result.created.length}`);
console.log(`Failed: ${result.failed.length}`);

Constructors

Methods

Constructors

Methods

  • Create multiple issues using JIRA bulk API

    Calls POST /rest/api/2/issue/bulk with payload format: { issueUpdates: [{ fields: {...} }, ...] }

    Handles both:

    • Partial success (HTTP 201): Some issues created, some failed
    • Full failure (HTTP 400): All issues failed

    Parameters

    • payloads: BulkIssuePayload[]

      Array of issue payloads with fields

    • Optional timeoutOverride: number

    Returns Promise<BulkApiResult>

    Normalized result with created and failed issues

    Example

    const result = await wrapper.createBulk([
    { fields: { summary: 'Task 1', issuetype: { name: 'Task' } } },
    { fields: { summary: 'Task 2', issuetype: { name: 'Task' } } }
    ]);

    result.created.forEach(item => {
    console.log(`Row ${item.index}: Created ${item.key}`);
    });

    result.failed.forEach(item => {
    console.log(`Row ${item.index}: Failed with errors:`, item.errors);
    });