'Create a repository for this organization.
If the client is authenticated and a member of the organization, this
will create a new repository in the organization.
:param str name: (required), name of the repository
:param str description: (optional)
:param str homepage: (optional)
:param bool 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 int team_id: (optional), id of the team that will be granted
access to this repository
:param bool auto_init: (optional), auto initialize the repository.
:param str gitignore_template: (optional), name of the template; this
is ignored if auto_int = False.
:param str license_template: (optional), name of the license; this
is ignored if auto_int = 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, team_id=0, auto_init=False, gitignore_template=u'', license_template=u''):

    url = self._build_url(u'repos', base_url=self._api)
    data = {u'name': name, u'description': description, u'homepage': homepage, u'private': private, u'has_issues': has_issues, u'has_wiki': has_wiki, u'license_template': license_template, u'auto_init': auto_init, u'gitignore_template': gitignore_template}
    if (int(team_id) > 0):
        data.update({u'team_id': team_id})
    json = self._json(self._post(url, data), 201)
    return self._instance_or_null(Repository, json)
