Publish Image / publish (push) Successful in 36s
Replace the volatile in-memory Map/Set queue with BullMQ backed by Redis for persistence across restarts, automatic retry with exponential backoff, and non-blocking workspace cleanup. - Two queues: workspace-create (concurrency-limited) and workspace-cleanup (with polling instead of sleep-based stop→delete) - Active workspaces tracked in Redis hash for dedup across restarts - Stale sweep every 10 minutes catches orphaned workspaces - Graceful shutdown on SIGTERM/SIGINT - Replace node-cron with BullMQ repeatable jobs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
28 lines
674 B
JSON
28 lines
674 B
JSON
{
|
|
"name": "sdlc-orchestrator",
|
|
"version": "1.0.0",
|
|
"description": "Webhook-driven SDLC orchestrator for Gitea + Coder + Claude Code",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "tsx watch src/index.ts",
|
|
"build": "tsc",
|
|
"start": "node dist/index.js",
|
|
"lint": "eslint src/",
|
|
"format": "prettier --write src/",
|
|
"format:check": "prettier --check src/"
|
|
},
|
|
"dependencies": {
|
|
"@hono/node-server": "^1.13.8",
|
|
"bullmq": "^5.34.8",
|
|
"hono": "^4.7.6",
|
|
"ioredis": "^5.6.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.15.3",
|
|
"tsx": "^4.19.4",
|
|
"typescript": "^5.8.3",
|
|
"eslint": "^9.25.1",
|
|
"prettier": "^3.5.3"
|
|
}
|
|
}
|