mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +00:00 
			
		
		
		
	* update github.com/PuerkitoBio/goquery * update github.com/alecthomas/chroma * update github.com/blevesearch/bleve/v2 * update github.com/caddyserver/certmagic * update github.com/go-enry/go-enry/v2 * update github.com/go-git/go-billy/v5 * update github.com/go-git/go-git/v5 * update github.com/go-redis/redis/v8 * update github.com/go-testfixtures/testfixtures/v3 * update github.com/jaytaylor/html2text * update github.com/json-iterator/go * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mattn/go-isatty * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/prometheus/client_golang * update github.com/unrolled/render * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark * update github.com/yuin/goldmark-highlighting Co-authored-by: techknowlogick <techknowlogick@gitea.io>
		
			
				
	
	
		
			91 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			91 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
//
 | 
						|
// Copyright 2021, Sander van Harmelen
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
//
 | 
						|
 | 
						|
package gitlab
 | 
						|
 | 
						|
import (
 | 
						|
	"net/http"
 | 
						|
 | 
						|
	retryablehttp "github.com/hashicorp/go-retryablehttp"
 | 
						|
)
 | 
						|
 | 
						|
// ClientOptionFunc can be used to customize a new GitLab API client.
 | 
						|
type ClientOptionFunc func(*Client) error
 | 
						|
 | 
						|
// WithBaseURL sets the base URL for API requests to a custom endpoint.
 | 
						|
func WithBaseURL(urlStr string) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		return c.setBaseURL(urlStr)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomBackoff can be used to configure a custom backoff policy.
 | 
						|
func WithCustomBackoff(backoff retryablehttp.Backoff) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.client.Backoff = backoff
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomLogger can be used to configure a custom retryablehttp leveled logger
 | 
						|
func WithCustomLeveledLogger(leveledLogger retryablehttp.LeveledLogger) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.client.Logger = leveledLogger
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomLimiter injects a custom rate limiter to the client.
 | 
						|
func WithCustomLimiter(limiter RateLimiter) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.configureLimiterOnce.Do(func() {
 | 
						|
			c.limiter = limiter
 | 
						|
		})
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomLogger can be used to configure a custom retryablehttp logger
 | 
						|
func WithCustomLogger(logger retryablehttp.Logger) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.client.Logger = logger
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomRetry can be used to configure a custom retry policy.
 | 
						|
func WithCustomRetry(checkRetry retryablehttp.CheckRetry) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.client.CheckRetry = checkRetry
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithHTTPClient can be used to configure a custom HTTP client.
 | 
						|
func WithHTTPClient(httpClient *http.Client) ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.client.HTTPClient = httpClient
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithoutRetries disables the default retry logic.
 | 
						|
func WithoutRetries() ClientOptionFunc {
 | 
						|
	return func(c *Client) error {
 | 
						|
		c.disableRetries = true
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 |