code: func (secrets *Secrets) List(filter func(*rspb.Release) bool) ([]*rspb.Release, error) {
  	lsel := kblabels.Set{"OWNER": "TILLER"}.AsSelector()
  	opts := metav1.ListOptions{LabelSelector: lsel.String()}
  
  	list, err := secrets.impl.List(opts)
  	if err != nil {
  		secrets.Log("list: failed to list: %s", err)
  		return nil, err
  	}
  
  	var results []*rspb.Release
  
  	// iterate over the secrets object list
  	// and decode each release
  	for _, item := range list.Items {
  		rls, err := decodeRelease(string(item.Data["release"]))
  		if err != nil {
  			secrets.Log("list: failed to decode release: %v: %s", item, err)
  			continue
  		}
  		if filter(rls) {
  			results = append(results, rls)
  		}
  	}
  	return results, nil
  }
docs: // List fetches all releases and returns the list releases such
  // that filter(release) == true. An error is returned if the
  // secret fails to retrieve the releases.