Skip to content

Commit 9dedea7

Browse files
committed
Merge copitux#5 'services/orgs'
2 parents f85c7b1 + 9014acb commit 9dedea7

File tree

17 files changed

+675
-15
lines changed

17 files changed

+675
-15
lines changed

AUTHORS.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ Patches and Suggestions
2424
- Francisco Marcos <fmarcos83@gmail.com>
2525
- Nathaniel Williams <nat.williams@gmail.com>
2626
- Alejandro Gómez <alejandroogomez@gmail.com>
27+
- Stefano Rivera <stefano@rivera.za.net>

README.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,12 @@ Achievements
4343
- `Gists service <http://developer.github.com/v3/gists/>`_
4444
- `Git Data service <http://developer.github.com/v3/git/>`_
4545
- `Pull requests service <http://developer.github.com/v3/pulls/>`_
46+
- `Orgs service <http://developer.github.com/v3/orgs/>`_
4647

4748
TODO
4849
-----
4950

50-
- Services: Issues, Orgs, Events
51+
- Services: Issues, Events
5152
- Oauth authorization API (service?)
5253
- Proxy methods into resources (e.g copitux.followers)
5354

docs/orgs.rst

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.. _Orgs service:
2+
3+
Orgs services
4+
==============
5+
6+
**Fast sample**::
7+
8+
from pygithub3 import Github
9+
10+
gh = Github(token='abc123')
11+
12+
auth_orgs = gh.orgs.list().all()
13+
members = gh.orgs.members.list('github')
14+
15+
Org
16+
------
17+
18+
.. autoclass:: pygithub3.services.orgs.Org
19+
:members:
20+
21+
.. attribute:: members
22+
23+
:ref:`Members service`
24+
25+
.. attribute:: teams
26+
27+
:ref:`Teams service`
28+
29+
.. _Members service:
30+
31+
Members
32+
---------
33+
34+
.. autoclass:: pygithub3.services.orgs.members.Members
35+
:members:
36+
37+
.. _Teams service:
38+
39+
Teams
40+
-------
41+
42+
.. autoclass:: pygithub3.services.orgs.teams.Teams
43+
:members:
44+
45+
.. _github orgs doc: http://developer.github.com/v3/orgs
46+
.. _github orgs teams doc: http://developer.github.com/v3/orgs/teams

docs/services.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,5 +74,6 @@ List of services
7474
gists
7575
git_data
7676
pull_requests
77+
orgs
7778

7879
.. _mimetypes: http://developer.github.com/v3/mime

pygithub3/github.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ def __init__(self, **config):
1919
from pygithub3.services.gists import Gist
2020
from pygithub3.services.git_data import GitData
2121
from pygithub3.services.pull_requests import PullRequests
22+
from pygithub3.services.orgs import Org
2223
self._users = User(**config)
2324
self._repos = Repo(**config)
2425
self._gists = Gist(**config)
2526
self._git_data = GitData(**config)
2627
self._pull_requests = PullRequests(**config)
28+
self._orgs = Org(**config)
2729

