class_docstr: Create dataset sibling on GitHub.org (or an enterprise deployment).
  
  GitHub is a popular commercial solution for code hosting and collaborative
  development. GitHub cannot host dataset content (but see LFS,
  http://handbook.datalad.org/r.html?LFS). However, in combination with other
  data sources and siblings, publishing a dataset to GitHub can facilitate
  distribution and exchange, while still allowing any dataset consumer to
  obtain actual data content from alternative sources.
  
  In order to be able to use this command, a personal access token has to be
  generated on the platform (Account->Settings->Developer Settings->Personal
  access tokens->Generate new token).
  
  This command can be configured with
  "datalad.create-sibling-ghlike.extra-remote-settings.NETLOC.KEY=VALUE" in
  order to add any local KEY = VALUE configuration to the created sibling in
  the local `.git/config` file. NETLOC is the domain of the Github instance to
  apply the configuration for.
  This leads to a behavior that is equivalent to calling datalad's
  ``siblings('configure', ...)``||``siblings configure`` command with the
  respective KEY-VALUE pair after creating the sibling.
  The configuration, like any other, could be set at user- or system level, so
  users do not need to add this configuration to every sibling created with
  the service at NETLOC themselves.
  
  .. versionchanged:: 0.16
     || REFLOW >>
     The API has been aligned with the some
     ``create_sibling_...||create-sibling-...`` commands of other GitHub-like
     services, such as GOGS, GIN, GitTea.<< REFLOW ||
  
  .. deprecated:: 0.16
     The ``dryrun||--dryrun`` option will be removed in a future release, use
     the renamed ``dry_run||--dry-run`` option instead.
     The ``github_login||--github-login`` option will be removed in a future
     release, use the ``credential||--credential`` option instead.
     The ``github_organization||--github-organization`` option will be
     removed in a future release, prefix the reposity name with ``<org>/``
     instead.
code: def __call__(
      reponame,
      *,
      dataset=None,
      recursive=False,
      recursion_limit=None,
      name="github",
      existing="error",
      github_login=None,
      credential=None,
      github_organization=None,
      access_protocol="https",
      publish_depends=None,
      private=False,
      description=None,
      dryrun=False,
      dry_run=False,
      api="https://api.github.com",
  ):
      if dryrun and not dry_run:
          # the old one is used, and not in agreement with the new one
          warnings.warn(
              "datalad-create-sibling-github's `dryrun` option is "
              "deprecated and will be removed in a future release, "
              "use the renamed `dry_run/--dry-run` option instead.",
              DeprecationWarning,
          )
          dry_run = dryrun
  
      if api == "https://api.github.com":
          token_info = "Visit https://github.com/settings/tokens to create a token."
      else:
          token_info = (
              "Log into the platform, and visit [Account->"
              "Settings->Developer Settings->"
              "Personal access tokens->Generate new token] "
              "to create a new token."
          )
      if github_login:
          warnings.warn(
              "datalad-create-sibling-github's `github_login` option is "
              "deprecated and will be removed in a future release, "
              "use the `credential` option instead.",
              DeprecationWarning,
          )
          from unittest.mock import patch
  
          # shoehorn the token into an env var to read it out using the
          # normal procedures internally
          with patch.dict(
              "os.environ",
              {"DATALAD_CREDENTIAL_GITHUBLOGINARG_TOKEN": github_login},
          ):
              platform = _GitHub(
                  api,
                  "githubloginarg",
                  require_token=not dry_run,
                  token_info=token_info,
              )
      else:
          platform = _GitHub(
              api,
              credential,
              require_token=not dry_run,
              token_info=token_info,
          )
  
      if github_organization:
          warnings.warn(
              "datalad-create-sibling-github's `github_organization` "
              "option is deprecated and will be removed in a future "
              "release, prefix the reposity name with `<org>/` instead.",
              DeprecationWarning,
          )
          reponame = f"{github_organization}/{reponame}"
  
      yield from _create_sibling(
          platform=platform,
          reponame=reponame,
          dataset=dataset,
          recursive=recursive,
          recursion_limit=recursion_limit,
          name=name,
          existing=existing,
          access_protocol=access_protocol,
          publish_depends=publish_depends,
          private=private,
          description=description,
          dry_run=dry_run,
      )
  
file_path: datalad/datalad/distributed/create_sibling_github.py
imports: import logging
  import warnings
  from urllib.parse import urljoin
  import requests
  from datalad.distributed.create_sibling_ghlike import _create_sibling, _GitHubLike
  from datalad.distribution.dataset import datasetmethod
  from datalad.interface.base import Interface, build_doc, eval_results
  from datalad.support.constraints import EnsureChoice, EnsureNone, EnsureStr
  from datalad.support.param import Parameter
label_desc: Use image node_id 1 for calling the CreateSiblingGithub obj's underlying member method code with example usage: obj.__call__(reponame) without return types