jira-extractor
v1.3.1
Published
A TypeScript library and CLI tool for extracting Jira issues using JQL queries with configurable rate limiting
Maintainers
Readme
Jira Extractor
A TypeScript library and CLI tool for extracting Jira issues using JQL queries with configurable rate limiting.
Features
- 🔍 JQL query support
- 🎨 Beautiful interactive CLI
- ⚡ Configurable rate limiting
- 📦 Memory-efficient streaming
- 🔒 Type-safe TypeScript
- 🔄 Automatic retry logic
- 📊 Real-time progress tracking
Quick Start
Installation
npm install -g jira-extractorCLI Usage
# Interactive mode
jira-extract
# Command line mode
jira-extract --url https://company.atlassian.net \
--email [email protected] \
--token YOUR_API_TOKEN \
--jql "project = PROJ AND status = Open" \
--output issues.jsonProgrammatic Usage
import { JiraClient } from 'jira-extractor';
const client = new JiraClient({
baseUrl: 'https://company.atlassian.net',
auth: {
type: 'basic',
email: '[email protected]',
apiToken: 'your_token',
},
});
// Extract all issues
const issues = await client.searchIssuesAll('project = PROJ');
// Or stream for memory efficiency
for await (const issue of client.searchIssues('project = PROJ')) {
console.log(issue.key, issue.fields.summary);
}Documentation
📚 Complete Documentation - Full documentation index
Quick Links:
- Installation Guide - Setup and configuration
- Usage Guide - Examples and common use cases
- CLI Reference - Command-line options
- API Reference - Programmatic API
- Troubleshooting - Common issues and solutions
Contributing & Security:
- Contributing Guide - How to contribute
- Security Policy - Report security issues
Key Capabilities
Extract Specific Fields
jira-extract --jql "project = PROJ" \
--fields "summary,status,assignee,created"Include Status History
jira-extract --jql "project = PROJ" \
--expand "changelog" \
--output issues-with-history.jsonCustom Rate Limiting
const client = new JiraClient({
baseUrl: 'https://company.atlassian.net',
auth: { type: 'basic', email: '...', apiToken: '...' },
rateLimiting: {
requestsPerSecond: 5,
maxConcurrent: 3,
},
});Authentication
Get your API token from Atlassian Account Security.
// Basic Auth (Recommended)
auth: {
type: 'basic',
email: '[email protected]',
apiToken: 'your_token'
}
// Bearer Token
auth: {
type: 'bearer',
token: 'your_bearer_token'
}Requirements
- Node.js >= 18.0.0
Contributing
Contributions welcome! See Contributing Guide.
This project uses conventional commits enforced by commitlint and husky hooks.
License
ISC
