docs: def _traverse_repos(self, callback, repo_name=None):
          '''
          Traverse through all repo files and apply the functionality provided in
          the callback to them
          '''
          repo_files = []
          if os.path.exists(self.opts['spm_repos_config']):
              repo_files.append(self.opts['spm_repos_config'])
  
          for (dirpath, dirnames, filenames) in salt.utils.path.os_walk('{0}.d'.format(self.opts['spm_repos_config'])):
              for repo_file in filenames:
                  if not repo_file.endswith('.repo'):
                      continue
                  repo_files.append(repo_file)
  
          for repo_file in repo_files:
              repo_path = '{0}.d/{1}'.format(self.opts['spm_repos_config'], repo_file)
              with salt.utils.files.fopen(repo_path) as rph:
                  repo_data = salt.utils.yaml.safe_load(rph)
                  for repo in repo_data:
                      if repo_data[repo].get('enabled', True) is False:
                          continue
                      if repo_name is not None and repo != repo_name:
                          continue
                      callback(repo, repo_data[repo])