diff options
Diffstat (limited to '')
-rw-r--r-- | docs/orgs.rst | 46 | ||||
-rw-r--r-- | docs/services.rst | 1 | ||||
-rw-r--r-- | pygithub3/requests/orgs/members.py | 4 | ||||
-rw-r--r-- | pygithub3/requests/orgs/teams.py | 3 | ||||
-rw-r--r-- | pygithub3/resources/orgs.py | 2 | ||||
-rw-r--r-- | pygithub3/services/orgs/members.py | 7 | ||||
-rw-r--r-- | pygithub3/services/orgs/teams.py | 19 | ||||
-rw-r--r-- | pygithub3/tests/services/test_orgs.py | 8 |
8 files changed, 66 insertions, 24 deletions
diff --git a/docs/orgs.rst b/docs/orgs.rst new file mode 100644 index 0000000..96e7a73 --- /dev/null +++ b/docs/orgs.rst @@ -0,0 +1,46 @@ +.. _Orgs service: + +Orgs services +============== + +**Fast sample**:: + + from pygithub3 import Github + + gh = Github(token='abc123') + + auth_orgs = gh.orgs.list().all() + members = gh.orgs.members.list('github') + +Org +------ + +.. autoclass:: pygithub3.services.orgs.Org + :members: + + .. attribute:: members + + :ref:`Members service` + + .. attribute:: teams + + :ref:`Teams service` + +.. _Members service: + +Members +--------- + +.. autoclass:: pygithub3.services.orgs.members.Members + :members: + +.. _Teams service: + +Teams +------- + +.. autoclass:: pygithub3.services.orgs.teams.Teams + :members: + +.. _github orgs doc: http://developer.github.com/v3/orgs +.. _github orgs teams doc: http://developer.github.com/v3/orgs/teams diff --git a/docs/services.rst b/docs/services.rst index 71fa690..6e1abca 100644 --- a/docs/services.rst +++ b/docs/services.rst @@ -72,5 +72,6 @@ List of services users repos gists + orgs .. _mimetypes: http://developer.github.com/v3/mime diff --git a/pygithub3/requests/orgs/members.py b/pygithub3/requests/orgs/members.py index 4596eb3..a6b05c2 100644 --- a/pygithub3/requests/orgs/members.py +++ b/pygithub3/requests/orgs/members.py @@ -9,7 +9,7 @@ class List(Request): resource = Member -class Get(Request): +class Is_member(Request): uri = 'orgs/{org}/members/{user}' @@ -22,7 +22,7 @@ class Listpublic(Request): resource = Member -class Getpublic(Request): +class Is_public_member(Request): uri = 'orgs/{org}/public_members/{user}' diff --git a/pygithub3/requests/orgs/teams.py b/pygithub3/requests/orgs/teams.py index 4b30533..cc92f9c 100644 --- a/pygithub3/requests/orgs/teams.py +++ b/pygithub3/requests/orgs/teams.py @@ -23,6 +23,9 @@ class Create(Request): 'required': ('name',), } + # TODO: Check if this request fails with invalid permission + #def clean_body(self): + class Update(Request): uri = 'teams/{id}' diff --git a/pygithub3/resources/orgs.py b/pygithub3/resources/orgs.py index 6e2d39b..f0a9804 100644 --- a/pygithub3/resources/orgs.py +++ b/pygithub3/resources/orgs.py @@ -2,6 +2,7 @@ # -*- encoding: utf-8 -*- from .base import Resource +from .users import Plan __all__ = ('Org', ) @@ -9,6 +10,7 @@ __all__ = ('Org', ) class Org(Resource): _dates = ('created_at', ) + _maps = {'plan': Plan} def __str__(self): return '<Org (%s)>' % getattr(self, 'login', '') diff --git a/pygithub3/services/orgs/members.py b/pygithub3/services/orgs/members.py index 3df4dab..fb0da03 100644 --- a/pygithub3/services/orgs/members.py +++ b/pygithub3/services/orgs/members.py @@ -27,7 +27,8 @@ class Members(Service): :param str org: Organisation name :param str user: User name """ - request = self.request_builder('orgs.members.get', org=org, user=user) + request = self.request_builder('orgs.members.is_member', org=org, + user=user) return self._bool(request) def remove_member(self, org, user): @@ -40,7 +41,7 @@ class Members(Service): You must be authenticated and an owner of org """ - request = self.request_builder('orgs.members.get', org=org, user=user) + request = self.request_builder('orgs.members.delete', org=org, user=user) return self._delete(request) def list_public(self, org): @@ -58,7 +59,7 @@ class Members(Service): :param str org: Organisation name :param str user: User name """ - request = self.request_builder('orgs.members.getpublic', + request = self.request_builder('orgs.members.is_public_member', org=org, user=user) return self._bool(request) diff --git a/pygithub3/services/orgs/teams.py b/pygithub3/services/orgs/teams.py index 2e47803..84aa855 100644 --- a/pygithub3/services/orgs/teams.py +++ b/pygithub3/services/orgs/teams.py @@ -28,32 +28,21 @@ class Teams(Service): request = self.request_builder('orgs.teams.get', id=id) return self._get(request) - def create(self, org, name, repo_names=None, permission=None): + def create(self, org, data): """ Create a new team :param str org: Organisation name - :param str name: Team name - :param list repo_names: List of repo names to belong to the team - :param str permission: Permissions to be granted to members + :param dict data: Input. See `github orgs teams doc`_ """ - data = {'name': name} - if repo_names: - data['repo_names'] = repo_names - if permission: - data['permission'] = permission request = self.request_builder('orgs.teams.create', org=org, body=data) return self._post(request) - def update(self, id, name, permission=None): + def update(self, id, data): """ Update a team :param int id: The team id - :param str name: Team name - :param str permission: Permissions to be granted to members + :param dict data: Input. See `github orgs teams doc`_ """ - data = {'name': name} - if permission: - data['permission'] = permission request = self.request_builder('orgs.teams.update', id=id, body=data) return self._patch(request) diff --git a/pygithub3/tests/services/test_orgs.py b/pygithub3/tests/services/test_orgs.py index 4d4c1c9..7f5f7af 100644 --- a/pygithub3/tests/services/test_orgs.py +++ b/pygithub3/tests/services/test_orgs.py @@ -44,7 +44,7 @@ class TestOrgService(TestCase): @patch.object(requests.sessions.Session, 'request') -class TestOrgMemberService(TestCase): +class TestMemberService(TestCase): def setUp(self): self.ms = Members() @@ -92,7 +92,7 @@ class TestOrgMemberService(TestCase): @patch.object(requests.sessions.Session, 'request') -class TestOrgMemberService(TestCase): +class TestTeamsService(TestCase): def setUp(self): self.ts = Teams() @@ -109,13 +109,13 @@ class TestOrgMemberService(TestCase): def test_CREATE(self, request_method): request_method.return_value = mock_response_result('post') - self.ts.create('acme', 'committers') + self.ts.create('acme', dict(name='new')) self.assertEqual(request_method.call_args[0], ('post', _('orgs/acme/teams'))) def test_UPDATE(self, request_method): request_method.return_value = mock_response_result() - self.ts.update(1, 'committers', 'push') + self.ts.update(1, dict(name='edited')) self.assertEqual(request_method.call_args[0], ('patch', _('teams/1'))) def test_DELETE(self, request_method): |