'Create a repository for the authenticated user.
:param str name: (required), name of the repository
:param str description: (optional)
:param str homepage: (optional)
:param str private: (optional), If ``True``, create a
private repository. API default: ``False``
:param bool has_issues: (optional), If ``True``, enable
issues for this repository. API default: ``True``
:param bool has_wiki: (optional), If ``True``, enable the
wiki for this repository. API default: ``True``
:param bool auto_init: (optional), auto initialize the repository
:param str gitignore_template: (optional), name of the git template to
use; ignored if auto_init = False.
:returns: :class:`Repository <github3.repos.Repository>`
.. warning: ``name`` should be no longer than 100 characters'

@requires_auth
def create_repository(self, name, description=u'', homepage=u'', private=False, has_issues=True, has_wiki=True, auto_init=False, gitignore_template=u''):

    url = self._build_url(u'user', u'repos')
    data = {u'name': name, u'description': description, u'homepage': homepage, u'private': private, u'has_issues': has_issues, u'has_wiki': has_wiki, u'auto_init': auto_init, u'gitignore_template': gitignore_template}
    json = self._json(self._post(url, data=data), 201)
    return self._instance_or_null(Repository, json)
