Skip to content

Commit 372e78e

Browse files
committed
Services.repos.Repo doc
And typos
1 parent d5a26bd commit 372e78e

File tree

6 files changed

+174
-40
lines changed

6 files changed

+174
-40
lines changed

docs/conf.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393

9494
# The theme to use for HTML and HTML Help pages. See the documentation for
9595
# a list of builtin themes.
96-
html_theme = 'sphinxdoc'
9796
#html_theme = 'werkzeug'
9897

9998
# Theme options are theme-specific and customize the look and feel of a theme

docs/repos.rst

Lines changed: 37 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,44 @@ Repos's services
77

88
from pygithub3 import Github
99

10-
auth = dict(login='octocat', password='pass')
11-
gh = Github(**auth)
10+
gh = Github()
1211

13-
# Get copitux user
14-
gh.users.get('copitux')
12+
django_compressor = gh.repos.get(user='jezdez', repo='django_compressor')
13+
requests_collaborators = gh.repos.collaborators(user='kennethreitz',
14+
repo='requests')
1515

16-
# Get copitux's followers
17-
gh.users.followers.list('copitux')
16+
.. _config precedence:
1817

19-
# Get octocat's emails
20-
gh.users.emails.list()
18+
Config precedence
19+
------------------
20+
21+
Some request always need ``user`` and ``repo`` parameters, both, to identify
22+
a `repository`. Because there are a lot of requests which need that parameters,
23+
you can :ref:`config each service` with ``user`` and ``repo`` globally.
24+
25+
So several requests follow a simple precedence ``user_in_arg > user_in_config``
26+
27+
You can see it better with an example: ::
28+
29+
from pygithub3 import Github
30+
31+
gh = Github(user='octocat', repo='oct_repo')
32+
oct_repo = gh.repos.get()
33+
another_repo_from_octocat = gh.repos.get(repo='another_repo')
34+
35+
django_compressor = gh.repos.get(user='jezdez', repo='django_compressor')
36+
37+
.. note::
38+
39+
Remember that each service is isolated from the rest ::
40+
41+
# continue example...
42+
gh.repos.commits.set_user('copitux')
43+
oct_repo = gh.repos.get()
44+
oct_repo_collaborators = gh.repos.collaborators.list().all()
45+
46+
# Fail because copitux/oct_repo doesn't exist
47+
gh.repos.commits.list_comments()
2148

2249
Repo
2350
-------
@@ -82,3 +109,5 @@ Keys
82109

83110
Watchers
84111
---------
112+
113+
.. _github repo doc: http://developer.github.com/v3/repos

docs/services.rst

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ For example: ::
2222
commits => services.repos.commits
2323
....
2424

25-
Each service has the functions to throw the API requests and is isolated
26-
from the rest.
25+
Each service has the functions to throw the API requests and **is isolated
26+
from the rest**.
27+
28+
.. _config each service:
2729

2830
Config each service
2931
.....................................

pygithub3/services/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ class Service(object):
2626
If you include ``login``, ``password`` and ``token`` in config; Oauth has
2727
precedence
2828
29-
Some API requests need ``user`` and/or ``repo`` arguments (e.g repos
30-
service).
29+
Some API requests need ``user`` and/or ``repo`` arguments (e.g
30+
:ref:`repos service <config precedence>`).
3131
You can configure the default value here to avoid repeating
3232
3333
Some API requests return multiple resources with pagination. You can

pygithub3/services/repos.py

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,22 +184,96 @@ def __init__(self, **config):
184184
super(Repo, self).__init__(**config)
185185

186186
def list(self, user=None, type='all'):
187+
""" Get user's repositories
188+
189+
:param str user: Username
190+
:param str type: Filter by type (optional). See `github repo doc`_
191+
:returns: A :doc:`result`
192+
193+
If you call it without user and you are authenticated, get the
194+
authenticated user's repositories
195+
196+
.. warning::
197+
198+
If you aren't authenticated and call without user, it returns 403
199+
200+
::
201+
202+
repo_service.list('copitux', type='owner')
203+
repo_service.list(type='private')
204+
"""
187205
request = self.make_request('repos.list', user=user)
188206
return self._get_result(request, type=type)
189207

190208
def list_by_org(self, org, type='all'):
209+
""" Get organization's repositories
210+
211+
:param str org: Organization name
212+
:param str type: Filter by type (optional). See `github repo doc`_
213+
:returns: A :doc:`result`
214+
215+
::
216+
217+
repo_service.list_by_org('myorganization', type='member')
218+
"""
191219
request = self.make_request('repos.list_by_org', org=org)
192220
return self._get_result(request, type=type)
193221

194222
def create(self, data, in_org=None):
223+
""" Create a new repository
224+
225+
:param dict data: Input. See `github repo doc`_
226+
:param str in_org: Organization where create the repository (optional)
227+
228+
.. warning::
229+
230+
You must be authenticated
231+
232+
If you use ``in_org`` arg, the authenticated user must be a member
233+
of <in_org>
234+
235+
::
236+
237+
repo_service.create(dict(name='new_repo', description='desc'))
238+
repo_service.create(dict(name='new_repo_in_org', team_id=2300),
239+
in_org='myorganization')
240+
"""
195241
request = self.make_request('repos.create', org=in_org, body=data)
196242
return self._post(request)
197243

198244
def get(self, user=None, repo=None):
245+
""" Get a single repo
246+
247+
:param str user: Username
248+
:param str repo: Repository
249+
250+
.. note::
251+
252+
Remember :ref:`config precedence`
253+
"""
199254
request = self.make_request('repos.get', user=user, repo=repo)
200255
return self._get(request)
201256

202257
def update(self, data, user=None, repo=None):
258+
""" Update a single repository
259+
260+
:param dict data: Input. See `github repo doc`_
261+
:param str user: Username
262+
:param str repo: Repository
263+
264+
.. note::
265+
266+
Remember :ref:`config precedence`
267+
268+
.. warning::
269+
270+
You must be authenticated
271+
272+
::
273+
274+
repo_service.update(dict(has_issues=True), user='octocat',
275+
repo='oct_repo')
276+
"""
203277
request = self.make_request('repos.update', body=data,
204278
user=user, repo=repo)
205279
return self._patch(request)
@@ -210,25 +284,77 @@ def __list_contributors(self, user=None, repo=None, **kwargs):
210284
return self._get_result(request, **kwargs)
211285

212286
def list_contributors(self, user=None, repo=None):
287+
""" Get repository's contributors
288+
289+
:param str user: Username
290+
:param str repo: Repository
291+
:returns: A :doc:`result`
292+
293+
.. note::
294+
295+
Remember :ref:`config precedence`
296+
"""
213297
return self.__list_contributors(user, repo)
214298

215299
def list_contributors_with_anonymous(self, user=None, repo=None):
300+
""" Like :attr:`~pygithub3.services.repos.Repo.list_contributors` plus
301+
anonymous """
216302
return self.__list_contributors(user, repo, anom=True)
217303

218304
def list_languages(self, user=None, repo=None):
305+
""" Get repository's languages
306+
307+
:param str user: Username
308+
:param str repo: Repository
309+
:returns: A :doc:`result`
310+
311+
.. note::
312+
313+
Remember :ref:`config precedence`
314+
"""
219315
request = self.make_request('repos.list_languages',
220316
user=user, repo=repo)
221317
return self._get(request)
222318

223319
def list_teams(self, user=None, repo=None):
320+
""" Get repository's teams
321+
322+
:param str user: Username
323+
:param str repo: Repository
324+
:returns: A :doc:`result`
325+
326+
.. note::
327+
328+
Remember :ref:`config precedence`
329+
"""
224330
request = self.make_request('repos.list_teams', user=user, repo=repo)
225331
return self._get_result(request)
226332

227333
def list_tags(self, user=None, repo=None):
334+
""" Get repository's tags
335+
336+
:param str user: Username
337+
:param str repo: Repository
338+
:returns: A :doc:`result`
339+
340+
.. note::
341+
342+
Remember :ref:`config precedence`
343+
"""
228344
request = self.make_request('repos.list_tags', user=user, repo=repo)
229345
return self._get_result(request)
230346

231347
def list_branches(self, user=None, repo=None):
348+
""" Get repository's branches
349+
350+
:param str user: Username
351+
:param str repo: Repository
352+
:returns: A :doc:`result`
353+
354+
.. note::
355+
356+
Remember :ref:`config precedence`
357+
"""
232358
request = self.make_request('repos.list_branches',
233359
user=user, repo=repo)
234360
return self._get_result(request)

pygithub3/services/users.py

Lines changed: 5 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Keys(Service):
1515
def list(self):
1616
""" Get public keys
1717
18-
It returns a :doc:`result`
18+
:returns: A :doc:`result`
1919
"""
2020
request = self.make_request('users.keys.list')
2121
return self._get_result(request)
@@ -24,10 +24,6 @@ def get(self, key_id):
2424
""" Get a public key
2525
2626
:param int key_id: Key id
27-
28-
::
29-
30-
key_service.get(42)
3127
"""
3228
request = self.make_request('users.keys.get',
3329
key_id=key_id)
@@ -64,10 +60,6 @@ def delete(self, key_id):
6460
""" Delete a public key
6561
6662
:param int key_id: Key id
67-
68-
::
69-
70-
key_service.delete(42)
7163
"""
7264
request = self.make_request('users.keys.delete',
7365
key_id=key_id)
@@ -83,8 +75,7 @@ def list(self, user=None):
8375
""" Get user's followers
8476
8577
:param str user: Username
86-
87-
It returns a :doc:`result`
78+
:returns: A :doc:`result`
8879
8980
If you call it without user and you are authenticated, get the
9081
authenticated user's followers
@@ -105,8 +96,7 @@ def list_following(self, user=None):
10596
""" Get who a user is following
10697
10798
:param str user: Username
108-
109-
It returns a :doc:`result`
99+
:returns: A :doc:`result`
110100
111101
If you call it without user and you are authenticated, get the
112102
authenticated user's followings
@@ -127,10 +117,6 @@ def is_following(self, user):
127117
""" Check if you are following a user
128118
129119
:param str user: Username
130-
131-
::
132-
133-
followers_service.is_following('octocat')
134120
"""
135121
request = self.make_request('users.followers.isfollowing', user=user)
136122
return self._bool(request)
@@ -143,10 +129,6 @@ def follow(self, user):
143129
.. warning::
144130
145131
You must be authenticated
146-
147-
::
148-
149-
followers_service.follow('octocat')
150132
"""
151133
request = self.make_request('users.followers.follow', user=user)
152134
self._put(request)
@@ -159,10 +141,6 @@ def unfollow(self, user):
159141
.. warning::
160142
161143
You must be authenticated
162-
163-
::
164-
165-
followers_service.unfollow('octocat')
166144
"""
167145
request = self.make_request('users.followers.unfollow', user=user)
168146
self._delete(request)
@@ -179,7 +157,7 @@ class Emails(Service):
179157
def list(self):
180158
""" Get user's emails
181159
182-
It returns a :doc:`result`
160+
:returns: A :doc:`result`
183161
"""
184162
request = self.make_request('users.emails.list')
185163
return self._get_result(request)
@@ -191,7 +169,7 @@ def add(self, *emails):
191169
192170
.. note::
193171
194-
It reject non-valid emails
172+
It rejects non-valid emails
195173
196174
::
197175

0 commit comments

Comments
 (0)