Files
stack/apps/api/src/quality-gate-config/quality-gate-config.module.ts
Jason Woltje 4a2909ce1e feat(#135): implement Quality Gate Configuration System
Add database-backed quality gate configuration for workspaces with
full CRUD operations and default gate seeding.

Schema:
- Add QualityGate model with workspace relation
- Support for custom commands and regex patterns
- Enable/disable and ordering support

Service:
- CRUD operations for quality gates
- findEnabled: Get ordered, enabled gates
- reorder: Bulk reorder with transaction
- seedDefaults: Seed 4 default gates
- toOrchestratorFormat: Convert to orchestrator interface

Endpoints:
- GET /workspaces/:id/quality-gates - List
- GET /workspaces/:id/quality-gates/:gateId - Get one
- POST /workspaces/:id/quality-gates - Create
- PATCH /workspaces/:id/quality-gates/:gateId - Update
- DELETE /workspaces/:id/quality-gates/:gateId - Delete
- POST /workspaces/:id/quality-gates/reorder
- POST /workspaces/:id/quality-gates/seed-defaults

Default gates: Build, Lint, Test, Coverage (85%)

Tests: 25 passing with 95.16% coverage

Fixes #135

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:33:04 -06:00

16 lines
517 B
TypeScript

import { Module } from "@nestjs/common";
import { QualityGateConfigController } from "./quality-gate-config.controller";
import { QualityGateConfigService } from "./quality-gate-config.service";
import { PrismaModule } from "../prisma/prisma.module";
/**
* Module for managing quality gate configurations
*/
@Module({
imports: [PrismaModule],
controllers: [QualityGateConfigController],
providers: [QualityGateConfigService],
exports: [QualityGateConfigService],
})
export class QualityGateConfigModule {}