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 } }