class_docstr: The Hub Utils to deal with the http request. And other staticmethod for hub.
  
  Args:
      author (`str`):
          The author of the repo.
      repo (`str`):
          The name of the repo.
      root (`str`):
          The root url where the repo located.
class_docstr_tok: ["The","Hub","Utils","to","deal","with","the","http","request",".","And","other","staticmethod","for","hub",".","Args",":","author","(","`","str","`",")",":","The","author","of","the","repo",".","repo","(","`","str","`",")",":","The","name","of","the","repo",".","root","(","`","str","`",")",":","The","root","url","where","the","repo","located","."]
code: def branch_tree(self, tag):
      url = f"{self._root}/towhee-api/v1/repos/{self._author}/{self._repo}/tree?recursive=true&ref={tag}"
      try:
          r = requests.get(url, timeout=(10, 10))
          r.raise_for_status()
          return r.json()
      except Exception as e:  # pylint: disable=broad-except
          err = "{}, {}".format(str(e), traceback.format_exc())
          engine_log.error(err)
          return None
  
imports: import random
  import traceback
  import requests
  from requests.exceptions import HTTPError
  from requests.auth import HTTPBasicAuth
  from towhee.utils.log import engine_log
label_desc: Use image node_id 22 for calling the HubUtils obj's underlying member method code with example usage: obj.branch_tree(tag) and returns: r, None