class_docstr: Helper class with a platform abstraction for GitHub-like services
      
class_docstr_tok: ["Helper","class","with","a","platform","abstraction","for","GitHub-like","services"]
docstr: Lazy query/reporting of properties for the authenticated user
  
  Returns
  -------
  dict
docstr_tok: ["Lazy","query\/reporting","of","properties","for","the","authenticated","user","Returns","--","--","--","-","dict"]
code: def authenticated_user(self):
      """Lazy query/reporting of properties for the authenticated user
  
      Returns
      -------
      dict
      """
      if self._user_info:
          return self._user_info
  
      endpoint = urljoin(
          self.api_url, self.get_authenticated_user_endpoint
      )
      headers = self.request_headers
      r = requests.get(endpoint, headers=headers)
      # make sure any error-like situation causes noise
      r.raise_for_status()
      self._user_info = r.json()
      return self._user_info
  
imports: import logging
  import re
  from urllib.parse import urljoin, urlparse
  import requests
  from datalad import cfg
  from datalad.distribution.dataset import EnsureDataset, require_dataset
  from datalad.downloaders.credentials import Token
  from datalad.downloaders.http import DEFAULT_USER_AGENT
  from datalad.interface.common_opts import publish_depends, recursion_flag, recursion_limit
  from datalad.interface.results import get_status_dict
  from datalad.support.constraints import EnsureChoice, EnsureNone, EnsureStr
  from datalad.support.param import Parameter
  from datalad.ui import ui
  from datalad.utils import todo_interface_for_extensions
label_desc: Use image node_id 4 for calling the _GitHubLike obj's underlying member method code with example usage: obj.authenticated_user() and returns: self, self