Add remove_membership() method to Teams class (#807)

Per the Github v3 API [docs](https://developer.github.com/v3/teams/members/#deprecation-notice-2), the "remove team member" api is deprecated. This PR implements the new API call.

Deprecated API:
```
DELETE /teams/:team_id/members/:username
```

New API:
```
DELETE /teams/:team_id/memberships/:username
```

This PR also adds a `deprecation` notice to the docstring of the deprecated methods.
This commit is contained in:
Tim Boring
2018-06-19 11:19:27 +08:00
committed by Wan Liuyang
parent 05f49a59de
commit 817f22303c
3 changed files with 29 additions and 0 deletions
+18
View File
@@ -149,6 +149,9 @@ class Team(github.GithubObject.CompletableGithubObject):
def add_to_members(self, member):
"""
This API call is deprecated. Use `add_membership` instead.
https://developer.github.com/v3/teams/members/#deprecation-notice-1
:calls: `PUT /teams/:id/members/:user <http://developer.github.com/v3/orgs/teams>`_
:param member: :class:`github.NamedUser.NamedUser`
:rtype: None
@@ -304,8 +307,23 @@ class Team(github.GithubObject.CompletableGithubObject):
)
return status == 204
def remove_membership(self, member):
"""
:calls: `DELETE /teams/:team_id/memberships/:username <https://developer.github.com/v3/teams/members/#remove-team-membership>`
:param member:
:return:
"""
assert isinstance(member, github.NamedUser.NamedUser), member
headers, data = self._requester.requestJsonAndCheck(
"DELETE",
self.url + "/memberships/" + member._identity
)
def remove_from_members(self, member):
"""
This API call is deprecated. Use `remove_membership` instead:
https://developer.github.com/v3/teams/members/#deprecation-notice-2
:calls: `DELETE /teams/:id/members/:user <http://developer.github.com/v3/orgs/teams>`_
:param member: :class:`github.NamedUser.NamedUser`
:rtype: None
@@ -107,3 +107,13 @@ None
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4949'), ('content-length', '151'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"8856425cedbdf3075576e823f39fc3d6"'), ('date', 'Sat, 26 May 2012 21:14:46 GMT'), ('content-type', 'application/json; charset=utf-8')]
[]
https
DELETE
api.github.com
None
/teams/189850/memberships/jacquev6
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
None
204
[('status', '204 No Content'), ('x-ratelimit-remaining', '4968'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sat, 26 May 2012 21:09:57 GMT')]
+1
View File
@@ -65,6 +65,7 @@ class Team(Framework.TestCase):
self.assertFalse(self.team.has_in_members(user))
self.team.add_membership(user, "maintainer")
self.assertRaises(AssertionError, self.team.add_membership, user, "admin")
self.team.remove_membership(user)
def testRepoPermission(self):
repo = self.org.get_repo("FatherBeaver")