types

package
v0.24.1 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrEmptyBuildNumber defines the error type when a
	// Build type has an empty Number field provided.
	ErrEmptyBuildNumber = errors.New("empty build number provided")

	// ErrEmptyBuildRepoID defines the error type when a
	// Build type has an empty `RepoID` field provided.
	ErrEmptyBuildRepoID = errors.New("empty build repo_id provided")
)
View Source
var (
	// ErrEmptyDashName defines the error type when a
	// User type has an empty Name field provided.
	ErrEmptyDashName = errors.New("empty dashboard name provided")

	// ErrExceededAdminLimit defines the error type when a
	// User type has Admins field provided that exceeds the database limit.
	ErrExceededAdminLimit = errors.New("exceeded admins limit")
)
View Source
var (
	// ErrEmptyRepoFullName defines the error type when a
	// Repo type has an empty FullName field provided.
	ErrEmptyRepoFullName = errors.New("empty repo full_name provided")

	// ErrEmptyRepoHash defines the error type when a
	// Repo type has an empty Hash field provided.
	ErrEmptyRepoHash = errors.New("empty repo hash provided")

	// ErrEmptyRepoName defines the error type when a
	// Repo type has an empty Name field provided.
	ErrEmptyRepoName = errors.New("empty repo name provided")

	// ErrEmptyRepoOrg defines the error type when a
	// Repo type has an empty Org field provided.
	ErrEmptyRepoOrg = errors.New("empty repo org provided")

	// ErrEmptyRepoUserID defines the error type when a
	// Repo type has an empty UserID field provided.
	ErrEmptyRepoUserID = errors.New("empty repo user_id provided")

	// ErrEmptyRepoVisibility defines the error type when a
	// Repo type has an empty Visibility field provided.
	ErrEmptyRepoVisibility = errors.New("empty repo visibility provided")

	// ErrExceededTopicsLimit defines the error type when a
	// Repo type has Topics field provided that exceeds the database limit.
	ErrExceededTopicsLimit = errors.New("exceeded topics limit")
)
View Source
var (
	// ErrEmptyScheduleEntry defines the error type when a Schedule type has an empty Entry field provided.
	ErrEmptyScheduleEntry = errors.New("empty schedule entry provided")

	// ErrEmptyScheduleName defines the error type when a Schedule type has an empty Name field provided.
	ErrEmptyScheduleName = errors.New("empty schedule name provided")

	// ErrEmptyScheduleRepoID defines the error type when a Schedule type has an empty RepoID field provided.
	ErrEmptyScheduleRepoID = errors.New("empty schedule repo_id provided")

	// ErrInvalidScheduleEntry defines the error type when a Schedule type has an invalid Entry field provided.
	ErrInvalidScheduleEntry = errors.New("invalid schedule entry provided")
)
View Source
var (

	// ErrEmptyUserName defines the error type when a
	// User type has an empty Name field provided.
	ErrEmptyUserName = errors.New("empty user name provided")

	// ErrEmptyUserRefreshToken defines the error type when a
	// User type has an empty RefreshToken field provided.
	ErrEmptyUserRefreshToken = errors.New("empty user refresh token provided")

	// ErrEmptyUserToken defines the error type when a
	// User type has an empty Token field provided.
	ErrEmptyUserToken = errors.New("empty user token provided")

	// ErrInvalidUserName defines the error type when a
	// User type has an invalid Name field provided.
	ErrInvalidUserName = errors.New("invalid user name provided")

	// ErrExceededFavoritesLimit defines the error type when a
	// User type has Favorites field provided that exceeds the database limit.
	ErrExceededFavoritesLimit = errors.New("exceeded favorites limit")

	// ErrExceededDashboardsLimit defines the error type when a
	// User type has Dashboards field provided that exceeds the database limit.
	ErrExceededDashboardsLimit = errors.New("exceeded dashboards limit")
)
View Source
var (
	// ErrEmptyWorkerHost defines the error type when a
	// Worker type has an empty Host field provided.
	ErrEmptyWorkerHost = errors.New("empty worker hostname provided")

	// ErrEmptyWorkerAddress defines the error type when a
	// Worker type has an empty Address field provided.
	ErrEmptyWorkerAddress = errors.New("empty worker address provided")

	// ErrExceededRunningBuildIDsLimit defines the error type when a
	// Worker type has RunningBuildIDs field provided that exceeds the database limit.
	ErrExceededRunningBuildIDsLimit = errors.New("exceeded running build ids limit")
)
View Source
var (
	// ErrEmptyCloneImage defines the error type when a
	// Settings type has an empty CloneImage field provided.
	ErrEmptyCloneImage = errors.New("empty settings clone image provided")
)
View Source
var (
	// ErrInvalidKID defines the error type when a
	// JWK type has an invalid ID field provided.
	ErrInvalidKID = errors.New("invalid key identifier provided")
)

