code: func handleRepository(fileInfo driver.FileInfo, root, last string, fn func(repoPath string) error) error {
  	filePath := fileInfo.Path()
  
  	// lop the base path off
  	repo := filePath[len(root)+1:]
  
  	_, file := path.Split(repo)
  	if file == "_layers" {
  		repo = strings.TrimSuffix(repo, "/_layers")
  		if lessPath(last, repo) {
  			if err := fn(repo); err != nil {
  				return err
  			}
  		}
  		return driver.ErrSkipDir
  	} else if strings.HasPrefix(file, "_") {
  		return driver.ErrSkipDir
  	}
  
  	return nil
  }
docs: // handleRepository calls function fn with a repository path if fileInfo
  // has a path of a repository under root and that it is lexographically
  // after last. Otherwise, it will return ErrSkipDir. This should be used
  // with Walk to do handling with repositories in a storage.