Skip to content

Commit 17de8b8

Browse files
committed
Added Collaborator, Contributor and Repository.collaborators(affiliation).
See sigmavirus24#730 for some background information. Note that I have currently put the named parameter `affiliation` at the front of the arguments in `Repository.collaborators`. I did this to be in line with the other similar iterators. This can be moved to the back, but I assume some backwards-incompatible changes are fine for 1.0.0? This uses separate classes for the specific User object uses as I understood the idea was from sigmavirus24#670.
1 parent f963db2 commit 17de8b8

File tree

6 files changed

+93
-32
lines changed

6 files changed

+93
-32
lines changed

github3/repos/repo.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -280,21 +280,35 @@ def code_frequency(self, number=-1, etag=None):
280280
url = self._build_url('stats', 'code_frequency', base_url=self._api)
281281
return self._iter(int(number), url, list, etag=etag)
282282

283-
def collaborators(self, number=-1, etag=None):
283+
def collaborators(self, affiliation='all', number=-1, etag=None):
284284
"""Iterate over the collaborators of this repository.
285285
286+
:param str affiliation:
287+
(optional), affiliation of the collaborator to the repository.
288+
Default: "all" returns contributors with all affiliations
286289
:param int number:
287290
(optional), number of collaborators to return.
288291
Default: -1 returns all comments
289292
:param str etag:
290293
(optional), ETag from a previous request to the same endpoint
291294
:returns:
292-
generator of collaborator users
295+
generator of collaborators
293296
:rtype:
294-
:class:`~github3.users.ShortUser`
297+
:class:`~github3.users.Collaborator`
295298
"""
296299
url = self._build_url('collaborators', base_url=self._api)
297-
return self._iter(int(number), url, users.ShortUser, etag=etag)
300+
affiliations = {'outside', 'direct', 'all'}
301+
if affiliation not in affiliations:
302+
raise ValueError(
303+
(
304+
"Invalid affiliation value {!r} parameter passed, must "
305+
"be 'outside', 'direct', or 'all' (defaults to 'all')."
306+
).format(affiliation)
307+
)
308+
params = {'affiliation': affiliation}
309+
return self._iter(
310+
int(number), url, users.Collaborator, params, etag=etag
311+
)
298312