Functions

This section is empty.

Types

type AdminsJSON

type AdminsJSON []*api.User

func (*AdminsJSON) Scan

func (a *AdminsJSON) Scan(value interface{}) error

Scan - Implement the database/sql scanner interface for AdminsJSON.

func (AdminsJSON) Value

func (a AdminsJSON) Value() (driver.Value, error)

Value - Implementation of valuer for database/sql for AdminsJSON.

type Build

type Build struct {
	ID            sql.NullInt64      `sql:"id"`
	RepoID        sql.NullInt64      `sql:"repo_id"`
	PipelineID    sql.NullInt64      `sql:"pipeline_id"`
	Number        sql.NullInt32      `sql:"number"`
	Parent        sql.NullInt32      `sql:"parent"`
	Event         sql.NullString     `sql:"event"`
	EventAction   sql.NullString     `sql:"event_action"`
	Status        sql.NullString     `sql:"status"`
	Error         sql.NullString     `sql:"error"`
	Enqueued      sql.NullInt64      `sql:"enqueued"`
	Created       sql.NullInt64      `sql:"created"`
	Started       sql.NullInt64      `sql:"started"`
	Finished      sql.NullInt64      `sql:"finished"`
	Deploy        sql.NullString     `sql:"deploy"`
	DeployNumber  sql.NullInt64      `sql:"deploy_number"`
	DeployPayload raw.StringSliceMap `sql:"deploy_payload" gorm:"type:varchar(2000)"`
	Clone         sql.NullString     `sql:"clone"`
	Source        sql.NullString     `sql:"source"`
	Title         sql.NullString     `sql:"title"`
	Message       sql.NullString     `sql:"message"`
	Commit        sql.NullString     `sql:"commit"`
	Sender        sql.NullString     `sql:"sender"`
	SenderSCMID   sql.NullString     `sql:"sender_scm_id"`
	Author        sql.NullString     `sql:"author"`
	Email         sql.NullString     `sql:"email"`
	Link          sql.NullString     `sql:"link"`
	Branch        sql.NullString     `sql:"branch"`
	Ref           sql.NullString     `sql:"ref"`
	BaseRef       sql.NullString     `sql:"base_ref"`
	HeadRef       sql.NullString     `sql:"head_ref"`
	Host          sql.NullString     `sql:"host"`
	Runtime       sql.NullString     `sql:"runtime"`
	Distribution  sql.NullString     `sql:"distribution"`
	ApprovedAt    sql.NullInt64      `sql:"approved_at"`
	ApprovedBy    sql.NullString     `sql:"approved_by"`

	Repo Repo `gorm:"foreignKey:RepoID"`
}

Build is the database representation of a build for a pipeline.

func BuildFromAPI

func BuildFromAPI(b *api.Build) *Build

BuildFromAPI converts the API Build type to a database build type.

func (*Build) Crop

func (b *Build) Crop() *Build

Crop prepares the Build type for inserting into the database by trimming values that may exceed the database column limit.

func (*Build) Nullify

func (b *Build) Nullify() *Build

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the Build type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*Build) ToAPI

func (b *Build) ToAPI() *api.Build

ToAPI converts the Build type to an API Build type.

func (*Build) Validate

func (b *Build) Validate() error

Validate verifies the necessary fields for the Build type are populated correctly.

