Documentation ¶
Index ¶
- Variables
- func IsBadRequest(err error) bool
- func IsForbidden(err error) bool
- func IsNotFound(err error) bool
- func IsUnauthorized(err error) bool
- type Client
- type ClientError
- func (*ClientError) Descriptor() ([]byte, []int)deprecated
- func (x *ClientError) Error() string
- func (x *ClientError) GetPath() string
- func (x *ClientError) GetReason() string
- func (x *ClientError) GetStatusCode() int32
- func (*ClientError) ProtoMessage()
- func (x *ClientError) ProtoReflect() protoreflect.Message
- func (x *ClientError) Reset()
- func (x *ClientError) String() string
- type ClientInterface
- type ClientOption
- func WithMeterProvider(meterProvider otelmetric.MeterProvider) ClientOption
- func WithRateLimiter(limiter httpz.Limiter) ClientOption
- func WithRetryConfig(retryConfig RetryConfig) ClientOption
- func WithTLSConfig(tlsConfig *tls.Config) ClientOption
- func WithTextMapPropagator(p propagation.TextMapPropagator) ClientOption
- func WithTracerProvider(traceProvider trace.TracerProvider) ClientOption
- func WithUserAgent(userAgent string) ClientOption
- type DefaultApiError
- type DoOption
- func WithAgentToken(agentToken api.AgentToken) DoOption
- func WithBearerToken(token string) DoOption
- func WithHeader(header http.Header) DoOption
- func WithJWT(withJWT bool) DoOption
- func WithJobToken(jobToken string) DoOption
- func WithJsonRequestBody(body interface{}) DoOption
- func WithMethod(method string) DoOption
- func WithPath(path string) DoOption
- func WithProtoJsonRequestBody(body ValidatableMessage) DoOption
- func WithQuery(query url.Values) DoOption
- func WithRequestBody(body io.Reader, contentType string) DoOption
- func WithResponseHandler(handler ResponseHandler) DoOption
- func WithoutRetries() DoOption
- type ErrHandler
- type HTTPClient
- type ResponseHandler
- func JsonResponseHandler(response interface{}) ResponseHandler
- func NakedResponseHandler(response **http.Response) ResponseHandler
- func NoContentResponseHandler() ResponseHandler
- func ProtoJsonResponseHandler(response ValidatableMessage) ResponseHandler
- func ProtoJsonResponseHandlerWithErr(response ValidatableMessage, errHandler ErrHandler) ResponseHandler
- func ProtoJsonResponseHandlerWithStructuredErrReason(response ValidatableMessage) ResponseHandler
- type ResponseHandlerStruct
- type RetryConfig
- type ValidatableMessage
Constants ¶
This section is empty.
Variables ¶
var File_internal_gitlab_gitlab_proto protoreflect.FileDescriptor
Functions ¶
func IsBadRequest ¶ added in v16.9.0
func IsForbidden ¶
func IsNotFound ¶
func IsUnauthorized ¶
Types ¶
type Client ¶
type Client struct { Backend *url.URL HTTPClient HTTPClient HTTPClientNoRetry HTTPClient UserAgent string }
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"` Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` // contains filtered or unexported fields }
func (*ClientError) Descriptor
deprecated
func (*ClientError) Descriptor() ([]byte, []int)
Deprecated: Use ClientError.ProtoReflect.Descriptor instead.
func (*ClientError) Error ¶
func (x *ClientError) Error() string
func (*ClientError) GetPath ¶
func (x *ClientError) GetPath() string
func (*ClientError) GetReason ¶ added in v16.2.0
func (x *ClientError) GetReason() string
func (*ClientError) GetStatusCode ¶
func (x *ClientError) GetStatusCode() int32
func (*ClientError) ProtoMessage ¶
func (*ClientError) ProtoMessage()
func (*ClientError) ProtoReflect ¶
func (x *ClientError) ProtoReflect() protoreflect.Message
func (*ClientError) Reset ¶
func (x *ClientError) Reset()
func (*ClientError) String ¶
func (x *ClientError) String() string
type ClientInterface ¶
type ClientOption ¶
type ClientOption func(*clientConfig)
ClientOption to configure the client.
func WithMeterProvider ¶ added in v16.5.0
func WithMeterProvider(meterProvider otelmetric.MeterProvider) ClientOption
WithMeterProvider sets a custom meter provider to be used, otherwise the OTEL's global MeterProvider is used.
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 ¶
func WithTextMapPropagator(p propagation.TextMapPropagator) ClientOption
WithTextMapPropagator sets a custom trace propagator to be used, otherwise the OTEL's global TextMapPropagator is used.
func WithTracerProvider ¶ added in v16.5.0
func WithTracerProvider(traceProvider trace.TracerProvider) ClientOption
WithTracerProvider sets a custom trace provider to be used, otherwise the OTEL's global TracerProvider is used.
func WithUserAgent ¶
func WithUserAgent(userAgent string) ClientOption
WithUserAgent configures the User-Agent header on the http client.
type DefaultApiError ¶ added in v16.2.0
type DefaultApiError struct { Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // contains filtered or unexported fields }
func (*DefaultApiError) Descriptor
deprecated
added in
v16.2.0
func (*DefaultApiError) Descriptor() ([]byte, []int)
Deprecated: Use DefaultApiError.ProtoReflect.Descriptor instead.
func (*DefaultApiError) GetMessage ¶ added in v16.2.0
func (x *DefaultApiError) GetMessage() string
func (*DefaultApiError) ProtoMessage ¶ added in v16.2.0
func (*DefaultApiError) ProtoMessage()
func (*DefaultApiError) ProtoReflect ¶ added in v16.2.0
func (x *DefaultApiError) ProtoReflect() protoreflect.Message
func (*DefaultApiError) Reset ¶ added in v16.2.0
func (x *DefaultApiError) Reset()
func (*DefaultApiError) String ¶ added in v16.2.0
func (x *DefaultApiError) String() string
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 WithBearerToken ¶ added in v16.6.0
WithBearerToken sets the bearer token to authenticate this API request. See https://docs.gitlab.com/ee/api/rest/#personalprojectgroup-access-tokens. Some endpoints also support GitLab Agent for Kubernetes tokens for authentication.
func WithHeader ¶
func WithJobToken ¶
WithJobToken sets the CI job token to authenticate this API request. See https://docs.gitlab.com/ee/api/rest/#job-tokens.
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 WithProtoJsonRequestBody ¶
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 WithRequestBody ¶
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 ErrHandler ¶ added in v16.2.0
type HTTPClient ¶
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 ¶
func ProtoJsonResponseHandler(response ValidatableMessage) ResponseHandler
func ProtoJsonResponseHandlerWithErr ¶ added in v16.2.0
func ProtoJsonResponseHandlerWithErr(response ValidatableMessage, errHandler ErrHandler) ResponseHandler
func ProtoJsonResponseHandlerWithStructuredErrReason ¶ added in v16.2.0
func ProtoJsonResponseHandlerWithStructuredErrReason(response ValidatableMessage) ResponseHandler
type ResponseHandlerStruct ¶
type ResponseHandlerStruct struct { AcceptHeader string HandleFunc func(*http.Response, error) error }
func (ResponseHandlerStruct) Accept ¶
func (r ResponseHandlerStruct) Accept() string
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 }