webhook

package
v0.10.14 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2021 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrJobNotExists = errors.New("job does not exist")
View Source
var ErrMissingJobID = errors.New("missing job ID")

Functions

func NewEIAuthorizer added in v0.10.11

func NewEIAuthorizer(db *gorm.DB, ei models.ExternalInitiator) *eiAuthorizer

func NewExternalInitiatorManager

func NewExternalInitiatorManager(db *gorm.DB, httpclient HTTPClient) *externalInitiatorManager

NewExternalInitiatorManager returns the concrete externalInitiatorManager

func ValidatedWebhookSpec

func ValidatedWebhookSpec(tomlString string, externalInitiatorManager ExternalInitiatorManager) (jb job.Job, err error)

Types

type Authorizer added in v0.10.11

type Authorizer interface {
	CanRun(ctx context.Context, config AuthorizerConfig, jobUUID uuid.UUID) (bool, error)
}

func NewAuthorizer added in v0.10.11

func NewAuthorizer(db *gorm.DB, user *models.User, ei *models.ExternalInitiator) Authorizer

type AuthorizerConfig added in v0.10.11

type AuthorizerConfig interface {
	FeatureExternalInitiators() bool
}

type Delegate

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

func NewDelegate

func NewDelegate(runner pipeline.Runner, externalInitiatorManager ExternalInitiatorManager) *Delegate

func (*Delegate) AfterJobCreated added in v0.10.11

func (d *Delegate) AfterJobCreated(jb job.Job)

func (*Delegate) BeforeJobDeleted added in v0.10.11

func (d *Delegate) BeforeJobDeleted(jb job.Job)

func (*Delegate) JobType

func (d *Delegate) JobType() job.Type

func (*Delegate) ServicesForSpec

func (d *Delegate) ServicesForSpec(spec job.Job) ([]job.Service, error)

func (*Delegate) WebhookJobRunner

func (d *Delegate) WebhookJobRunner() JobRunner

type ExternalInitiatorManager

type ExternalInitiatorManager interface {
	Notify(models.JobSpec) error
	NotifyV2(webhookSpecID int32) error
	DeleteJob(jobID models.JobID) error
	DeleteJobV2(webhookSpecID int32) error
	FindExternalInitiatorByName(name string) (models.ExternalInitiator, error)
}

ExternalInitiatorManager manages HTTP requests to remote external initiators

type HTTPClient added in v0.10.11

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

type JobRunner

type JobRunner interface {
	RunJob(ctx context.Context, jobUUID uuid.UUID, requestBody string, meta pipeline.JSONSerializable) (int64, error)
}

type JobSpecNotice

type JobSpecNotice struct {
	JobID  models.JobID `json:"jobId"`
	Type   string       `json:"type"`
	Params models.JSON  `json:"params,omitempty"`
}

JobSpecNotice is sent to the External Initiator when JobSpecs are created.

func NewJobSpecNotice

func NewJobSpecNotice(initiator models.Initiator, js models.JobSpec) (*JobSpecNotice, error)

NewJobSpecNotice returns a new JobSpec.

type JobSpecNoticeV2

type JobSpecNoticeV2 struct {
	JobID  uuid.UUID   `json:"jobId"`
	Type   string      `json:"type"`
	Params models.JSON `json:"params,omitempty"`
}

JobSpecNotice is sent to the External Initiator when JobSpecs are created.

type NullExternalInitiatorManager

type NullExternalInitiatorManager struct{}

func (NullExternalInitiatorManager) DeleteJob

func (NullExternalInitiatorManager) DeleteJobV2

func (NullExternalInitiatorManager) FindExternalInitiatorByName

func (NullExternalInitiatorManager) FindExternalInitiatorByName(name string) (models.ExternalInitiator, error)

func (NullExternalInitiatorManager) Notify

func (NullExternalInitiatorManager) NotifyV2

type TOMLWebhookSpec added in v0.10.11

type TOMLWebhookSpec struct {
	ExternalInitiators []TOMLWebhookSpecExternalInitiator `toml:"externalInitiators"`
}

type TOMLWebhookSpecExternalInitiator added in v0.10.11

type TOMLWebhookSpecExternalInitiator struct {
	Name string      `toml:"name"`
	Spec models.JSON `toml:"spec"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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