mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	* Add Dependencie Update Script * update gitea.com/lunny/levelqueue * 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-redis/redis/v8 * update github.com/hashicorp/golang-lru * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/olivere/elastic/v7 * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			93 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
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomLeveledLogger 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
 | 
						|
	}
 | 
						|
}
 |