2830
@property
2931
def remaining_requests(self):
@@ -65,3 +67,9 @@ def pull_requests(self):
6567
:ref:`Pull Requests service <Pull Requests service>`
6668
"""
6769
return self._pull_requests
70+
71+
def orgs(self):
72+
"""
73+
:ref:`Orgs service <Orgs service>`
74+
"""
75+
return self._orgs
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# -*- encoding: utf-8 -*-
2+
3+
from pygithub3.requests.base import Request
4+
from pygithub3.resources.orgs import Org
5+
6+
7+
class List(Request):
8+
uri = 'users/{user}/orgs'
9+
resource = Org
10+
11+
def clean_uri(self):
12+
if not self.user:
13+
return 'user/orgs'
14+
15+
16+
class Get(Request):
17+
uri = 'orgs/{org}'
18+
resource = Org
19+
20+
21+
class Update(Request):
22+
uri = 'orgs/{org}'
23+
resource = Org
24+
body_schema = {
25+
'schema': ('billing_email', 'company', 'email', 'location', 'name'),
26+
'required': (),
27+
}

pygithub3/requests/orgs/members.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# -*- encoding: utf-8 -*-
2+
3+
from pygithub3.resources.orgs import Member
4+
from . import Request
5+
6+
7+
class List(Request):
8+
uri = 'orgs/{org}/members'
9+
resource = Member
10+
11+
12+
class Is_member(Request):
13+
uri = 'orgs/{org}/members/{user}'
14+
15+
16+
class Delete(Request):
17+
uri = 'orgs/{org}/members/{user}'
18+
19+
20+
class Listpublic(Request):
21+
uri = 'orgs/{org}/public_members'
22+
resource = Member
23+
24+
25+
class Is_public_member(Request):
26+
uri = 'orgs/{org}/public_members/{user}'
27+
28+
29+
class Publicize(Request):
30+
uri = 'orgs/{org}/public_members/{user}'
31+
32+
33+
class Conceal(Request):
34+
uri = 'orgs/{org}/public_members/{user}'

pygithub3/requests/orgs/teams.py

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# -*- encoding: utf-8 -*-
2+
3+
from pygithub3.resources.orgs import Member, Team
4+
from pygithub3.resources.repos import Repo
5+
from . import Request
6+
7+
8+
class List(Request):
9+
uri = 'orgs/{org}/teams'
10+
resource = Team
11+
12+
13+
class Get(Request):
14+
uri = 'teams/{id}'
15+
resource = Team
16+
17+
18+
class Create(Request):
19+
uri = 'orgs/{org}/teams'
20+
resource = Team
21+
body_schema = {
22+
'schema': ('name', 'repo_names', 'permission',),
23+
'required': ('name',),
24+
}
25+
26+
# TODO: Check if this request fails with invalid permission
27+
#def clean_body(self):
28+
29+
30+
class Update(Request):
31+
uri = 'teams/{id}'
32+
resource = Team
33+
body_schema = {
34+
'schema': ('name', 'permission',),
35+
'required': ('name',),
36+
}
37+
38+
39+
class Delete(Request):
40+
uri = 'teams/{id}'
41+
42+
43+
class List_members(Request):
44+
uri = 'teams/{id}/members'
45+
resource = Member
46+
47+
48+
class Is_member(Request):
49+
uri = 'teams/{id}/members/{user}'
50+
51+
52+
class Add_member(Request):
53+
uri = 'teams/{id}/members/{user}'
54+
55+
56+
class Remove_member(Request):
57+
uri = 'teams/{id}/members/{user}'
58+
59+
60+
class List_repos(Request):
61+
uri = 'teams/{id}/repos'
62+
resource = Repo
63+
64+
65+
class Contains_repo(Request):
66+
uri = 'teams/{id}/repos/{user}/{repo}'
67+
68+
69+
class Add_repo(Request):
70+
uri = 'teams/{id}/repos/{user}/{repo}'
71+
72+
73+
class Remove_repo(Request):
74+
uri = 'teams/{id}/repos/{user}/{repo}'

pygithub3/requests/repos/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
# -*- encoding: utf-8 -*-
22

33
from pygithub3.requests.base import Request, ValidationError
4+
from pygithub3.resources.orgs import Team
5+
from pygithub3.resources.repos import Repo, Tag, Branch
46
from pygithub3.resources.users import User
5-
from pygithub3.resources.repos import Repo, Team, Tag, Branch
67

78
class List(Request):
89

pygithub3/resources/orgs.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,27 @@
22
# -*- encoding: utf-8 -*-
33

44
from .base import Resource
5+
from .users import Plan
56

67
__all__ = ('Org', )
78

89

910
class Org(Resource):
1011

1112
_dates = ('created_at', )
13+
_maps = {'plan': Plan}
1214

1315
def __str__(self):
14-
return '<Org (%s)>' % getattr(self, 'name', '')
16+
return '<Org (%s)>' % getattr(self, 'login', '')
17+
18+
19+
class Team(Resource):
20+
21+
def __str__(self):
22+
return '<Team (%s)>' % getattr(self, 'name', '')
23+
24+
25+
class Member(Resource):
26+
27+
def __str__(self):
28+
return '<TeamMember (%s)>' % getattr(self, 'login', '')

0 commit comments

Comments
 (0)