pipelines

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 13, 2026 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package pipelines provides services for triggering CI/CD pipelines across different git providers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MultiProviderPipelineService

type MultiProviderPipelineService struct {
	// contains filtered or unexported fields
}

func NewMultiProviderPipelineService

func NewMultiProviderPipelineService() *MultiProviderPipelineService

func (*MultiProviderPipelineService) GetCache added in v0.3.0

func (*MultiProviderPipelineService) GetJobTrace added in v0.6.0

func (m *MultiProviderPipelineService) GetJobTrace(
	ctx context.Context,
	project string,
	jobID int,
	settings krci.GitServerSettings,
) (string, bool, error)

GetJobTrace serves a job's trace; only complete traces within cache.MaxCacheableTraceBytes are cached (truncated or oversized traces bypass the cache).

func (*MultiProviderPipelineService) GetJobsCache added in v0.6.0

func (*MultiProviderPipelineService) GetTraceCache added in v0.6.0

func (*MultiProviderPipelineService) ListPipelineJobs added in v0.6.0

func (m *MultiProviderPipelineService) ListPipelineJobs(
	ctx context.Context,
	project string,
	pipelineID int,
	settings krci.GitServerSettings,
) ([]models.PipelineJob, error)

ListPipelineJobs serves a pipeline's jobs from a short-TTL cache (GetOrFetch de-duplicates concurrent misses) and records finished jobs so GetJobTrace can long-cache their traces.

func (*MultiProviderPipelineService) ListPipelines added in v0.3.0

func (*MultiProviderPipelineService) TriggerPipeline

func (m *MultiProviderPipelineService) TriggerPipeline(
	ctx context.Context,
	project string,
	ref string,
	variables []models.PipelineVariable,
	settings krci.GitServerSettings,
) (*models.PipelineResponse, error)

type PipelineJobsProvider added in v0.6.0

type PipelineJobsProvider interface {
	ListPipelineJobs(
		ctx context.Context,
		project string,
		pipelineID int,
		settings krci.GitServerSettings,
	) ([]models.PipelineJob, error)

	GetJobTrace(
		ctx context.Context,
		project string,
		jobID int,
		settings krci.GitServerSettings,
	) (content string, truncated bool, err error)
}

PipelineJobsProvider is an optional capability; providers that don't implement it make the dispatch below return a bad-request error.

type PipelineProvider

type PipelineProvider interface {
	TriggerPipeline(
		ctx context.Context,
		project string,
		ref string,
		variables []models.PipelineVariable,
		settings krci.GitServerSettings,
	) (*models.PipelineResponse, error)

	ListPipelines(
		ctx context.Context,
		project string,
		settings krci.GitServerSettings,
		opts models.PipelineListOptions,
	) (*models.PipelinesResponse, error)
}

type PipelinesService

type PipelinesService struct {
	// contains filtered or unexported fields
}

PipelinesService handles pipeline operations by coordinating between git server settings and provider-specific implementations.

func NewPipelinesService

func NewPipelinesService(
	pipelinesProvider *MultiProviderPipelineService,
	gitServerService *krci.GitServerService,
) *PipelinesService

NewPipelinesService creates a new PipelinesService.

func (*PipelinesService) GetJobTrace added in v0.6.0

func (s *PipelinesService) GetJobTrace(
	ctx context.Context,
	gitServerName string,
	project string,
	jobID int,
) (string, bool, error)

GetJobTrace returns the raw trace (log) of a CI/CD job for the specified git server and project.

func (*PipelinesService) GetProvider added in v0.3.0

GetProvider returns the underlying multi-provider service for direct access to its cache.

func (*PipelinesService) ListPipelineJobs added in v0.6.0

func (s *PipelinesService) ListPipelineJobs(
	ctx context.Context,
	gitServerName string,
	project string,
	pipelineID int,
) ([]models.PipelineJob, error)

ListPipelineJobs lists the jobs of a CI/CD pipeline for the specified git server and project.

func (*PipelinesService) ListPipelines added in v0.3.0

func (s *PipelinesService) ListPipelines(
	ctx context.Context,
	gitServerName string,
	project string,
	opts models.PipelineListOptions,
) (*models.PipelinesResponse, error)

ListPipelines lists CI/CD pipelines for the specified git server and project. It fetches git server settings from Kubernetes and delegates to the appropriate provider.

func (*PipelinesService) TriggerPipeline

func (s *PipelinesService) TriggerPipeline(
	ctx context.Context,
	gitServerName string,
	project string,
	ref string,
	variables []models.PipelineVariable,
) (*models.PipelineResponse, error)

TriggerPipeline triggers a CI/CD pipeline for the specified git server, project, and ref. It fetches git server settings from Kubernetes and delegates to the appropriate provider.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL