code: def create_pull_request(self, git_pull_request_to_create, repository_id, project=None, supports_iterations=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')
          query_parameters = {}
          if supports_iterations is not None:
              query_parameters['supportsIterations'] = self._serialize.query('supports_iterations', supports_iterations, 'bool')
          content = self._serialize.body(git_pull_request_to_create, 'GitPullRequest')
          response = self._send(http_method='POST',
                                location_id='9946fd70-0d40-406e-b686-b4744cbbcc37',
                                version='5.1-preview.1',
                                route_values=route_values,
                                query_parameters=query_parameters,
                                content=content)
          return self._deserialize('GitPullRequest', response)
docs: CreatePullRequest.
          [Preview API] Create a pull request.
          :param :class:`<GitPullRequest> <azure.devops.v5_1.git.models.GitPullRequest>` git_pull_request_to_create: The pull request to create.
          :param str repository_id: The repository ID of the pull request's target branch.
          :param str project: Project ID or project name
          :param bool supports_iterations: If true, subsequent pushes to the pull request will be individually reviewable. Set this to false for large pull requests for performance reasons if this functionality is not needed.
          :rtype: :class:`<GitPullRequest> <azure.devops.v5_1.git.models.GitPullRequest>`