Repository: sigmavirus24/github3.py

Issue:
Assigning a reviewer
As far as I can tell, it is not possible to assign a reviewer in a pull request, is it? On `develop` you can [pass multiple `assignees` to `issue.edit`](https://github.com/sigmavirus24/github3.py/blob/develop/github3/issues/issue.py#L209); are those supposed to be reviewers?

Thanks!

Discussion:
jacquerie: > I want to record them by requesting a review on this very PR

Ach, I can't because I'm not part of the collaborators on this repo. Is the following an acceptable UX for the error case?
```
In [6]: from github3 import GitHub

In [7]: github = GitHub(github_user, github_pass)

In [8]: repository = github.repository('sigmavirus24', 'github3.py')

In [9]: pull_request = repository.pull_request(873)

In [10]: pull_request.create_review_requests(reviewers=['sigmavirus24'])
---------------------------------------------------------------------------
UnprocessableEntity                       Traceback (most recent call last)
<ipython-input-10-2125937603d7> in <module>()
----> 1 pull_request.create_review_requests(reviewers=['sigmavirus24'])

/home/jacquerie/Code/github3.py/src/github3/decorators.pyc in auth_wrapper(self, *args, **kwargs)
     28     def auth_wrapper(self, *args, **kwargs):
     29         if hasattr(self, 'session') and self.session.has_auth():
---> 30             return func(self, *args, **kwargs)
     31         else:
     32             from .exceptions import error_for

/home/jacquerie/Code/github3.py/src/github3/pulls.pyc in create_review_requests(self, reviewers, team_reviewers)
    313         if team_reviewers is not None:
    314             data['team_reviewers'] = team_reviewers
--> 315         json = self._json(self._post(url, data=data), 201)
    316         return self._instance_or_null(PullReview, json)
    317 

/home/jacquerie/Code/github3.py/src/github3/models.pyc in _json(self, response, expected_status_code, include_cache_info)
    154         if actual_status_code != expected_status_code:
    155             if actual_status_code >= 400:
--> 156                 raise exceptions.error_for(response)
    157 
    158             if actual_status_code == 304:

UnprocessableEntity: 422 Validation Failed
```
sigmavirus24: Yeah that exception is fine. It's what someone would see if they tried this with just th eplain API. Once you accept the invite to join the project, you should be able to record those integration tests with this very PR. You'll also need to rebase so it can be merged.
jacquerie: Thanks again for adding me the collaborators! Interestingly, I ran into https://github.com/sigmavirus24/github3.py/issues/825 while testing my current implementation:
```
In [11]: pull_request.create_review_requests(reviewers=['sigmavirus24'])
---------------------------------------------------------------------------
IncompleteResponse                        Traceback (most recent call last)
<ipython-input-11-2125937603d7> in <module>()
----> 1 pull_request.create_review_requests(reviewers=['sigmavirus24'])

/home/jacquerie/Code/github3.py/src/github3/decorators.pyc in auth_wrapper(self, *args, **kwargs)
     28     def auth_wrapper(self, *args, **kwargs):
     29         if hasattr(self, 'session') and self.session.has_auth():
---> 30             return func(self, *args, **kwargs)
     31         else:
     32             from .exceptions import error_for

/home/jacquerie/Code/github3.py/src/github3/pulls.pyc in create_review_requests(self, reviewers, team_reviewers)
    314             data['team_reviewers'] = team_reviewers
    315         json = self._json(self._post(url, data=data), 201)
--> 316         return self._instance_or_null(PullReview, json)
    317 
    318     @requires_auth

/home/jacquerie/Code/github3.py/src/github3/models.pyc in _instance_or_null(self, instance_class, json)
    144             return None
    145 
--> 146         return instance_class(json, self)
    147 
    148     def _json(self, response, expected_status_code, include_cache_info=True):

/home/jacquerie/Code/github3.py/src/github3/models.pyc in __init__(self, json, session)
     48             self._update_attributes(json)
     49         except KeyError as kerr:
---> 50             raise exceptions.IncompleteResponse(json, kerr)
     51 
     52     def _update_attributes(self, json):

IncompleteResponse: None The library was expecting more data in the response (KeyError(u'commit_id',)). Either GitHub modified it's response body, or your token is not properly scoped to retrieve this information.
```
jacquerie: @sigmavirus24 Sorry for the noise! Now it should actually be ready for review.

> Interestingly, I ran into #825 while testing my current implementation

I was wrong about this: I was mistakenly using the `PullReview` model instead of the `ShortPullRequest` one.

Patch:
diff --git a/src/github3/pulls.py b/src/github3/pulls.py
index 9f16b1e0..fd04c2f2 100644
--- a/src/github3/pulls.py
+++ b/src/github3/pulls.py
@@ -194,6 +194,7 @@ class _PullRequest(models.GitHubCore):
     class_name = '_PullRequest'
 
     def _update_attributes(self, pull):
+        from . import orgs
         self._api = pull['url']
         self.assignee = pull['assignee']
         if self.assignee is not None:
@@ -217,6 +218,12 @@ class _PullRequest(models.GitHubCore):
         self.merged_at = self._strptime(pull['merged_at'])
         self.number = pull['number']
         self.patch_url = pull['patch_url']
+        requested_reviewers = pull.get('requested_reviewers', [])
+        self.requested_reviewers = [
+            users.ShortUser(r, self) for r in requested_reviewers]
+        requested_teams = pull.get('requested_teams', [])
+        self.requested_teams = [
+            orgs.ShortTeam(t, self) for t in requested_teams]
         self.review_comment_urlt = URITemplate(pull['review_comment_url'])
         self.review_comments_url = pull['review_comments_url']
         self.repository = None
@@ -286,6 +293,29 @@ class _PullRequest(models.GitHubCore):
         json = self._json(self._post(url, data=data), 201)
         return self._instance_or_null(ReviewComment, json)
 
+    @requires_auth
+    def create_review_requests(self, reviewers=None, team_reviewers=None):
+        """Ask for reviews on this pull request.
+
+        :param list reviewers:
+            The users to which request a review
+        :param list team_reviewers:
+            The teams to which request a review
+        :returns:
+            The pull request on which the reviews were requested
+        :rtype:
+            :class:`~github3.pulls.ShortPullRequest`
+        """
+        url = self._build_url('requested_reviewers', base_url=self._api)
+        data = {}
+        if reviewers is not None:
+            data['reviewers'] = [getattr(r, 'login', r) for r in reviewers]
+        if team_reviewers is not None:
+            data['team_reviewers'] = [
+                getattr(t, 'slug', t) for t in team_reviewers]
+        json = self._json(self._post(url, data=data), 201)
+        return self._instance_or_null(ShortPullRequest, json)
+
     @requires_auth
     def create_review(self, body, commit_id=None, event=None, comments=None):
         """Create a review comment on this pull request.
@@ -334,6 +364,28 @@ class _PullRequest(models.GitHubCore):
         json = self._json(self._post(url, data=data), 200)
         return self._instance_or_null(PullReview, json)
 
+    @requires_auth
+    def delete_review_requests(self, reviewers=None, team_reviewers=None):
+        """Cancel review requests on this pull request.
+
+        :param list reviewers:
+            The users whose review is no longer requested
+        :param list team_reviewers:
+            The teams whose review is no longer requested
+        :returns:
+            True if successful, False otherwise
+        :rtype:
+            bool
+        """
+        url = self._build_url('requested_reviewers', base_url=self._api)
+        data = {}
+        if reviewers is not None:
+            data['reviewers'] = [getattr(r, 'login', r) for r in reviewers]
+        if team_reviewers is not None:
+            data['team_reviewers'] = [
+                getattr(t, 'slug', t) for t in team_reviewers]
+        return self._boolean(self._delete(url, data=dumps(data)), 200, 404)
+
     def diff(self):
         """Return the diff.
 
@@ -495,6 +547,18 @@ class _PullRequest(models.GitHubCore):
         url = self._build_url('comments', base_url=self._api)
         return self._iter(int(number), url, ReviewComment, etag=etag)
 
+    def review_requests(self):
+        """Retrieve the review requests associated with this pull request.
+
+        :returns:
+            review requests associated with this pull request
+        :rtype:
+            :class:`~github3.pulls.ReviewRequests`
+        """
+        url = self._build_url('requested_reviewers', base_url=self._api)
+        json = self._json(self._get(url), 200)
+        return self._instance_or_null(ReviewRequests, json)
+
     def reviews(self, number=-1, etag=None):
         """Iterate over the reviews associated with this pull request.
 
@@ -748,6 +812,16 @@ class ShortPullRequest(_PullRequest):
         A :class:`~github3.repos.repo.ShortRepository` from the :attr:`base`
         instance.
 
+    .. attribute:: requested_reviewers
+
+        A list of :class:`~github3.users.ShortUser` from which a review was
+        requested.
+
+    .. attribute:: requested_teams
+
+       A list of :class:`~github3.orgs.ShortTeam` from which a review was
+       requested.
+
     .. attribute:: review_comment_urlt
 
         A URITemplate instance that expands to provide the review comment URL
@@ -1037,3 +1111,29 @@ class ReviewComment(models.GitHubCore):
             'body': body, 'in_reply_to': in_reply_to
         }), 201)
         return self._instance_or_null(ReviewComment, json)
+
+
+class ReviewRequests(models.GitHubCore):
+    """Object representing review requests in the GitHub API.
+
+    .. attribute:: teams
+
+        The list of teams that were requested a review
+
+    .. attribute:: users
+
+        The list of users that were requested a review
+
+    Please see GitHub's `Review Request Documentation`_ for more information.
+
+    .. _Review Request Documentation:
+       https://developer.github.com/v3/pulls/review_requests/
+    """
+    def _update_attributes(self, requests):
+        from . import orgs
+        self.teams = [orgs.ShortTeam(t, self) for t in requests['teams']]
+        self.users = [users.ShortUser(u, self) for u in requests['users']]
+
+    def _repr(self):
+        return '<Review Requests [users: {0}, teams: {1}]>'.format(
+            len(self.users), len(self.teams))


Test patch:
diff --git a/tests/cassettes/PullRequest_create_review_requests.json b/tests/cassettes/PullRequest_create_review_requests.json
new file mode 100644
index 00000000..1ec3b6b4
--- /dev/null
+++ b/tests/cassettes/PullRequest_create_review_requests.json
@@ -0,0 +1,1 @@
+{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "User-Agent": ["github3.py/1.1.0"], "Accept-Charset": ["utf-8"], "Connection": ["keep-alive"], "Content-Type": ["application/json"], "Authorization": ["token <AUTH_TOKEN>"]}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"}, "response": {"body": {"string": "", "base64_string": "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", "encoding": "utf-8"}, "headers": {"X-XSS-Protection": ["1; mode=block"], "Content-Security-Policy": ["default-src 'none'"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Transfer-Encoding": ["chunked"], "Last-Modified": ["Tue, 31 Jul 2018 14:57:42 GMT"], "Access-Control-Allow-Origin": ["*"], "X-Frame-Options": ["deny"], "Status": ["200 OK"], "X-GitHub-Request-Id": ["9C0A:3FAD:710C4A:EF0B0C:5B6078F0"], "ETag": ["W/\"e16f3cd04ae275c3bf00290d716e8e65\""], "Date": ["Tue, 31 Jul 2018 14:57:53 GMT"], "X-RateLimit-Remaining": ["4995"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "Server": ["GitHub.com"], "X-OAuth-Scopes": ["public_repo, read:user"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "X-Content-Type-Options": ["nosniff"], "Content-Encoding": ["gzip"], "X-Runtime-rack": ["0.198781"], "Vary": ["Accept, Authorization, Cookie, X-GitHub-OTP"], "X-RateLimit-Limit": ["5000"], "Cache-Control": ["private, max-age=60, s-maxage=60"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Type": ["application/json; charset=utf-8"], "X-Accepted-OAuth-Scopes": [""], "X-RateLimit-Reset": ["1533052364"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"}, "recorded_at": "2018-07-31T14:57:53"}, {"request": {"body": {"string": "{\"reviewers\": [\"sigmavirus24\"]}", "encoding": "utf-8"}, "headers": {"Content-Length": ["31"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "User-Agent": ["github3.py/1.1.0"], "Accept-Charset": ["utf-8"], "Connection": ["keep-alive"], "Content-Type": ["application/json"], "Authorization": ["token <AUTH_TOKEN>"]}, "method": "POST", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/requested_reviewers"}, "response": {"body": {"string": "{\"url\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/873\",\"id\":204405647,\"node_id\":\"MDExOlB1bGxSZXF1ZXN0MjA0NDA1NjQ3\",\"html_url\":\"https://github.com/sigmavirus24/github3.py/pull/873\",\"diff_url\":\"https://github.com/sigmavirus24/github3.py/pull/873.diff\",\"patch_url\":\"https://github.com/sigmavirus24/github3.py/pull/873.patch\",\"issue_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues/873\",\"number\":873,\"state\":\"open\",\"locked\":false,\"title\":\"Add support for review requests\",\"user\":{\"login\":\"jacquerie\",\"id\":381280,\"node_id\":\"MDQ6VXNlcjM4MTI4MA==\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/381280?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jacquerie\",\"html_url\":\"https://github.com/jacquerie\",\"followers_url\":\"https://api.github.com/users/jacquerie/followers\",\"following_url\":\"https://api.github.com/users/jacquerie/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquerie/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquerie/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquerie/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquerie/orgs\",\"repos_url\":\"https://api.github.com/users/jacquerie/repos\",\"events_url\":\"https://api.github.com/users/jacquerie/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquerie/received_events\",\"type\":\"User\",\"site_admin\":false},\"body\":\"Closes #787 \\r\\n\\r\\nCurrently missing the integration tests, because I want to record them by requesting a review on this very PR : )\",\"created_at\":\"2018-07-27T11:31:15Z\",\"updated_at\":\"2018-07-31T14:57:53Z\",\"closed_at\":null,\"merged_at\":null,\"merge_commit_sha\":\"2c392b4fe1227373971fc69bd40c274c98237401\",\"assignee\":null,\"assignees\":[],\"requested_reviewers\":[{\"login\":\"sigmavirus24\",\"id\":240830,\"node_id\":\"MDQ6VXNlcjI0MDgzMA==\",\"avatar_url\":\"https://avatars3.githubusercontent.com/u/240830?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/sigmavirus24\",\"html_url\":\"https://github.com/sigmavirus24\",\"followers_url\":\"https://api.github.com/users/sigmavirus24/followers\",\"following_url\":\"https://api.github.com/users/sigmavirus24/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/sigmavirus24/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/sigmavirus24/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/sigmavirus24/subscriptions\",\"organizations_url\":\"https://api.github.com/users/sigmavirus24/orgs\",\"repos_url\":\"https://api.github.com/users/sigmavirus24/repos\",\"events_url\":\"https://api.github.com/users/sigmavirus24/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/sigmavirus24/received_events\",\"type\":\"User\",\"site_admin\":false}],\"requested_teams\":[],\"labels\":[],\"milestone\":null,\"commits_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/commits\",\"review_comments_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/comments\",\"review_comment_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/comments{/number}\",\"comments_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues/873/comments\",\"statuses_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/statuses/f9338626397176687c35c650ad184637c25cb160\",\"head\":{\"label\":\"jacquerie:add-review-requests\",\"ref\":\"add-review-requests\",\"sha\":\"f9338626397176687c35c650ad184637c25cb160\",\"user\":{\"login\":\"jacquerie\",\"id\":381280,\"node_id\":\"MDQ6VXNlcjM4MTI4MA==\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/381280?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jacquerie\",\"html_url\":\"https://github.com/jacquerie\",\"followers_url\":\"https://api.github.com/users/jacquerie/followers\",\"following_url\":\"https://api.github.com/users/jacquerie/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquerie/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquerie/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquerie/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquerie/orgs\",\"repos_url\":\"https://api.github.com/users/jacquerie/repos\",\"events_url\":\"https://api.github.com/users/jacquerie/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquerie/received_events\",\"type\":\"User\",\"site_admin\":false},\"repo\":{\"id\":140643310,\"node_id\":\"MDEwOlJlcG9zaXRvcnkxNDA2NDMzMTA=\",\"name\":\"github3.py\",\"full_name\":\"jacquerie/github3.py\",\"owner\":{\"login\":\"jacquerie\",\"id\":381280,\"node_id\":\"MDQ6VXNlcjM4MTI4MA==\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/381280?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/jacquerie\",\"html_url\":\"https://github.com/jacquerie\",\"followers_url\":\"https://api.github.com/users/jacquerie/followers\",\"following_url\":\"https://api.github.com/users/jacquerie/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquerie/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquerie/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquerie/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquerie/orgs\",\"repos_url\":\"https://api.github.com/users/jacquerie/repos\",\"events_url\":\"https://api.github.com/users/jacquerie/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquerie/received_events\",\"type\":\"User\",\"site_admin\":false},\"private\":false,\"html_url\":\"https://github.com/jacquerie/github3.py\",\"description\":\"Hi, I'm a library for interacting with GItHub's REST API in a convenient and ergonomic way. I work on Python 2.7, 3.4, 3.5, and 3.6\",\"fork\":true,\"url\":\"https://api.github.com/repos/jacquerie/github3.py\",\"forks_url\":\"https://api.github.com/repos/jacquerie/github3.py/forks\",\"keys_url\":\"https://api.github.com/repos/jacquerie/github3.py/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquerie/github3.py/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquerie/github3.py/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquerie/github3.py/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquerie/github3.py/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquerie/github3.py/events\",\"assignees_url\":\"https://api.github.com/repos/jacquerie/github3.py/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquerie/github3.py/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquerie/github3.py/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquerie/github3.py/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquerie/github3.py/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquerie/github3.py/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquerie/github3.py/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquerie/github3.py/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquerie/github3.py/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquerie/github3.py/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquerie/github3.py/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquerie/github3.py/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquerie/github3.py/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquerie/github3.py/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquerie/github3.py/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquerie/github3.py/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquerie/github3.py/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/jacquerie/github3.py/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquerie/github3.py/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquerie/github3.py/merges\",\"archive_url\":\"https://api.github.com/repos/jacquerie/github3.py/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquerie/github3.py/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquerie/github3.py/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquerie/github3.py/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquerie/github3.py/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquerie/github3.py/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquerie/github3.py/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/jacquerie/github3.py/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/jacquerie/github3.py/deployments\",\"created_at\":\"2018-07-12T01:08:54Z\",\"updated_at\":\"2018-07-12T01:08:59Z\",\"pushed_at\":\"2018-07-31T12:40:49Z\",\"git_url\":\"git://github.com/jacquerie/github3.py.git\",\"ssh_url\":\"git@github.com:jacquerie/github3.py.git\",\"clone_url\":\"https://github.com/jacquerie/github3.py.git\",\"svn_url\":\"https://github.com/jacquerie/github3.py\",\"homepage\":\"https://github3.readthedocs.io\",\"size\":52276,\"stargazers_count\":0,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":false,\"has_pages\":false,\"forks_count\":0,\"mirror_url\":null,\"archived\":false,\"open_issues_count\":0,\"license\":{\"key\":\"other\",\"name\":\"Other\",\"spdx_id\":null,\"url\":null,\"node_id\":\"MDc6TGljZW5zZTA=\"},\"forks\":0,\"open_issues\":0,\"watchers\":0,\"default_branch\":\"develop\"}},\"base\":{\"label\":\"sigmavirus24:master\",\"ref\":\"master\",\"sha\":\"6824ebce0059fce75bace08bb4cfb37e2329a2c7\",\"user\":{\"login\":\"sigmavirus24\",\"id\":240830,\"node_id\":\"MDQ6VXNlcjI0MDgzMA==\",\"avatar_url\":\"https://avatars3.githubusercontent.com/u/240830?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/sigmavirus24\",\"html_url\":\"https://github.com/sigmavirus24\",\"followers_url\":\"https://api.github.com/users/sigmavirus24/followers\",\"following_url\":\"https://api.github.com/users/sigmavirus24/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/sigmavirus24/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/sigmavirus24/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/sigmavirus24/subscriptions\",\"organizations_url\":\"https://api.github.com/users/sigmavirus24/orgs\",\"repos_url\":\"https://api.github.com/users/sigmavirus24/repos\",\"events_url\":\"https://api.github.com/users/sigmavirus24/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/sigmavirus24/received_events\",\"type\":\"User\",\"site_admin\":false},\"repo\":{\"id\":3710711,\"node_id\":\"MDEwOlJlcG9zaXRvcnkzNzEwNzEx\",\"name\":\"github3.py\",\"full_name\":\"sigmavirus24/github3.py\",\"owner\":{\"login\":\"sigmavirus24\",\"id\":240830,\"node_id\":\"MDQ6VXNlcjI0MDgzMA==\",\"avatar_url\":\"https://avatars3.githubusercontent.com/u/240830?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/sigmavirus24\",\"html_url\":\"https://github.com/sigmavirus24\",\"followers_url\":\"https://api.github.com/users/sigmavirus24/followers\",\"following_url\":\"https://api.github.com/users/sigmavirus24/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/sigmavirus24/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/sigmavirus24/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/sigmavirus24/subscriptions\",\"organizations_url\":\"https://api.github.com/users/sigmavirus24/orgs\",\"repos_url\":\"https://api.github.com/users/sigmavirus24/repos\",\"events_url\":\"https://api.github.com/users/sigmavirus24/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/sigmavirus24/received_events\",\"type\":\"User\",\"site_admin\":false},\"private\":false,\"html_url\":\"https://github.com/sigmavirus24/github3.py\",\"description\":\"Hi, I'm a library for interacting with GItHub's REST API in a convenient and ergonomic way. I work on Python 2.7, 3.4, 3.5, and 3.6\",\"fork\":false,\"url\":\"https://api.github.com/repos/sigmavirus24/github3.py\",\"forks_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/forks\",\"keys_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/teams\",\"hooks_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/hooks\",\"issue_events_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/events\",\"assignees_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/tags\",\"blobs_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/languages\",\"stargazers_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/stargazers\",\"contributors_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/contributors\",\"subscribers_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/subscribers\",\"subscription_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/subscription\",\"commits_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues/comments{/number}\",\"contents_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/merges\",\"archive_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/downloads\",\"issues_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/labels{/name}\",\"releases_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/releases{/id}\",\"deployments_url\":\"https://api.github.com/repos/sigmavirus24/github3.py/deployments\",\"created_at\":\"2012-03-13T19:58:53Z\",\"updated_at\":\"2018-07-30T15:45:54Z\",\"pushed_at\":\"2018-07-31T12:40:50Z\",\"git_url\":\"git://github.com/sigmavirus24/github3.py.git\",\"ssh_url\":\"git@github.com:sigmavirus24/github3.py.git\",\"clone_url\":\"https://github.com/sigmavirus24/github3.py.git\",\"svn_url\":\"https://github.com/sigmavirus24/github3.py\",\"homepage\":\"https://github3.readthedocs.io\",\"size\":52238,\"stargazers_count\":814,\"watchers_count\":814,\"language\":\"Python\",\"has_issues\":true,\"has_projects\":true,\"has_downloads\":true,\"has_wiki\":false,\"has_pages\":false,\"forks_count\":302,\"mirror_url\":null,\"archived\":false,\"open_issues_count\":54,\"license\":{\"key\":\"other\",\"name\":\"Other\",\"spdx_id\":null,\"url\":null,\"node_id\":\"MDc6TGljZW5zZTA=\"},\"forks\":302,\"open_issues\":54,\"watchers\":814,\"default_branch\":\"master\"}},\"_links\":{\"self\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/873\"},\"html\":{\"href\":\"https://github.com/sigmavirus24/github3.py/pull/873\"},\"issue\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues/873\"},\"comments\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/issues/873/comments\"},\"review_comments\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/comments\"},\"review_comment\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/comments{/number}\"},\"commits\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/commits\"},\"statuses\":{\"href\":\"https://api.github.com/repos/sigmavirus24/github3.py/statuses/f9338626397176687c35c650ad184637c25cb160\"}},\"author_association\":\"COLLABORATOR\",\"body_html\":\"<p><span class=\\\"issue-keyword tooltipped tooltipped-se\\\" aria-label=\\\"This pull request closes issue #787.\\\">Closes</span> <a class=\\\"issue-link js-issue-link\\\" data-error-text=\\\"Failed to load issue title\\\" data-id=\\\"300172382\\\" data-permission-text=\\\"Issue title is private\\\" data-url=\\\"https://github.com/sigmavirus24/github3.py/issues/787\\\" href=\\\"https://github.com/sigmavirus24/github3.py/issues/787\\\">#787</a></p>\\n<p>Currently missing the integration tests, because I want to record them by requesting a review on this very PR : )</p>\",\"body_text\":\"Closes #787\\nCurrently missing the integration tests, because I want to record them by requesting a review on this very PR : )\"}", "encoding": "utf-8"}, "headers": {"Content-Length": ["17225"], "X-XSS-Protection": ["1; mode=block"], "Content-Security-Policy": ["default-src 'none'"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Location": ["https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"], "Access-Control-Allow-Origin": ["*"], "X-Frame-Options": ["deny"], "Status": ["201 Created"], "X-GitHub-Request-Id": ["9C0A:3FAD:710C64:EF0B3F:5B6078F1"], "ETag": ["\"f1798b9beac5f04fdd4dda4a3c175f45\""], "Date": ["Tue, 31 Jul 2018 14:57:53 GMT"], "X-RateLimit-Remaining": ["4994"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "Server": ["GitHub.com"], "X-OAuth-Scopes": ["public_repo, read:user"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "X-Content-Type-Options": ["nosniff"], "X-Runtime-rack": ["0.506507"], "Vary": ["Accept, Authorization, Cookie, X-GitHub-OTP"], "X-RateLimit-Limit": ["5000"], "Cache-Control": ["private, max-age=60, s-maxage=60"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Type": ["application/json; charset=utf-8"], "X-Accepted-OAuth-Scopes": [""], "X-RateLimit-Reset": ["1533052364"]}, "status": {"message": "Created", "code": 201}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/requested_reviewers"}, "recorded_at": "2018-07-31T14:57:53"}], "recorded_with": "betamax/0.8.1"}
\ No newline at end of file
diff --git a/tests/cassettes/PullRequest_delete_review_requests.json b/tests/cassettes/PullRequest_delete_review_requests.json
new file mode 100644
index 00000000..2b85d0b5
--- /dev/null
+++ b/tests/cassettes/PullRequest_delete_review_requests.json
@@ -0,0 +1,1 @@
+{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "User-Agent": ["github3.py/1.1.0"], "Accept-Charset": ["utf-8"], "Connection": ["keep-alive"], "Content-Type": ["application/json"], "Authorization": ["token <AUTH_TOKEN>"]}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"}, "response": {"body": {"string": "", "base64_string": "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", "encoding": "utf-8"}, "headers": {"X-XSS-Protection": ["1; mode=block"], "Content-Security-Policy": ["default-src 'none'"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Transfer-Encoding": ["chunked"], "Last-Modified": ["Tue, 31 Jul 2018 12:37:29 GMT"], "Access-Control-Allow-Origin": ["*"], "X-Frame-Options": ["deny"], "Status": ["200 OK"], "X-GitHub-Request-Id": ["9746:3FAC:7DC188:102C2C9:5B605840"], "ETag": ["W/\"cc4210ad9f1cd12d4300e31b40a12398\""], "Date": ["Tue, 31 Jul 2018 12:38:25 GMT"], "X-RateLimit-Remaining": ["4995"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "Server": ["GitHub.com"], "X-OAuth-Scopes": ["public_repo, read:user"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "X-Content-Type-Options": ["nosniff"], "Content-Encoding": ["gzip"], "X-Runtime-rack": ["0.225128"], "Vary": ["Accept, Authorization, Cookie, X-GitHub-OTP"], "X-RateLimit-Limit": ["5000"], "Cache-Control": ["private, max-age=60, s-maxage=60"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Type": ["application/json; charset=utf-8"], "X-Accepted-OAuth-Scopes": [""], "X-RateLimit-Reset": ["1533044057"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"}, "recorded_at": "2018-07-31T12:38:25"}, {"request": {"body": {"string": "{\"reviewers\": [\"sigmavirus24\"]}", "encoding": "utf-8"}, "headers": {"Content-Length": ["31"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "User-Agent": ["github3.py/1.1.0"], "Accept-Charset": ["utf-8"], "Connection": ["keep-alive"], "Content-Type": ["application/json"], "Authorization": ["token <AUTH_TOKEN>"]}, "method": "DELETE", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/requested_reviewers"}, "response": {"body": {"string": "", "base64_string": "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", "encoding": "utf-8"}, "headers": {"X-XSS-Protection": ["1; mode=block"], "Content-Security-Policy": ["default-src 'none'"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Transfer-Encoding": ["chunked"], "Access-Control-Allow-Origin": ["*"], "X-Frame-Options": ["deny"], "Status": ["200 OK"], "X-GitHub-Request-Id": ["9746:3FAC:7DC1C0:102C315:5B605841"], "ETag": ["W/\"0962ba2945f8ad21491ca6d3038d3bd3\""], "Date": ["Tue, 31 Jul 2018 12:38:25 GMT"], "X-RateLimit-Remaining": ["4994"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "Server": ["GitHub.com"], "X-OAuth-Scopes": ["public_repo, read:user"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "X-Content-Type-Options": ["nosniff"], "Content-Encoding": ["gzip"], "X-Runtime-rack": ["0.286925"], "Vary": ["Accept, Authorization, Cookie, X-GitHub-OTP"], "X-RateLimit-Limit": ["5000"], "Cache-Control": ["private, max-age=60, s-maxage=60"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Type": ["application/json; charset=utf-8"], "X-Accepted-OAuth-Scopes": [""], "X-RateLimit-Reset": ["1533044057"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/requested_reviewers"}, "recorded_at": "2018-07-31T12:38:26"}], "recorded_with": "betamax/0.8.1"}
\ No newline at end of file
diff --git a/tests/cassettes/PullRequest_review_requests.json b/tests/cassettes/PullRequest_review_requests.json
new file mode 100644
index 00000000..606e37cd
--- /dev/null
+++ b/tests/cassettes/PullRequest_review_requests.json
@@ -0,0 +1,1 @@
+{"http_interactions": [{"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "User-Agent": ["github3.py/1.1.0"], "Accept-Charset": ["utf-8"], "Connection": ["keep-alive"], "Content-Type": ["application/json"]}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"}, "response": {"body": {"string": "", "base64_string": "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", "encoding": "utf-8"}, "headers": {"X-XSS-Protection": ["1; mode=block"], "Content-Security-Policy": ["default-src 'none'"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Transfer-Encoding": ["chunked"], "Last-Modified": ["Tue, 31 Jul 2018 12:37:29 GMT"], "Access-Control-Allow-Origin": ["*"], "X-Frame-Options": ["deny"], "Status": ["200 OK"], "X-GitHub-Request-Id": ["B580:3FAB:52E7FA:B40A6F:5B605829"], "ETag": ["W/\"01257746bfd27013f4b23d3f1d29c965\""], "Date": ["Tue, 31 Jul 2018 12:38:01 GMT"], "X-RateLimit-Remaining": ["58"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "Server": ["GitHub.com"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "X-Content-Type-Options": ["nosniff"], "Content-Encoding": ["gzip"], "X-Runtime-rack": ["0.178221"], "Vary": ["Accept"], "X-RateLimit-Limit": ["60"], "Cache-Control": ["public, max-age=60, s-maxage=60"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Type": ["application/json; charset=utf-8"], "X-RateLimit-Reset": ["1533043716"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873"}, "recorded_at": "2018-07-31T12:38:01"}, {"request": {"body": {"string": "", "encoding": "utf-8"}, "headers": {"Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "User-Agent": ["github3.py/1.1.0"], "Accept-Charset": ["utf-8"], "Connection": ["keep-alive"], "Content-Type": ["application/json"]}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/requested_reviewers"}, "response": {"body": {"string": "", "base64_string": "H4sIAAAAAAAAA52TUWuDMBDHv0ueSyNtGUOQMejLHhzsYWMwiqR6jTdiIkm0tOJ330VlMF+GPinhfr/755J0rHFgHYu/OqaMRM1i5lBWokXbuN2BbRgWLN4dosd9tGHaFJCFBZYe3x4+Pl9V/v0SpUd5T5+ThIpFK7ywWWMV1ZTe1y7mfFx0+61EXzbn0DE32oP229xUvOGj/qlNQj9pJ8nQhxZmshonzwiH+HwWufSVmmUYWw/IrPhilDJXssxT/9eI/5IUcvxHLVdaiOy48SXQ8GhLfRgEOr881EB1PHzopILH0YlYKBYHmziKddWUqOMWajMIm7PLLdYejV4e8A9NNmOl0HgX62xEO5KEaMujDBTR0NJdXI6PWMdri63Ib2E0FnLAloa9UjnjyehvNdA7eKdLEUaPHjJRVOGhXoRy0J+oBEQVnvCp/wEtr3r+zwMAAA==", "encoding": "utf-8"}, "headers": {"X-XSS-Protection": ["1; mode=block"], "Content-Security-Policy": ["default-src 'none'"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Transfer-Encoding": ["chunked"], "Access-Control-Allow-Origin": ["*"], "X-Frame-Options": ["deny"], "Status": ["200 OK"], "X-GitHub-Request-Id": ["B580:3FAB:52E818:B40A9B:5B605829"], "ETag": ["W/\"ef248d21c37e005a30a4c5e05b46f3fd\""], "Date": ["Tue, 31 Jul 2018 12:38:02 GMT"], "X-RateLimit-Remaining": ["57"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "Server": ["GitHub.com"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "X-Content-Type-Options": ["nosniff"], "Content-Encoding": ["gzip"], "X-Runtime-rack": ["0.069502"], "Vary": ["Accept"], "X-RateLimit-Limit": ["60"], "Cache-Control": ["public, max-age=60, s-maxage=60"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Type": ["application/json; charset=utf-8"], "X-RateLimit-Reset": ["1533043716"]}, "status": {"message": "OK", "code": 200}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/pulls/873/requested_reviewers"}, "recorded_at": "2018-07-31T12:38:02"}], "recorded_with": "betamax/0.8.1"}
\ No newline at end of file
diff --git a/tests/integration/test_pulls.py b/tests/integration/test_pulls.py
index c794f582..8a19825c 100644
--- a/tests/integration/test_pulls.py
+++ b/tests/integration/test_pulls.py
@@ -58,6 +58,15 @@ class TestPullRequest(IntegrationHelper):
             )
         assert isinstance(comment, github3.pulls.ReviewComment)
 
+    def test_create_review_requests(self):
+        """Show that a user can create review requests on a PR."""
+        self.token_login()
+        cassette_name = self.cassette_name('create_review_requests')
+        with self.recorder.use_cassette(cassette_name):
+            p = self.get_pull_request(num=873)
+            pull_request = p.create_review_requests(reviewers=['sigmavirus24'])
+        assert isinstance(pull_request, github3.pulls.ShortPullRequest)
+
     def test_create_review(self):
         """Verify the request to create a pending review on a PR."""
         self.token_login()
@@ -70,6 +79,14 @@ class TestPullRequest(IntegrationHelper):
             )
         assert isinstance(comment, github3.pulls.PullReview)
 
+    def test_delete_review_requests(self):
+        """Show that a user can delete review requests on a PR."""
+        self.token_login()
+        cassette_name = self.cassette_name('delete_review_requests')
+        with self.recorder.use_cassette(cassette_name):
+            p = self.get_pull_request(num=873)
+            assert p.delete_review_requests(reviewers=['sigmavirus24']) is True
+
     def test_diff(self):
         """Show that one can retrieve a bytestring diff of a PR."""
         cassette_name = self.cassette_name('diff')
@@ -148,6 +165,14 @@ class TestPullRequest(IntegrationHelper):
             for comment in p.review_comments():
                 assert isinstance(comment, github3.pulls.ReviewComment)
 
+    def test_review_requests(self):
+        """Show that one can retrieve the review requests of a PR."""
+        cassette_name = self.cassette_name('review_requests')
+        with self.recorder.use_cassette(cassette_name):
+            p = self.get_pull_request(num=873)
+            review_requests = p.review_requests()
+        assert isinstance(review_requests, github3.pulls.ReviewRequests)
+
     def test_update(self):
         """Show that one can update an open Pull Request."""
         self.basic_login()
diff --git a/tests/unit/test_pulls.py b/tests/unit/test_pulls.py
index c4eb62d8..52341410 100644
--- a/tests/unit/test_pulls.py
+++ b/tests/unit/test_pulls.py
@@ -65,6 +65,15 @@ class TestPullRequest(helper.UnitHelper):
             }
         )
 
+    def test_create_review_requests(self):
+        """Verify the request to ask for reviews on a PR."""
+        self.instance.create_review_requests(reviewers=['sigmavirus24'])
+
+        self.session.post.assert_called_once_with(
+            url_for('requested_reviewers'),
+            '{"reviewers": ["sigmavirus24"]}'
+        )
+
     def test_create_review(self):
         """Verify the request to create a review on a PR."""
         self.instance.create_review('body', 'sha', 'APPROVED')
@@ -79,6 +88,15 @@ class TestPullRequest(helper.UnitHelper):
             }
         )
 
+    def test_delete_review_requests(self):
+        """Verify the request to cancel review requests on a PR."""
+        self.instance.delete_review_requests(reviewers=['sigmavirus24'])
+
+        self.session.delete.assert_called_once_with(
+            url_for('requested_reviewers'),
+            data='{"reviewers": ["sigmavirus24"]}'
+        )
+
     def test_diff(self):
         """Show that a user can request the diff of a Pull Request."""
         self.instance.diff()
@@ -143,6 +161,14 @@ class TestPullRequest(helper.UnitHelper):
             }
         )
 
+    def test_review_requests(self):
+        """Verify the request to fetch the review requests from a PR."""
+        self.instance.review_requests()
+
+        self.session.get.assert_called_once_with(
+            url_for('requested_reviewers')
+        )
+
     def test_update(self):
         """Show that a user can update a Pull Request."""
         self.instance.update('my new title',
@@ -202,6 +228,14 @@ class TestPullRequestRequiresAuthentication(
         with pytest.raises(GitHubError):
             self.instance.create_review_comment('', '', '', 1)
 
+    def test_create_review_requests(self):
+        """Show that you must be authenticated to ask for reviews."""
+        self.assert_requires_auth(self.instance.create_review_requests)
+
+    def test_delete_review_requests(self):
+        """Show that you must be authenticated to cancel review requests."""
+        self.assert_requires_auth(self.instance.delete_review_requests)
+
     def test_merge(self):
         """Show that you must be authenticated to merge a Pull Request."""
         with pytest.raises(GitHubError):