/** * Main Cloud Build Plugin class. * * Extends AbstractCICDPlugin to provide the standard CICDPipeline interface * while also exposing Cloud Build-specific functionality. * * Aggregates all operations into a unified plugin interface: * - Build operations (via CICDPipeline interface) * - Log streaming * - Artifact access * - Trigger management */ import { type Logger } from 'pino'; import type { Pipeline, PipelineRun, TriggerOptions } from '@generacy-ai/latency'; import { AbstractCICDPlugin } from '@generacy-ai/latency-plugin-ci-cd'; import type { Build, BuildConfig, BuildFilter, BuildSource, PaginatedResult } from './types/builds.js'; import type { BuildTrigger, TriggerConfig } from './types/triggers.js'; import type { Artifact } from './types/artifacts.js'; import type { LogEntry } from './types/logs.js'; import type { LogStreamOptions } from './streaming/types.js'; import type { CloudBuildConfigInput } from './config/types.js'; export interface CloudBuildPluginOptions { logger?: Logger; } export interface CloudBuildPluginInterface { triggerBuild(triggerId: string, source?: BuildSource): Promise; runBuild(config: BuildConfig): Promise; getBuild(buildId: string): Promise; listBuilds(filter?: BuildFilter): Promise>; cancelBuild(buildId: string): Promise; retryBuild(buildId: string): Promise; streamLogs(buildId: string, options?: LogStreamOptions): AsyncIterable; listArtifacts(buildId: string): Promise; getArtifact(buildId: string, path: string): Promise; getArtifactStream(buildId: string, path: string): Promise; listTriggers(): Promise; createTrigger(config: TriggerConfig): Promise; updateTrigger(triggerId: string, config: Partial): Promise; deleteTrigger(triggerId: string): Promise; } /** * Google Cloud Build Plugin for Generacy. * * Extends AbstractCICDPlugin to provide the standard CICDPipeline interface * (triggerPipeline, getPipelineStatus, cancelPipeline, listPipelines) while * also exposing Cloud Build-specific operations like log streaming, artifact * access, and trigger management. */ export declare class CloudBuildPlugin extends AbstractCICDPlugin implements CloudBuildPluginInterface { private readonly config; private readonly logger; private readonly buildOps; private readonly logOps; private readonly artifactOps; private readonly triggerOps; constructor(configInput: CloudBuildConfigInput, options?: CloudBuildPluginOptions); /** * Trigger a pipeline run (implements abstract method). * * Maps to Cloud Build's trigger mechanism. */ protected doTrigger(pipelineId: string, options?: TriggerOptions): Promise; /** * Get pipeline run status (implements abstract method). * * Maps to Cloud Build's getBuild. */ protected doGetStatus(runId: string): Promise; /** * Cancel a pipeline run (implements abstract method). * * Maps to Cloud Build's cancelBuild. */ protected doCancel(runId: string): Promise; /** * List available pipelines (implements abstract method). * * Maps to Cloud Build's listTriggers. */ protected doListPipelines(): Promise; /** * Trigger a build from an existing trigger. */ triggerBuild(triggerId: string, source?: BuildSource): Promise; /** * Run a build from inline configuration. */ runBuild(config: BuildConfig): Promise; /** * Get a single build by ID. */ getBuild(buildId: string): Promise; /** * List builds with optional filtering. */ listBuilds(filter?: BuildFilter): Promise>; /** * Cancel a running build. */ cancelBuild(buildId: string): Promise; /** * Retry a failed build. */ retryBuild(buildId: string): Promise; /** * Stream logs from a build as an AsyncIterable. */ streamLogs(buildId: string, options?: LogStreamOptions): AsyncIterable; /** * List artifacts for a build. */ listArtifacts(buildId: string): Promise; /** * Download an artifact as a Buffer. * Throws if artifact exceeds 100MB. */ getArtifact(buildId: string, path: string): Promise; /** * Download an artifact as a ReadableStream. * Use for large files that exceed the 100MB Buffer limit. */ getArtifactStream(buildId: string, path: string): Promise; /** * List all build triggers. */ listTriggers(): Promise; /** * Create a new build trigger. */ createTrigger(config: TriggerConfig): Promise; /** * Update an existing build trigger. */ updateTrigger(triggerId: string, config: Partial): Promise; /** * Delete a build trigger. */ deleteTrigger(triggerId: string): Promise; /** * Create a logger with secret redaction. */ private createLogger; /** * Map a Cloud Build Build to a Latency PipelineRun. */ private mapBuildToPipelineRun; /** * Map a Cloud Build status to a Latency PipelineStatus. */ private mapBuildStatus; /** * Map a Cloud Build Trigger to a Latency Pipeline. */ private mapTriggerToPipeline; } //# sourceMappingURL=plugin.d.ts.map