code: func (v *Vendorer) findOpenAPI(root string) ([]string, error) {
  	finfos, err := ioutil.ReadDir(root)
  	if err != nil {
  		return nil, err
  	}
  	var res []string
  	var includeMe bool
  	for _, finfo := range finfos {
  		path := filepath.Join(root, finfo.Name())
  		if finfo.IsDir() && (finfo.Mode()&os.ModeSymlink == 0) {
  			children, err := v.findOpenAPI(path)
  			if err != nil {
  				return nil, err
  			}
  			res = append(res, children...)
  		} else if strings.HasSuffix(path, ".go") && !strings.HasSuffix(path, "_test.go") {
  			b, err := ioutil.ReadFile(path)
  			if err != nil {
  				return nil, err
  			}
  			if bytes.Contains(b, []byte(openAPIGenTag)) {
  				includeMe = true
  			}
  		}
  	}
  	if includeMe {
  		pkg, err := v.ctx.ImportDir(root, 0)
  		if err != nil {
  			return nil, err
  		}
  		res = append(res, pkg.ImportPath)
  	}
  	return res, nil
  }
docs: // findOpenAPI searches for all packages under root that request OpenAPI. It
  // returns the go import paths. It does not follow symlinks.