docs: def create_repo(self, auth, name, description=None, private=False, auto_init=False,
                      gitignore_templates=None, license_template=None, readme_template=None,
                      organization=None):
          """
          Creates a new repository, and returns the created repository.
  
          :param auth.Authentication auth: authentication object
          :param str name: name of the repository to create
          :param str description: description of the repository to create
          :param bool private: whether the create repository should be private
          :param bool auto_init: whether the created repository should be auto-initialized with an initial commit
          :param list[str] gitignore_templates: collection of ``.gitignore`` templates to apply
          :param str license_template: license template to apply
          :param str readme_template: README template to apply
          :param str organization: organization under which repository is created
          :return: a representation of the created repository
          :rtype: GogsRepo
          :raises NetworkFailure: if there is an error communicating with the server
          :raises ApiFailure: if the request cannot be serviced
          """
          gitignores = None if gitignore_templates is None \
              else ",".join(gitignore_templates)
          data = {
              "name": name,
              "description": description,
              "private": private,
              "auto_init": auto_init,
              "gitignores": gitignores,
              "license": license_template,
              "readme": readme_template
          }
          data = {k: v for (k, v) in data.items() if v is not None}
          url = "/org/{0}/repos".format(organization) if organization else "/user/repos"
          response = self.post(url, auth=auth, data=data)
          return GogsRepo.from_json(response.json())