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: Perform a request to create a repo on the target platform
  
  Also implements reporting of "fake" results in dry-run mode.
  
  Returns
  -------
  dict
    Result record, but see repo_create_response() for details.
docstr_tok: ["Perform","a","request","to","create","a","repo","on","the","target","platform","Also","implements","reporting","of","``","fake","''","results","in","dry-run","mode",".","Returns","--","--","--","-","dict","Result","record",",","but","see","repo_create_response","(",")","for","details","."]
code: def repo_create_request(
      self,
      reponame,
      organization,
      private,
      dry_run=False,
      description=None,
  ):
      """Perform a request to create a repo on the target platform
  
      Also implements reporting of "fake" results in dry-run mode.
  
      Returns
      -------
      dict
        Result record, but see repo_create_response() for details.
      """
      endpoint = urljoin(
          self.api_url,
          self.create_org_repo_endpoint.format(
              organization=organization
          )
          if organization
          else self.create_user_repo_endpoint,
      )
      desc_text = (
          description if description is not None else "some default"
      )
      data = {
          "name": reponame,
          "description": desc_text,
          "private": private,
          "auto_init": False,
      }
      headers = self.request_headers
  
      if dry_run:
          return dict(
              status="ok",
              request_url=endpoint,
              request_data=data,
              request_headers=headers,
          )
      r = requests.post(
          endpoint,
          json=data,
          headers=headers,
      )
      return self.repo_create_response(r)
  
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 12 for calling the _GitHubLike obj's underlying member method code with example usage: obj.repo_create_request(reponame, organization, private, dry_run, description) and returns: self, dict