config

package
v1.51.1 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNoListener                       = errors.New("no listener defined, please specify at least one --listen-* flag")
	ErrAuthNoSecret                     = errors.New("auth-secret must be defined if authentication is supported")
	ErrAuthNoClientID                   = errors.New("auth-client-id must be defined if authentication is supported")
	ErrAuthNoClientSecret               = errors.New("auth-client-secret must be defined if authentication is supported")
	ErrAuthNoGitlabServer               = errors.New("gitlab-server must be defined if authentication is supported")
	ErrAuthNoRedirect                   = errors.New("auth-redirect-uri must be defined if authentication is supported")
	ErrArtifactsServerUnsupportedScheme = errors.New("artifacts-server scheme must be either http:// or https://")
	ErrArtifactsServerInvalidTimeout    = errors.New("artifacts-server-timeout must be greater than or equal to 1")
)

Functions

func LogConfig added in v1.36.0

func LogConfig(config *Config)

func Validate added in v1.42.0

func Validate(config *Config) error

Validate values populated in Config

Types

type ArtifactsServer added in v1.36.0

type ArtifactsServer struct {
	URL            string
	TimeoutSeconds int
}

ArtifactsServer groups settings related to configuring Artifacts server

type Auth added in v1.36.0

type Auth struct {
	Secret       string
	ClientID     string
	ClientSecret string
	RedirectURI  string
	Scope        string
}

Auth groups settings related to configuring Authentication with GitLab

type Cache added in v1.36.0

type Cache struct {
	CacheExpiry          time.Duration
	CacheCleanupInterval time.Duration
	EntryRefreshTimeout  time.Duration
	RetrievalTimeout     time.Duration
	MaxRetrievalInterval time.Duration
	MaxRetrievalRetries  int
}

Cache configuration for GitLab API

type Config added in v1.31.0

type Config struct {
	General         General
	RateLimit       RateLimit
	ArtifactsServer ArtifactsServer
	Authentication  Auth
	GitLab          GitLab
	Listeners       Listeners
	Log             Log
	Sentry          Sentry
	Server          Server
	TLS             TLS
	Zip             ZipServing

	// Fields used to share information between files. These are not directly
	// set by command line flags, but rather populated based on info from them.
	// ListenMetrics points to a file descriptor of a socket, whose address is
	// specified by `Config.General.MetricsAddress`.
	ListenMetrics uintptr

	// These fields contain the raw strings passed for listen-http,
	// listen-https, listen-proxy and listen-https-proxyv2 settings. It is used
	// by appmain() to create listeners, and the pointers to these listeners
	// gets assigned to Config.Listeners.* fields
	ListenHTTPStrings         MultiStringFlag
	ListenHTTPSStrings        MultiStringFlag
	ListenProxyStrings        MultiStringFlag
	ListenHTTPSProxyv2Strings MultiStringFlag
}

Config stores all the config options relevant to GitLab Pages.

func LoadConfig added in v1.36.0

func LoadConfig() (*Config, error)

LoadConfig parses configuration settings passed as command line arguments or via config file, and populates a Config object with those values

type General added in v1.36.0

type General struct {
	Domain          string
	MaxConns        int
	MaxURILength    int
	MetricsAddress  string
	RedirectHTTP    bool
	RootCertificate []byte
	RootDir         string
	RootKey         []byte
	StatusPath      string

	DisableCrossOriginRequests bool
	InsecureCiphers            bool
	PropagateCorrelationID     bool

	ShowVersion bool

	CustomHeaders []string
}

General groups settings that are general to GitLab Pages and can not be categorized under other head.

type GitLab added in v1.36.0

type GitLab struct {
	PublicServer       string
	InternalServer     string
	APISecretKey       []byte
	ClientHTTPTimeout  time.Duration
	JWTTokenExpiration time.Duration
	Cache              Cache
	EnableDisk         bool
}

GitLab groups settings related to configuring GitLab client used to interact with GitLab API

type Listeners added in v1.36.0

type Listeners struct {
	HTTP         []uintptr
	HTTPS        []uintptr
	Proxy        []uintptr
	HTTPSProxyv2 []uintptr
}

Listeners groups settings related to configuring various listeners (HTTP, HTTPS, Proxy, HTTPSProxyv2)

type Log added in v1.36.0

type Log struct {
	Format  string
	Verbose bool
}

Log groups settings related to configuring logging

type MultiStringFlag added in v1.36.0

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

MultiStringFlag implements the flag.Value interface and allows a string flag to be specified multiple times on the command line.

e.g.: -listen-http 127.0.0.1:80 -listen-http [::1]:80

func (*MultiStringFlag) Len added in v1.42.0

func (s *MultiStringFlag) Len() int

func (*MultiStringFlag) Set added in v1.36.0

func (s *MultiStringFlag) Set(value string) error

Set appends the value to the list of parameters

func (*MultiStringFlag) Split added in v1.36.0

func (s *MultiStringFlag) Split() (result []string)

Split each flag

func (*MultiStringFlag) String added in v1.36.0

func (s *MultiStringFlag) String() string

String returns the list of parameters joined with a commas (",")

type RateLimit added in v1.46.0

type RateLimit struct {
	SourceIPLimitPerSecond float64
	SourceIPBurst          int
	DomainLimitPerSecond   float64
	DomainBurst            int
}

RateLimit config struct

type Sentry added in v1.36.0

type Sentry struct {
	DSN         string
	Environment string
}

Sentry groups settings related to configuring Sentry

type Server added in v1.51.1

type Server struct {
	ReadTimeout       time.Duration
	ReadHeaderTimeout time.Duration
	WriteTimeout      time.Duration
	ListenKeepAlive   time.Duration
}

type TLS added in v1.36.0

type TLS struct {
	MinVersion uint16
	MaxVersion uint16
}

TLS groups settings related to configuring TLS

type ZipServing added in v1.31.0

type ZipServing struct {
	ExpirationInterval time.Duration
	CleanupInterval    time.Duration
	RefreshInterval    time.Duration
	OpenTimeout        time.Duration
	AllowedPaths       []string
}

ZipServing groups settings to be used by the zip VFS opening and caching

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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