Documentation
¶
Overview ¶
Package pipelines provides services for triggering CI/CD pipelines across different git providers.
Index ¶
- type MultiProviderPipelineService
- func (m *MultiProviderPipelineService) GetCache() *sturdyc.Client[models.PipelinesResponse]
- func (m *MultiProviderPipelineService) GetJobTrace(ctx context.Context, project string, jobID int, ...) (string, bool, error)
- func (m *MultiProviderPipelineService) GetJobsCache() *sturdyc.Client[[]models.PipelineJob]
- func (m *MultiProviderPipelineService) GetTraceCache() *cache.TerminalAwareCache[cache.JobTrace]
- func (m *MultiProviderPipelineService) ListPipelineJobs(ctx context.Context, project string, pipelineID int, ...) ([]models.PipelineJob, error)
- func (m *MultiProviderPipelineService) ListPipelines(ctx context.Context, project string, settings krci.GitServerSettings, ...) (*models.PipelinesResponse, error)
- func (m *MultiProviderPipelineService) TriggerPipeline(ctx context.Context, project string, ref string, ...) (*models.PipelineResponse, error)
- type PipelineJobsProvider
- type PipelineProvider
- type PipelinesService
- func (s *PipelinesService) GetJobTrace(ctx context.Context, gitServerName string, project string, jobID int) (string, bool, error)
- func (s *PipelinesService) GetProvider() *MultiProviderPipelineService
- func (s *PipelinesService) ListPipelineJobs(ctx context.Context, gitServerName string, project string, pipelineID int) ([]models.PipelineJob, error)
- func (s *PipelinesService) ListPipelines(ctx context.Context, gitServerName string, project string, ...) (*models.PipelinesResponse, error)
- func (s *PipelinesService) TriggerPipeline(ctx context.Context, gitServerName string, project string, ref string, ...) (*models.PipelineResponse, error)
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 (m *MultiProviderPipelineService) GetCache() *sturdyc.Client[models.PipelinesResponse]
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 (m *MultiProviderPipelineService) GetJobsCache() *sturdyc.Client[[]models.PipelineJob]
func (*MultiProviderPipelineService) GetTraceCache ¶ added in v0.6.0
func (m *MultiProviderPipelineService) GetTraceCache() *cache.TerminalAwareCache[cache.JobTrace]
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 (m *MultiProviderPipelineService) ListPipelines( ctx context.Context, project string, settings krci.GitServerSettings, opts models.PipelineListOptions, ) (*models.PipelinesResponse, error)
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
func (s *PipelinesService) GetProvider() *MultiProviderPipelineService
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.