repositoryevents

package
v0.182.2 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package repositoryevents receives provider-owned repository events and turns them into durable local sync jobs.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CursorStore

type CursorStore struct{ Path string }

type Enqueuer

type Enqueuer interface {
	Enqueue(context.Context, repositoryevent.Event) (string, error)
}

type ProcessResult

type ProcessResult struct {
	Detail          string
	CleanupStateSet bool
	CleanupReceipt  string
	RecoveryCommand string
}

type ProcessState

type ProcessState struct {
	CleanupReceipt   string
	RecoveryCommand  string
	OnCleanupPending func(receiptPath, recoveryCommand string) error
}

type Processor

type Processor interface {
	Process(context.Context, repositoryevent.Event, ProcessState) (ProcessResult, error)
}

type Queue

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

func NewQueue

func NewQueue(projectsRoot string) (*Queue, error)

func (*Queue) Enqueue

func (queue *Queue) Enqueue(_ context.Context, event repositoryevent.Event) (string, error)

func (*Queue) Run

func (queue *Queue) Run(ctx context.Context, processor Processor, progress func(string))

type Receiver

type Receiver struct {
	Source        Source
	Queue         Enqueuer
	Cursor        CursorStore
	PollWait      time.Duration
	RetryDelay    time.Duration
	Progress      func(string)
	ProgressEvery time.Duration
}

func (Receiver) ReceiveOnce

func (receiver Receiver) ReceiveOnce(ctx context.Context, wait time.Duration) error

func (Receiver) Run

func (receiver Receiver) Run(ctx context.Context)

type Source

type Source interface {
	PollRepositoryEvents(context.Context, string, int, time.Duration) (repositoryevent.PollResponse, error)
	AckRepositoryEvents(context.Context, repositoryevent.AckRequest) (repositoryevent.AckResponse, error)
}

type SyncProcessor

type SyncProcessor struct {
	ProjectsRoot string
	// contains filtered or unexported fields
}

func (SyncProcessor) Process

func (processor SyncProcessor) Process(ctx context.Context, event repositoryevent.Event, state ProcessState) (ProcessResult, error)

Jump to

Keyboard shortcuts

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