code: def envs(self, ignore_cache=False):
          '''
          Return a list of refs that can be used as environments
          '''
          if not ignore_cache:
              cache_match = salt.fileserver.check_env_cache(
                  self.opts,
                  self.env_cache
              )
              if cache_match is not None:
                  return cache_match
          ret = set()
          for repo in self.remotes:
              repo_envs = repo.envs()
              for env_list in six.itervalues(repo.saltenv_revmap):
                  repo_envs.update(env_list)
              ret.update([x for x in repo_envs if repo.env_is_exposed(x)])
          return sorted(retf envs(self, ignore_cache=False):
          '''
          Return a list of refs that can be used as environments
          '''
          if not ignore_cache:
              cache_match = salt.fileserver.check_env_cache(
                  self.opts,
                  self.env_cache
              )
              if cache_match is not None:
                  return cache_match
          ret = set()
          for repo in self.remotes:
              repo_envs = repo.envs()
              for env_list in six.itervalues(repo.saltenv_revmap):
                  repo_envs.update(env_list)
              ret.update([x for x in repo_envs if repo.env_is_exposed(x)])
          return sorted(ret)
docs: Return a list of refs that can be used as environments