diff options
Diffstat (limited to 'pygithub3/services')
-rw-r--r-- | pygithub3/services/orgs/__init__.py | 5 | ||||
-rw-r--r-- | pygithub3/services/orgs/members.py | 91 |
2 files changed, 96 insertions, 0 deletions
diff --git a/pygithub3/services/orgs/__init__.py b/pygithub3/services/orgs/__init__.py index c222956..6a75081 100644 --- a/pygithub3/services/orgs/__init__.py +++ b/pygithub3/services/orgs/__init__.py @@ -1,11 +1,16 @@ # -*- encoding: utf-8 -*- from pygithub3.services.base import Service +from .members import Members class Org(Service): """ Consume `Orgs API <http://developer.github.com/v3/orgs>`_ """ + def __init__(self, **config): + self.members = Members(**config) + super(Org, self).__init__(**config) + def list(self, user=None): """ Get user's orgs diff --git a/pygithub3/services/orgs/members.py b/pygithub3/services/orgs/members.py new file mode 100644 index 0000000..3df4dab --- /dev/null +++ b/pygithub3/services/orgs/members.py @@ -0,0 +1,91 @@ +# -*- encoding: utf-8 -*- + +from . import Service + + +class Members(Service): + """ Consume `Members API <http://developer.github.com/v3/orgs/members/>`_ + """ + + def list(self, org): + """ Get org's members + + :param str org: Organisation name + :returns: A :doc:`result` + + If you call it authenticated, and are a member of the org, public and + private members will be visible. + + If not, only public members will be visible. + """ + request = self.request_builder('orgs.members.list', org=org) + return self._get_result(request) + + def is_member(self, org, user): + """ Determine if user is a member of org + + :param str org: Organisation name + :param str user: User name + """ + request = self.request_builder('orgs.members.get', org=org, user=user) + return self._bool(request) + + def remove_member(self, org, user): + """ Remove user from all teams in org + + :param str org: Organisation name + :param str user: User name + + .. warning :: + You must be authenticated and an owner of org + + """ + request = self.request_builder('orgs.members.get', org=org, user=user) + return self._delete(request) + + def list_public(self, org): + """ Get org's public members + + :param str org: Organisation name + :returns: A :doc:`result` + """ + request = self.request_builder('orgs.members.listpublic', org=org) + return self._get_result(request) + + def is_public_member(self, org, user): + """ Determine if user is a public member of org + + :param str org: Organisation name + :param str user: User name + """ + request = self.request_builder('orgs.members.getpublic', + org=org, user=user) + return self._bool(request) + + def publicize_membership(self, org, user): + """ Publicize user's membership in org + + :param str org: Organisation name + :param str user: User name + + .. warning :: + You must be authenticated and the user, or an owner of the org + + """ + request = self.request_builder('orgs.members.publicize', + org=org, user=user) + return self._put(request) + + def conceal_membership(self, org, user): + """ Conceal user's membership in org + + :param str org: Organisation name + :param str user: User name + + .. warning :: + You must be authenticated and the user, or an owner of the org + + """ + request = self.request_builder('orgs.members.conceal', + org=org, user=user) + return self._delete(request) |