gitlab

package
v15.11.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2023 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_internal_gitlab_gitlab_proto protoreflect.FileDescriptor

Functions

func IsForbidden

func IsForbidden(err error) bool

func IsNotFound

func IsNotFound(err error) bool

func IsUnauthorized

func IsUnauthorized(err error) bool

Types

type Client

type Client struct {
	Backend           *url.URL
	HTTPClient        HTTPClient
	HTTPClientNoRetry HTTPClient
	AuthSecret        []byte
	UserAgent         string
}

func NewClient

func NewClient(backend *url.URL, authSecret []byte, opts ...ClientOption) *Client

func (*Client) Do

func (c *Client) Do(ctx context.Context, opts ...DoOption) error

type ClientError

type ClientError struct {
	StatusCode int32  `protobuf:"varint,1,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
	Path       string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
	// contains filtered or unexported fields
}

func (*ClientError) Descriptor deprecated added in v15.1.0

func (*ClientError) Descriptor() ([]byte, []int)

Deprecated: Use ClientError.ProtoReflect.Descriptor instead.

func (*ClientError) Error

func (x *ClientError) Error() string

func (*ClientError) GetPath added in v15.2.0

func (x *ClientError) GetPath() string

func (*ClientError) GetStatusCode added in v15.1.0

func (x *ClientError) GetStatusCode() int32

func (*ClientError) ProtoMessage added in v15.1.0

func (*ClientError) ProtoMessage()

func (*ClientError) ProtoReflect added in v15.1.0

func (x *ClientError) ProtoReflect() protoreflect.Message

func (*ClientError) Reset added in v15.1.0

func (x *ClientError) Reset()

func (*ClientError) String added in v15.1.0

func (x *ClientError) String() string

type ClientInterface

type ClientInterface interface {
	Do(ctx context.Context, opts ...DoOption) error
}

type ClientOption

type ClientOption func(*clientConfig)

ClientOption to configure the client.

func WithRateLimiter

func WithRateLimiter(limiter httpz.Limiter) ClientOption

WithRateLimiter sets the rate limiter to use.

func WithRetryConfig

func WithRetryConfig(retryConfig RetryConfig) ClientOption

WithRetryConfig configures retry behavior.

func WithTLSConfig

func WithTLSConfig(tlsConfig *tls.Config) ClientOption

WithTLSConfig sets the TLS config to use.

func WithTextMapPropagator added in v15.4.0

func WithTextMapPropagator(p propagation.TextMapPropagator) ClientOption

WithTextMapPropagator sets a custom tracer to be used, otherwise the OTEL's global TextMapPropagator is used.

func WithUserAgent

func WithUserAgent(userAgent string) ClientOption

WithUserAgent configures the User-Agent header on the http client.

type DoOption

type DoOption func(*doConfig) error

DoOption to configure the Do call of the client.

func WithAgentToken

func WithAgentToken(agentToken api.AgentToken) DoOption

func WithHeader

func WithHeader(header http.Header) DoOption

func WithJWT

func WithJWT(withJWT bool) DoOption

func WithJobToken

func WithJobToken(jobToken string) DoOption

func WithJsonRequestBody

func WithJsonRequestBody(body interface{}) DoOption

WithJsonRequestBody specifies the object to marshal to JSON and use as request body. Do NOT use this method with proto messages, use WithProtoJsonRequestBody instead.

func WithMethod

func WithMethod(method string) DoOption

func WithPath

func WithPath(path string) DoOption

func WithProtoJsonRequestBody added in v15.11.0

func WithProtoJsonRequestBody(body ValidatableMessage) DoOption

WithProtoJsonRequestBody specifies the object to marshal to JSON and use as request body. Use this method with proto messages.

func WithQuery

func WithQuery(query url.Values) DoOption

func WithRequestBody

func WithRequestBody(body io.Reader, contentType string) DoOption

WithRequestBody sets the request body and HTTP Content-Type header if contentType is not empty.

func WithResponseHandler

func WithResponseHandler(handler ResponseHandler) DoOption

func WithoutRetries

func WithoutRetries() DoOption

type HTTPClient

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

type ResponseHandler

type ResponseHandler interface {
	// Handle is invoked with HTTP client's response and error values.
	Handle(*http.Response, error) error
	// Accept returns the value to send in the Accept HTTP header.
	// Empty string means no value should be sent.
	Accept() string
}

func JsonResponseHandler

func JsonResponseHandler(response interface{}) ResponseHandler

func NakedResponseHandler

func NakedResponseHandler(response **http.Response) ResponseHandler

func NoContentResponseHandler

func NoContentResponseHandler() ResponseHandler

NoContentResponseHandler can be used when no response is expected or response must be discarded.

func ProtoJsonResponseHandler added in v15.11.0

func ProtoJsonResponseHandler(response ValidatableMessage) ResponseHandler

type ResponseHandlerStruct

type ResponseHandlerStruct struct {
	AcceptHeader string
	HandleFunc   func(*http.Response, error) error
}

func (ResponseHandlerStruct) Accept

func (r ResponseHandlerStruct) Accept() string

func (ResponseHandlerStruct) Handle

func (r ResponseHandlerStruct) Handle(resp *http.Response, err error) error

type RetryConfig

type RetryConfig struct {
	// Logger instance. Can be either retryablehttp.Logger or retryablehttp.LeveledLogger
	Logger interface{}

	RetryWaitMin time.Duration // Minimum time to wait
	RetryWaitMax time.Duration // Maximum time to wait
	RetryMax     int           // Maximum number of retries

	// RequestLogHook allows a user-supplied function to be called
	// before each retry.
	RequestLogHook retryablehttp.RequestLogHook

	// ResponseLogHook allows a user-supplied function to be called
	// with the response from each HTTP request executed.
	ResponseLogHook retryablehttp.ResponseLogHook

	// CheckRetry specifies the policy for handling retries, and is called
	// after each request. The default policy is retryablehttp.DefaultRetryPolicy.
	CheckRetry retryablehttp.CheckRetry

	// Backoff specifies the policy for how long to wait between retries.
	// retryablehttp.DefaultBackoff is used by default.
	Backoff retryablehttp.Backoff
}

type ValidatableMessage added in v15.11.0

type ValidatableMessage interface {
	proto.Message
	ValidateAll() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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