def edit(self, repo_user, repo_name, pull_number,
             title=None, body=None, state=None):
        """
        PATCH /repos/:owner/:repo/pulls/:number

        :param pull_number: The pull request's number
        :param title: The new title for the pull request
        :param body: The new top-level body for the pull request
        :param state: The new top-level body for the pull request
        """
        if not any((title, body, state)):
            raise ValueError("must provide at least one of:"
                             " title, body, state")

        post = {}
        if title is not None:
            post['title'] = title
        if body is not None:
            post['body'] = body
        if state is not None:
            if state not in ('open', 'closed'):
                raise ValueError("state must be either 'open' or 'closed'")
            post['state'] = state

        return self.api.makeRequest(
            ['repos', repo_user, repo_name, 'pulls', pull_number],
            method='PATCH',
            post=post)
PATCH /repos/:owner/:repo/pulls/:number

        :param pull_number: The pull request's number
        :param title: The new title for the pull request
        :param body: The new top-level body for the pull request
        :param state: The new top-level body for the pull request