UNPKG

@graphikartistry/cursor-doc-automation

Version:

Cursor IDE extension for autonomous documentation and ticket management

89 lines (81 loc) 2.86 kB
#!/usr/bin/env node import { Command } from 'commander'; import { DocumentationService } from './services/documentationService'; import { GitHubClient } from './github/githubClient'; import { JiraClient } from './jira/jiraClient'; import { FuelixClient } from './fuelix/fuelixClient'; import { loadConfig } from './config'; import * as fs from 'fs'; import * as path from 'path'; const program = new Command(); program .name('doc-automation') .description('CLI tool for autonomous documentation and ticket management') .version('1.0.0'); program .command('analyze') .description('Analyze a file and generate documentation') .argument('<file>', 'File to analyze') .action(async (file: string) => { try { const config = loadConfig(); const content = fs.readFileSync(file, 'utf-8'); const service = new DocumentationService( new GitHubClient(config.github.token), new JiraClient(config.jira.token), new FuelixClient() ); const analysis = await service.analyzeChanges(content); console.log('Analysis:', analysis); } catch (error: any) { console.error('Error:', error.message || 'An unknown error occurred'); process.exit(1); } }); program .command('create-pr') .description('Create a documentation PR') .argument('<file>', 'File to document') .action(async (file: string) => { try { const config = loadConfig(); const content = fs.readFileSync(file, 'utf-8'); const service = new DocumentationService( new GitHubClient(config.github.token), new JiraClient(config.jira.token), new FuelixClient() ); const analysis = await service.analyzeChanges(content); const prUrl = await service.createDocumentationPR(analysis); console.log('PR created:', prUrl); } catch (error: any) { console.error('Error:', error.message || 'An unknown error occurred'); process.exit(1); } }); interface TicketOptions { prUrl?: string; } program .command('create-ticket') .description('Create a Jira ticket') .argument('<file>', 'File to document') .option('-p, --pr-url <url>', 'Related PR URL') .action(async (file: string, options: TicketOptions) => { try { const config = loadConfig(); const content = fs.readFileSync(file, 'utf-8'); const service = new DocumentationService( new GitHubClient(config.github.token), new JiraClient(config.jira.token), new FuelixClient() ); const analysis = await service.analyzeChanges(content); await service.createJiraBacklogItem(analysis, options.prUrl); console.log('Jira ticket created successfully'); } catch (error: any) { console.error('Error:', error.message || 'An unknown error occurred'); process.exit(1); } }); program.parse();