type Compiler

type Compiler struct {
	CloneImage        sql.NullString `json:"clone_image" sql:"clone_image"`
	TemplateDepth     sql.NullInt64  `json:"template_depth" sql:"template_depth"`
	StarlarkExecLimit sql.NullInt64  `json:"starlark_exec_limit" sql:"starlark_exec_limit"`
}

Compiler is the database representation of compiler settings.

func (*Compiler) Scan

func (r *Compiler) Scan(value interface{}) error

Scan - Implement the database/sql scanner interface for Compiler.

func (Compiler) Value

func (r Compiler) Value() (driver.Value, error)

Value - Implementation of valuer for database/sql for Compiler.

type DashReposJSON

type DashReposJSON []*api.DashboardRepo

func (*DashReposJSON) Scan

func (r *DashReposJSON) Scan(value interface{}) error

Scan - Implement the database/sql scanner interface for DashReposJSON.

func (DashReposJSON) Value

func (r DashReposJSON) Value() (driver.Value, error)

Value - Implementation of valuer for database/sql for DashReposJSON.

type Dashboard

type Dashboard struct {
	ID        uuid.UUID      `gorm:"type:uuid;default:uuid_generate_v7()"`
	Name      sql.NullString `sql:"name"`
	CreatedAt sql.NullInt64  `sql:"created_at"`
	CreatedBy sql.NullString `sql:"created_by"`
	UpdatedAt sql.NullInt64  `sql:"updated_at"`
	UpdatedBy sql.NullString `sql:"updated_by"`
	Admins    AdminsJSON
	Repos     DashReposJSON
}

Dashboard is the database representation of a dashboard.

func DashboardFromAPI

func DashboardFromAPI(d *api.Dashboard) *Dashboard

DashboardFromAPI converts the API Dashboard type to a database Dashboard type.

func (*Dashboard) Nullify

func (d *Dashboard) Nullify() *Dashboard

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the Dashboard type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*Dashboard) ToAPI

func (d *Dashboard) ToAPI() *api.Dashboard

ToAPI converts the Dashboard type to an API Dashboard type.

func (*Dashboard) Validate

func (d *Dashboard) Validate() error

Validate verifies the necessary fields for the Dashboard type are populated correctly.

type JWK

type JWK struct {
	ID     uuid.UUID    `gorm:"type:uuid"`
	Active sql.NullBool `sql:"active"`
	Key    []byte       `sql:"key"`
}

JWK is the database representation of a jwk.

func JWKFromAPI

func JWKFromAPI(j jwk.RSAPublicKey) *JWK

JWKFromAPI converts the API JWK type to a database JWK type.

func (*JWK) Nullify

func (j *JWK) Nullify() *JWK

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the JWK type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*JWK) ToAPI

func (j *JWK) ToAPI() jwk.RSAPublicKey

ToAPI converts the JWK type to an API JWK type.

type Platform

type Platform struct {
	ID sql.NullInt64 `sql:"id"`
	Compiler
	Queue

	RepoAllowlist     pq.StringArray `json:"repo_allowlist" sql:"repo_allowlist" gorm:"type:varchar(1000)"`
	ScheduleAllowlist pq.StringArray `json:"schedule_allowlist" sql:"schedule_allowlist" gorm:"type:varchar(1000)"`

	CreatedAt sql.NullInt64  `sql:"created_at"`
	UpdatedAt sql.NullInt64  `sql:"updated_at"`
	UpdatedBy sql.NullString `sql:"updated_by"`
}

Platform is the database representation of platform settings.

func SettingsFromAPI

func SettingsFromAPI(s *settings.Platform) *Platform

SettingsFromAPI converts the API Settings type to a database Settings type.

func (*Platform) Nullify

func (ps *Platform) Nullify() *Platform

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the Settings type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*Platform) ToAPI

func (ps *Platform) ToAPI() *settings.Platform

ToAPI converts the Settings type to an API Settings type.

func (*Platform) Validate

func (ps *Platform) Validate() error

Validate verifies the necessary fields for the Settings type are populated correctly.

