code: def create_pull_request_reviewer(self, reviewer, repository_id, pull_request_id, reviewer_id, project=None):
          
          route_values = {}
          if project is not None:
              route_values['project'] = self._serialize.url('project', project, 'str')
          if repository_id is not None:
              route_values['repositoryId'] = self._serialize.url('repository_id', repository_id, 'str')
          if pull_request_id is not None:
              route_values['pullRequestId'] = self._serialize.url('pull_request_id', pull_request_id, 'int')
          if reviewer_id is not None:
              route_values['reviewerId'] = self._serialize.url('reviewer_id', reviewer_id, 'str')
          content = self._serialize.body(reviewer, 'IdentityRefWithVote')
          response = self._send(http_method='PUT',
                                location_id='4b6702c7-aa35-4b89-9c96-b9abf6d3e540',
                                version='5.1-preview.1',
                                route_values=route_values,
                                content=content)
          return self._deserialize('IdentityRefWithVote', response)
docs: CreatePullRequestReviewer.
          [Preview API] Add a reviewer to a pull request or cast a vote.
          :param :class:`<IdentityRefWithVote> <azure.devops.v5_1.git.models.IdentityRefWithVote>` reviewer: Reviewer's vote.<br />If the reviewer's ID is included here, it must match the reviewerID parameter.<br />Reviewers can set their own vote with this method.  When adding other reviewers, vote must be set to zero.
          :param str repository_id: The repository ID of the pull request’s target branch.
          :param int pull_request_id: ID of the pull request.
          :param str reviewer_id: ID of the reviewer.
          :param str project: Project ID or project name
          :rtype: :class:`<IdentityRefWithVote> <azure.devops.v5_1.git.models.IdentityRefWithVote>`