func (s *NamespacesService) SearchNamespace(query string, options ...OptionFunc) ([]*Namespace, *Response, error) {
	var q struct {
		Search string `url:"search,omitempty" json:"search,omitempty"`
	}
	q.Search = query
	req, err := s.client.NewRequest("GET", "namespaces", &q, options)
	if err != nil {
		return nil, nil, err
	}
	var n []*Namespace
	resp, err := s.client.Do(req, &n)
	if err != nil {
		return nil, resp, err
	}
	return n, resp, err
}
SearchNamespace gets all namespaces that match your string in their name
or path.

GitLab API docs:
https://docs.gitlab.com/ce/api/namespaces.html#search-for-namespace
package gitlab
type NamespacesService struct {
	client *Client
}
type Namespace struct {
	ID   int    `json:"id"`
	Path string `json:"path"`
	Kind string `json:"kind"`
}
func (n Namespace) String() string {
	return Stringify(n)
}
type ListNamespacesOptions struct {
	ListOptions
	Search *string `url:"search,omitempty" json:"search,omitempty"`
}
func (s *NamespacesService) ListNamespaces(opt *ListNamespacesOptions, options ...OptionFunc) ([]*Namespace, *Response, error) {
	req, err := s.client.NewRequest("GET", "namespaces", opt, options)
	if err != nil {
		return nil, nil, err
	}
	var n []*Namespace
	resp, err := s.client.Do(req, &n)
	if err != nil {
		return nil, resp, err
	}
	return n, resp, err
}