type Queue

type Queue struct {
	Routes pq.StringArray `json:"routes" sql:"routes" gorm:"type:varchar(1000)"`
}

Queue is the database representation of queue settings.

func (*Queue) Scan

func (r *Queue) Scan(value interface{}) error

Scan - Implement the database/sql scanner interface for Queue.

func (Queue) Value

func (r Queue) Value() (driver.Value, error)

Value - Implementation of valuer for database/sql for Queue.

type QueueBuild

type QueueBuild struct {
	Status   sql.NullString `sql:"status"`
	Number   sql.NullInt32  `sql:"number"`
	Created  sql.NullInt64  `sql:"created"`
	FullName sql.NullString `sql:"full_name"`
}

QueueBuild is the database representation of the builds in the queue.

func QueueBuildFromAPI

func QueueBuildFromAPI(b *api.QueueBuild) *QueueBuild

QueueBuildFromAPI converts the API QueueBuild type to a database build queue type.

func (*QueueBuild) ToAPI

func (b *QueueBuild) ToAPI() *api.QueueBuild

ToAPI converts the QueueBuild type to a API QueueBuild type.

type Repo

type Repo struct {
	ID           sql.NullInt64  `sql:"id"`
	UserID       sql.NullInt64  `sql:"user_id"`
	Hash         sql.NullString `sql:"hash"`
	Org          sql.NullString `sql:"org"`
	Name         sql.NullString `sql:"name"`
	FullName     sql.NullString `sql:"full_name"`
	Link         sql.NullString `sql:"link"`
	Clone        sql.NullString `sql:"clone"`
	Branch       sql.NullString `sql:"branch"`
	Topics       pq.StringArray `sql:"topics" gorm:"type:varchar(1020)"`
	BuildLimit   sql.NullInt64  `sql:"build_limit"`
	Timeout      sql.NullInt64  `sql:"timeout"`
	Counter      sql.NullInt32  `sql:"counter"`
	Visibility   sql.NullString `sql:"visibility"`
	Private      sql.NullBool   `sql:"private"`
	Trusted      sql.NullBool   `sql:"trusted"`
	Active       sql.NullBool   `sql:"active"`
	AllowEvents  sql.NullInt64  `sql:"allow_events"`
	PipelineType sql.NullString `sql:"pipeline_type"`
	PreviousName sql.NullString `sql:"previous_name"`
	ApproveBuild sql.NullString `sql:"approve_build"`

	Owner User `gorm:"foreignKey:UserID"`
}

Repo is the database representation of a repo.

func RepoFromAPI

func RepoFromAPI(r *api.Repo) *Repo

RepoFromAPI converts the API Repo type to a database repo type.

func (*Repo) Decrypt

func (r *Repo) Decrypt(key string) error

Decrypt will manipulate the existing repo hash by base64 decoding that value. Then, a AES-256 cipher block is created from the encryption key in order to decrypt the base64 decoded secret value.

func (*Repo) Encrypt

func (r *Repo) Encrypt(key string) error

Encrypt will manipulate the existing repo hash by creating a AES-256 cipher block from the encryption key in order to encrypt the repo hash. Then, the repo hash is base64 encoded for transport across network boundaries.

func (*Repo) Nullify

func (r *Repo) Nullify() *Repo

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the Repo type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*Repo) ToAPI

func (r *Repo) ToAPI() *api.Repo

ToAPI converts the Repo type to an API Repo type.

func (*Repo) Validate

func (r *Repo) Validate() error

Validate verifies the necessary fields for the Repo type are populated correctly.

type Schedule

type Schedule struct {
	ID          sql.NullInt64  `sql:"id"`
	RepoID      sql.NullInt64  `sql:"repo_id"`
	Active      sql.NullBool   `sql:"active"`
	Name        sql.NullString `sql:"name"`
	Entry       sql.NullString `sql:"entry"`
	CreatedAt   sql.NullInt64  `sql:"created_at"`
	CreatedBy   sql.NullString `sql:"created_by"`
	UpdatedAt   sql.NullInt64  `sql:"updated_at"`
	UpdatedBy   sql.NullString `sql:"updated_by"`
	ScheduledAt sql.NullInt64  `sql:"scheduled_at"`
	Branch      sql.NullString `sql:"branch"`
	Error       sql.NullString `sql:"error"`

	Repo Repo `gorm:"foreignKey:RepoID"`
}

