mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 08:21:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
	
		
			747 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			747 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
package gitlab
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	retryablehttp "github.com/hashicorp/go-retryablehttp"
 | 
						|
)
 | 
						|
 | 
						|
// RequestOptionFunc can be passed to all API requests to customize the API request.
 | 
						|
type RequestOptionFunc func(*retryablehttp.Request) error
 | 
						|
 | 
						|
// WithSudo takes either a username or user ID and sets the SUDO request header
 | 
						|
func WithSudo(uid interface{}) RequestOptionFunc {
 | 
						|
	return func(req *retryablehttp.Request) error {
 | 
						|
		user, err := parseID(uid)
 | 
						|
		if err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		req.Header.Set("SUDO", user)
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithContext runs the request with the provided context
 | 
						|
func WithContext(ctx context.Context) RequestOptionFunc {
 | 
						|
	return func(req *retryablehttp.Request) error {
 | 
						|
		*req = *req.WithContext(ctx)
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 |