Skip to main content

Quick Start

Install the plugin:
pnpm install @corsair-dev/jira
Add the Jira plugin to your Corsair instance:
corsair.ts
import { createCorsair } from "corsair";
import { jira } from "@corsair-dev/jira";

export const corsair = createCorsair({
    plugins: [jira()],
    database: db,
    kek: process.env.CORSAIR_KEK!,
});

Authentication

Supported Auth Types

  • api_key (default) - API token with email

API Key Setup

pnpm corsair setup --jira api_key=your-api-token
For webhook signature verification:
pnpm corsair setup --jira webhook_signature=your-webhook-secret
See Get Credentials for step-by-step instructions.

Options

OptionTypeDescription
authType'api_key'Authentication method
keystringAPI token (optional, uses database if not provided)
webhookSecretstringWebhook signing secret (optional)
hooksobjectEndpoint hooks for custom logic
webhookHooksobjectWebhook hooks for event handling
errorHandlersobjectCustom error handlers

Usage

// Search issues
const issues = await corsair.jira.api.issues.search({
    jql: "project = MYPROJ AND status = 'In Progress'",
});

// Create an issue
await corsair.jira.api.issues.create({
    fields: {
        project: { key: "MYPROJ" },
        summary: "Fix login bug",
        issuetype: { name: "Bug" },
    },
});

// Add a comment
await corsair.jira.api.comments.add({
    issueIdOrKey: "MYPROJ-123",
    body: "Investigating the issue now.",
});

// List projects
const projects = await corsair.jira.api.projects.list({});

// Get sprint issues
const sprintIssues = await corsair.jira.api.sprints.getIssues({
    sprintId: "sprint-id",
});

Query cached data

const issues = await corsair.jira.db.issues.search({
    data: { project: "MYPROJ" },
});

Multi-Tenancy

const tenant = corsair.withTenant("workspace-123");

const issues = await tenant.jira.api.issues.search({
    jql: "assignee = currentUser()",
});