func ScheduleFromAPI

func ScheduleFromAPI(s *api.Schedule) *Schedule

ScheduleFromAPI converts the API Schedule type to a database Schedule type.

func (*Schedule) Nullify

func (s *Schedule) Nullify() *Schedule

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the Schedule type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*Schedule) ToAPI

func (s *Schedule) ToAPI() *api.Schedule

ToAPI converts the Schedule type to an API Schedule type.

func (*Schedule) Validate

func (s *Schedule) Validate() error

Validate verifies the necessary fields for the Schedule type are populated correctly.

type User

type User struct {
	ID           sql.NullInt64  `sql:"id"`
	Name         sql.NullString `sql:"name"`
	RefreshToken sql.NullString `sql:"refresh_token"`
	Token        sql.NullString `sql:"token"`
	Favorites    pq.StringArray `sql:"favorites" gorm:"type:varchar(5000)"`
	Active       sql.NullBool   `sql:"active"`
	Admin        sql.NullBool   `sql:"admin"`
	Dashboards   pq.StringArray `sql:"dashboards" gorm:"type:varchar(5000)"`
}

User is the database representation of a user.

func UserFromAPI

func UserFromAPI(u *api.User) *User

UserFromAPI converts the API User type to a database User type.

func (*User) Decrypt

func (u *User) Decrypt(key string) error

Decrypt will manipulate the existing user tokens by base64 decoding them. Then, a AES-256 cipher block is created from the encryption key in order to decrypt the base64 decoded user tokens.

func (*User) Encrypt

func (u *User) Encrypt(key string) error

Encrypt will manipulate the existing user tokens by creating a AES-256 cipher block from the encryption key in order to encrypt the user tokens. Then, the user tokens are base64 encoded for transport across network boundaries.

func (*User) Nullify

func (u *User) Nullify() *User

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the User type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*User) ToAPI

func (u *User) ToAPI() *api.User

ToAPI converts the User type to an API User type.

func (*User) Validate

func (u *User) Validate() error

Validate verifies the necessary fields for the User type are populated correctly.

type Worker

type Worker struct {
	ID                  sql.NullInt64  `sql:"id"`
	Hostname            sql.NullString `sql:"hostname"`
	Address             sql.NullString `sql:"address"`
	Routes              pq.StringArray `sql:"routes" gorm:"type:varchar(1000)"`
	Active              sql.NullBool   `sql:"active"`
	Status              sql.NullString `sql:"status"`
	LastStatusUpdateAt  sql.NullInt64  `sql:"last_status_update_at"`
	RunningBuildIDs     pq.StringArray `sql:"running_build_ids" gorm:"type:varchar(500)"`
	LastBuildStartedAt  sql.NullInt64  `sql:"last_build_started_at"`
	LastBuildFinishedAt sql.NullInt64  `sql:"last_build_finished_at"`
	LastCheckedIn       sql.NullInt64  `sql:"last_checked_in"`
	BuildLimit          sql.NullInt64  `sql:"build_limit"`
}

Worker is the database representation of a worker.

func WorkerFromAPI

func WorkerFromAPI(w *api.Worker) *Worker

WorkerFromAPI converts the API worker type to a database worker type.

func (*Worker) Nullify

func (w *Worker) Nullify() *Worker

Nullify ensures the valid flag for the sql.Null types are properly set.

When a field within the Build type is the zero value for the field, the valid flag is set to false causing it to be NULL in the database.

func (*Worker) ToAPI

func (w *Worker) ToAPI(builds []*api.Build) *api.Worker

ToAPI converts the Worker type to an API Worker type.

func (*Worker) Validate

func (w *Worker) Validate() error

Validate verifies the necessary fields for the Worker type are populated correctly.

Jump to

Keyboard shortcuts

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