@morodomi/ait3
Version:
AIT³ Development Platform - AI + Ticket + Test + Tool driven development methodology
54 lines (53 loc) • 1.84 kB
JavaScript
import { validateTicketsDirectory, readConfig, writeConfig, buildTicketNotice } from '../common/config-utils.js';
export async function setupTicketLocal(options, services, context) {
// Check if .tickets directory exists
const dirError = await validateTicketsDirectory(context.cwd);
if (dirError)
return dirError;
// Read existing configuration
const existingConfig = await readConfig(context.cwd);
if (Object.keys(existingConfig).length === 0) {
return {
success: false,
message: 'Failed to read configuration',
data: {
details: 'Configuration file may be missing or invalid'
}
};
}
// Check if already configured
if (existingConfig.backend === 'local' && !options.force) {
return {
success: true,
message: 'Already configured for local backend',
data: {
details: 'Use --force to reconfigure'
}
};
}
// Check for existing GitHub issues
let ticketNotice = '';
if (existingConfig.backend === 'github' && services.ticketService) {
try {
const tickets = await services.ticketService.listTickets();
ticketNotice = buildTicketNotice(tickets?.length || 0, 'github');
}
catch {
// Ignore errors when checking tickets
}
}
// Update configuration to local
const newConfig = {
...existingConfig,
backend: 'local'
// Preserve github config for potential switch back
};
await writeConfig(context.cwd, newConfig);
return {
success: true,
message: 'Local ticket backend configured successfully',
data: {
details: `Tickets will be stored in: .tickets/${ticketNotice}`
}
};
}