':calls: `GET /repos/:owner/:repo/issues <http://developer.github.com/v3/issues>`_
:param milestone: :class:`github.Milestone.Milestone` or "none" or "*"
:param state: string
:param assignee: string or :class:`github.NamedUser.NamedUser` or "none" or "*"
:param mentioned: :class:`github.NamedUser.NamedUser`
:param labels: list of :class:`github.Label.Label`
:param sort: string
:param direction: string
:param since: datetime.datetime
:param creator: string or :class:`github.NamedUser.NamedUser`
:rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Issue.Issue`'

def get_issues(self, milestone=github.GithubObject.NotSet, state=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, mentioned=github.GithubObject.NotSet, labels=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet, since=github.GithubObject.NotSet, creator=github.GithubObject.NotSet):

    assert ((milestone is github.GithubObject.NotSet) or (milestone == '*') or (milestone == 'none') or isinstance(milestone, github.Milestone.Milestone)), milestone
    assert ((state is github.GithubObject.NotSet) or isinstance(state, (str, unicode))), state
    assert ((assignee is github.GithubObject.NotSet) or isinstance(assignee, github.NamedUser.NamedUser) or isinstance(assignee, (str, unicode))), assignee
    assert ((mentioned is github.GithubObject.NotSet) or isinstance(mentioned, github.NamedUser.NamedUser)), mentioned
    assert ((labels is github.GithubObject.NotSet) or all((isinstance(element, github.Label.Label) for element in labels))), labels
    assert ((sort is github.GithubObject.NotSet) or isinstance(sort, (str, unicode))), sort
    assert ((direction is github.GithubObject.NotSet) or isinstance(direction, (str, unicode))), direction
    assert ((since is github.GithubObject.NotSet) or isinstance(since, datetime.datetime)), since
    assert ((creator is github.GithubObject.NotSet) or isinstance(creator, github.NamedUser.NamedUser) or isinstance(creator, (str, unicode))), creator
    url_parameters = dict()
    if (milestone is not github.GithubObject.NotSet):
        if isinstance(milestone, str):
            url_parameters['milestone'] = milestone
        else:
            url_parameters['milestone'] = milestone._identity
    if (state is not github.GithubObject.NotSet):
        url_parameters['state'] = state
    if (assignee is not github.GithubObject.NotSet):
        if isinstance(assignee, str):
            url_parameters['assignee'] = assignee
        else:
            url_parameters['assignee'] = assignee._identity
    if (mentioned is not github.GithubObject.NotSet):
        url_parameters['mentioned'] = mentioned._identity
    if (labels is not github.GithubObject.NotSet):
        url_parameters['labels'] = ','.join((label.name for label in labels))
    if (sort is not github.GithubObject.NotSet):
        url_parameters['sort'] = sort
    if (direction is not github.GithubObject.NotSet):
        url_parameters['direction'] = direction
    if (since is not github.GithubObject.NotSet):
        url_parameters['since'] = since.strftime('%Y-%m-%dT%H:%M:%SZ')
    if (creator is not github.GithubObject.NotSet):
        if isinstance(creator, str):
            url_parameters['creator'] = creator
        else:
            url_parameters['creator'] = creator._identity
    return github.PaginatedList.PaginatedList(github.Issue.Issue, self._requester, (self.url + '/issues'), url_parameters)