299313
def comments(self, number=-1, etag=None):
300314
"""Iterate over comments on all commits in the repository.

github3/users.py

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -505,30 +505,6 @@ def delete(self):
505505
return self._boolean(self._delete(url), 204, 403)
506506

507507

508-
class Contributor(_User):
509-
"""Object for the specialized representation of a contributor.
510-
511-
When retrieving a repository's contributors, GitHub returns the same
512-
information as a :class:`~github3.users.ShortUser` with an additional
513-
attribute:
514-
515-
.. versionadded:: 1.0.0
516-
517-
This class was added in version 1.0.0
518-
519-
.. attribute:: contributions_count
520-
521-
The number of contributions a contributor has made to the repository
522-
523-
"""
524-
525-
class_name = 'Contributor'
526-
527-
def _update_attributes(self, contributor):
528-
super(Contributor, self)._update_attributes(contributor)
529-
self.contributions = contributor['contributions']
530-
531-
532508
class User(_User):
533509
"""Object for the full representation of a User.
534510
@@ -765,3 +741,57 @@ def _update_attributes(self, user):
765741
self.plan = user.get('plan')
766742
if self.plan is not None:
767743
self.plan = Plan(self.plan, self)
744+
745+
746+
class Collaborator(_User):
747+
"""Object for the representation of a collaborator.
748+
749+
When retrieving a repository's contributors, GitHub returns the same
750+
information as a :class:`~github3.users.ShortUser` with an additional
751+
attribute:
752+
753+
.. versionadded:: 1.0.3
754+
755+
This class was added in version 1.0.3
756+
757+
.. attribute:: permissions
758+
759+
Admin, push, and pull permissions of a collaborator
760+
"""
761+
762+
class_name = 'Collaborator'
763+
_refresh_to = User
764+
765+
def _update_attributes(self, user):
766+
super(Collaborator, self)._update_attributes(user)
767+
768+
self.permissions = user['permissions']
769+
770+
771+
class Contributor(_User):
772+
"""Object for the specialized representation of a contributor.
773+
774+
When retrieving a repository's contributors, GitHub returns the same
775+
information as a :class:`~github3.users.ShortUser` with an additional
776+
attribute:
777+
778+
.. versionadded:: 1.0.0
779+
780+
This class was added in version 1.0.0
781+
782+
.. versionadded:: 1.0.3
783+
784+
Refresh was implemented in version 1.0.3.
785+
786+
.. attribute:: contributions_count
787+
788+
The number of contributions a contributor has made to the repository
789+
790+
"""
791+
792+
class_name = 'Contributor'
793+
_refresh_to = User
794+
795+
def _update_attributes(self, contributor):
796+
super(Contributor, self)._update_attributes(contributor)
797+
self.contributions = contributor['contributions']
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": "github3.py/1.0.0a4", "Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.drax-preview+json", "Connection": "keep-alive", "Accept-Charset": "utf-8", "Content-Type": "application/json", "Authorization": "token <AUTH_TOKEN>"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py"}, "response": {"body": {"encoding": "utf-8", "base64_string": "H4sIAAAAAAAAA62YQXPqNhDHvwrjawnGmDyIZzqvPbU99R3SSy+MsAVWY1uuJEOJJ9+9/5VssHlTSKJeGGNrf1qtdle7agORBUm8iuarKJoGFSt5kAR7YfJmG8/qUzANdk1RbLoPWuxLdhCq0YtlOBoljxVXQdIGhdyLCozhUFBomsVyvo7n04AdmGFq06gC43Jjap2EoXup45nDNpqrVFaGV2aWyjJsQif99fDjEri96iDEDfDiClaLjuOEAdPhlUa5KYsrHdzUVuRq8E4WhTyCcq31vYnCsySZ0lJEtf8kBZJtKE3OYTws6Y0MIbT5uFJWqsUOarMRGXE0dkTx7MOKdXJQixzgrQ0Vr6UFNludKlEbIauPKziSBk2qPavEK/scDdIaEFLt46pYKUjzA3zx4+JOrA1rJQ4sPZFpFE+5OMDYn0ReyYNoTjXF7R9wCjK9MHzDspLicMcKzd+mgZ3eYJB9MUXYvdf7x3Ge8fOuYsJvJ5PLalKIrWLqNNlJNRGIWbVjKXx1ckQemcBdJ78I82uznfz87bdDDAUx7uWsyc3ItcYfBeNYHSLd2ZObCIQnAFDphZ+8OCTfhvjt4ilFqLOtVMzIe0njtoIjUBsO/5IvGc5KL8UtAKBcSj9LWgBAQuuGv8u1by/ccnTYx0/VlFuX8t4TNbfRjgBdmUaerzj3suAZ0oZ9VkY4VGnuh+0Zbeie7G6zvZeqJA/MtpBbLw4OytBC2lDnzJ1DZuOrHVGJMYIqvvNWlRhnqFGe+23VJMgZiUPQYOu99OwZYdtZtGDVvmF7P+oZgl2no3rPXu8WMbdj50IBkio0JbaNf5K7cEhTVzsg3v1MesFcoLYguV3m3DHAoLCxJihLca8uuE3sECO3/x+w5KfXaPp/v4y5ry4x2vCSk13S7+g+1u2yfq/ncI6uHfByiZ4Rtj/UzOSUuTBVzRT3UbpDhO2WodiazWZtzpktq0uuPCPYEYBiKs1RNfro2fYMVD0lM7Za35GaGar3QrLMy7ZnCIBuG310dYTh/tdoRL0UtIAhsRQF10ZWfjn2QhmyK2nETqTv6Vhuh9sI1H7Vokr5lBXFFF5rRCrgx6i1aRdRcHI/CzkCloF7ANepFBwu7WV1xR2jDV2nmfG6kCfvLDTAUBArju4m2zCDrmQxjxYP8/ghip+jp+RxnTzGf2JMU2ejMasHDFusn+fL5PFLsrRj6kbnA4wb8vQcxfieRF9oCNJq59d4wsUFfnFZ8t2lwaBPoasICGqdXwR/uogl/3Gr0omlBRz0KpLeP+fh+qy7LwpVc1nyGrXH4H7GycX1aQZTZ2jqMpnqmZC0MPGKkdF6FT2NqoxUNhX2Y7VcToMjMyiIcZ4PX/bVybmTpKmZ3rjYDxKjGmpV8aZW8i+eGj18d8k3g4FH8SIuTS5JUgl1fuP6xU6HxWqNDC2Ukt1lVIUEcU60uFjqemVZ86rTqVc/mseIN5HySmPpLbWPWIS9msEautuy37u/us7+QVsYJI5vG156RFvu2s/EajKYBtakCXqjdTbM+I41hdm4fgDzZWhkClmT33JVwmp010LqdM2/sx/5dG83SoHuGZMjicjjRv/dMHimPWf6Ye6LfYUVU4Ez/qI4nXRjmYqbI5rp3kJ2ScNCrjN6vHz7F5xWtG51FAAA", "string": ""}, "headers": {"Server": "GitHub.com", "Date": "Mon, 01 Jan 2018 21:12:31 GMT", "Content-Type": "application/json; charset=utf-8", "Transfer-Encoding": "chunked", "Status": "200 OK", "X-RateLimit-Limit": "5000", "X-RateLimit-Remaining": "4997", "X-RateLimit-Reset": "1514844517", "Cache-Control": "private, max-age=60, s-maxage=60", "Vary": "Accept, Authorization, Cookie, X-GitHub-OTP", "ETag": "W/\"5c2f068ff35b0394135666262d04ca26\"", "Last-Modified": "Thu, 28 Dec 2017 04:56:43 GMT", "X-OAuth-Scopes": "admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user", "X-Accepted-OAuth-Scopes": "repo", "X-GitHub-Media-Type": "github.v3; param=drax-preview; format=json", "Access-Control-Expose-Headers": "ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "Access-Control-Allow-Origin": "*", "Content-Security-Policy": "default-src 'none'", "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "deny", "X-XSS-Protection": "1; mode=block", "X-Runtime-rack": "0.043314", "Content-Encoding": "gzip", "X-GitHub-Request-Id": "A918:04CE:2DACDD:611CE0:5A4AA43F"}, "status": {"code": 200, "message": "OK"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py"}, "recorded_at": "2018-01-01T21:12:31"}, {"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": "github3.py/1.0.0a4", "Accept-Encoding": "gzip, deflate", "Accept": "application/vnd.github.v3.full+json", "Connection": "keep-alive", "Accept-Charset": "utf-8", "Content-Type": "application/json", "Authorization": "token <AUTH_TOKEN>"}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/collaborators?per_page=100"}, "response": {"body": {"encoding": "utf-8", "base64_string": "H4sIAAAAAAAAA73VXW/aMBQG4P/ia9SEAC0gTfsVu5omZIKbeM2X/JGqi/jvO07czDYlneOoVyA475uDyQM/O1TUGa3QEXHSEszRCtELOiZx/Lg9rBBuscDsJFkBE7kQDT9G0fAi3zxkVOTyLDlhaV0JUomHtC4jGQ3p7+23LdRlTJeoXgQvOGUN1T1DGMp4NO6Si7Jwrj5ctB8ex57roqhfIeluer88GjOw0vCcVpl3HjJdVIucwCHB6lf1gSkXPov0812kHk70oho4nDkjF49ldAJWea1giy5ipKn7KnnmKaONoHXls5SVg56aZbiif7BvD+TUPaXW8bl8Pw85uCcrr8McAl3UMNri9E0dASMpoS0cp3eZk4Qu8dYQuIt/wFetDpcKcsKXUvkRTJIVaggrKefqsNGxQ/q9Z1xw9abk+TgoCyClQtfrykBIsxK3lEmeKDs9xW2838SzKfbpEIr2Rp+AtIf9WBrZAJy3LUFEzbowqGbTglytWhP7LLRmmzddMzwDsBlfiLG9kfUzMIn5HeyHmrX0zzHXZfa7eNGMd8km2T9NM07u/qMO6QDG4y7TgMcxL7pDaj5aKx/CVRcFQdUdyxF9LwzFqXt8WeqYP0gdXIbiuMVCCP//L5VwnArywvFZS3zcH3aH9bTE+K7EIR0g0dpnWqM16iXyX3K+ypuOEJlGWZBOo2c5oWZpqFKjy1eqEfXXaoSXEWtt8+VqqeAlKbEQaS6rTMt92uz26ziZpru+S1fHA+zebDXt92bcy7Cdnu/4w54Qy05hkGenaznTbnGoa6fP17YT9/ftFCxj/Garr3H+6y+0rQ/udxIAAA==", "string": ""}, "headers": {"Server": "GitHub.com", "Date": "Mon, 01 Jan 2018 21:12:31 GMT", "Content-Type": "application/json; charset=utf-8", "Transfer-Encoding": "chunked", "Status": "200 OK", "X-RateLimit-Limit": "5000", "X-RateLimit-Remaining": "4996", "X-RateLimit-Reset": "1514844517", "Cache-Control": "private, max-age=60, s-maxage=60", "Vary": "Accept, Authorization, Cookie, X-GitHub-OTP", "ETag": "W/\"bfbd076a8fe1b22274427e648ee8ab8e\"", "X-OAuth-Scopes": "admin:gpg_key, admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user", "X-Accepted-OAuth-Scopes": "", "X-GitHub-Media-Type": "github.v3; param=full; format=json", "Access-Control-Expose-Headers": "ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval", "Access-Control-Allow-Origin": "*", "Content-Security-Policy": "default-src 'none'", "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload", "X-Content-Type-Options": "nosniff", "X-Frame-Options": "deny", "X-XSS-Protection": "1; mode=block", "X-Runtime-rack": "0.046608", "Content-Encoding": "gzip", "X-GitHub-Request-Id": "A918:04CE:2DACE1:611CE8:5A4AA43F"}, "status": {"code": 200, "message": "OK"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/collaborators?per_page=100"}, "recorded_at": "2018-01-01T21:12:31"}], "recorded_with": "betamax/0.8.0"}
1+
{"http_interactions": [{"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["github3.py/1.0.2"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "Connection": ["keep-alive"], "Accept-Charset": ["utf-8"], "Content-Type": ["application/json"], "Authorization": ["token <AUTH_TOKEN>"]}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py"}, "response": {"body": {"encoding": "utf-8", "base64_string": "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", "string": ""}, "headers": {"Server": ["GitHub.com"], "Date": ["Sun, 08 Apr 2018 11:38:33 GMT"], "Content-Type": ["application/json; charset=utf-8"], "Transfer-Encoding": ["chunked"], "Status": ["200 OK"], "X-RateLimit-Limit": ["5000"], "X-RateLimit-Remaining": ["4995"], "X-RateLimit-Reset": ["1523190898"], "Cache-Control": ["private, max-age=60, s-maxage=60"], "Vary": ["Accept, Authorization, Cookie, X-GitHub-OTP"], "ETag": ["W/\"4f6acd3d29a3cdb30850a23edb7b9fc7\""], "Last-Modified": ["Wed, 22 Jun 2016 15:53:36 GMT"], "X-OAuth-Scopes": ["repo"], "X-Accepted-OAuth-Scopes": ["repo"], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Access-Control-Allow-Origin": ["*"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "X-Frame-Options": ["deny"], "X-Content-Type-Options": ["nosniff"], "X-XSS-Protection": ["1; mode=block"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Security-Policy": ["default-src 'none'"], "X-Runtime-rack": ["0.062171"], "Content-Encoding": ["gzip"], "X-GitHub-Request-Id": ["DA83:5063:D35324:1E0841C:5AC9FF39"]}, "status": {"code": 200, "message": "OK"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py"}, "recorded_at": "2018-04-08T11:38:33"}, {"request": {"body": {"encoding": "utf-8", "string": ""}, "headers": {"User-Agent": ["github3.py/1.0.2"], "Accept-Encoding": ["gzip, deflate"], "Accept": ["application/vnd.github.v3.full+json"], "Connection": ["keep-alive"], "Accept-Charset": ["utf-8"], "Content-Type": ["application/json"], "Authorization": ["token <AUTH_TOKEN>"]}, "method": "GET", "uri": "https://api.github.com/repos/sigmavirus24/github3.py/collaborators?affiliation=all&per_page=100"}, "response": {"body": {"encoding": "utf-8", "base64_string": "H4sIAAAAAAAAA52TwUrEMBCG3yXnZcPiKloQ0XfwJFKy7Ww7mCYhM+m6ln13J20V7EW6pw5Jvi9/J8nboKxv0KlCPbs6gqEXU318qo3CWhW724eb/f3dRpnesIllilYWtsyBCq2nQdptG+Q2HRJBrLxjcLytfKeTnvGn/nEvwibOlmxWMrCwBZxFEy020otMLXd2EWLae0QWi4/eWn8SyzL2fxvpX1JCTjW65kqLkIP23IJ0T37pkhuBxOtDjdSg86fEOntIjiRCvTrYzEmsk5NEg44Q/ChMB6oiBkbv1gf8Q4vNx8Y4/DLX2YQmkeRo66OMlNDQy2Vcj0/YoEPE3lTn3JoIFWAvzb5SueDFyOcA8g5e5VLk1iNDaeouv8SjsQQbFSB2SJTPQhWDmic5pjyXqFXFT23lVeb6cnn/BsNEj4LQAwAA", "string": ""}, "headers": {"Server": ["GitHub.com"], "Date": ["Sun, 08 Apr 2018 11:38:33 GMT"], "Content-Type": ["application/json; charset=utf-8"], "Transfer-Encoding": ["chunked"], "Status": ["200 OK"], "X-RateLimit-Limit": ["5000"], "X-RateLimit-Remaining": ["4994"], "X-RateLimit-Reset": ["1523190898"], "Cache-Control": ["private, max-age=60, s-maxage=60"], "Vary": ["Accept, Authorization, Cookie, X-GitHub-OTP"], "ETag": ["W/\"3c163e26de769d11ae1efcf77efcc274\""], "X-OAuth-Scopes": ["repo"], "X-Accepted-OAuth-Scopes": [""], "X-GitHub-Media-Type": ["github.v3; param=full; format=json"], "Access-Control-Expose-Headers": ["ETag, Link, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval"], "Access-Control-Allow-Origin": ["*"], "Strict-Transport-Security": ["max-age=31536000; includeSubdomains; preload"], "X-Frame-Options": ["deny"], "X-Content-Type-Options": ["nosniff"], "X-XSS-Protection": ["1; mode=block"], "Referrer-Policy": ["origin-when-cross-origin, strict-origin-when-cross-origin"], "Content-Security-Policy": ["default-src 'none'"], "X-Runtime-rack": ["0.043074"], "Content-Encoding": ["gzip"], "X-GitHub-Request-Id": ["DA83:5063:D35325:1E08424:5AC9FF39"]}, "status": {"code": 200, "message": "OK"}, "url": "https://api.github.com/repos/sigmavirus24/github3.py/collaborators?affiliation=all&per_page=100"}, "recorded_at": "2018-04-08T11:38:33"}], "recorded_with": "betamax/0.8.1"}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy