'Create an issue on the project \'repository\' owned by \'owner\'
with title \'title\'.
``body``, ``assignee``, ``milestone``, ``labels`` are all optional.
.. warning::
This method retrieves the repository first and then uses it to
create an issue. If you\'re making several issues, you should use
:py:meth:`repository <github3.github.GitHub.repository>` and then
use :py:meth:`create_issue
<github3.repos.repo.Repository.create_issue>`
:param str owner: (required), login of the owner
:param str repository: (required), repository name
:param str title: (required), Title of issue to be created
:param str body: (optional), The text of the issue, markdown
formatted
:param str assignee: (optional), Login of person to assign
the issue to
:param int milestone: (optional), id number of the milestone to
attribute this issue to (e.g. ``m`` is a :class:`Milestone
<github3.issues.Milestone>` object, ``m.number`` is what you pass
here.)
:param list labels: (optional), List of label names.
:returns: :class:`Issue <github3.issues.Issue>` if successful'

@requires_auth
def create_issue(self, owner, repository, title, body=None, assignee=None, milestone=None, labels=[]):

    repo = None
    if (owner and repository and title):
        repo = self.repository(owner, repository)
    if (repo is not None):
        return repo.create_issue(title, body, assignee, milestone, labels)
    return self._instance_or_null(Issue, None)
