mirror of
https://github.com/status-im/PyGithub.git
synced 2026-09-02 03:41:08 +00:00
Merge branch 'develop' into topic/ExperimentOnDocumentation
Conflicts: ReadMe.md doc/ChangeLog.md doc/ReferenceOfApis.md doc/ReferenceOfClasses.md github/AuthenticatedUser.py github/Authorization.py github/CommitComment.py github/ContentFile.py github/Download.py github/Gist.py github/GistComment.py github/GitRef.py github/Github.py github/Hook.py github/Issue.py github/IssueComment.py github/Label.py github/Milestone.py github/PullRequest.py github/PullRequestComment.py github/Repository.py github/RepositoryKey.py github/Team.py github/UserKey.py setup.py
This commit is contained in:
+112
-42
@@ -299,7 +299,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: None
|
||||
"""
|
||||
assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"PUT",
|
||||
self.url + "/collaborators/" + collaborator._identity,
|
||||
None,
|
||||
@@ -315,7 +315,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
"""
|
||||
assert isinstance(base, (str, unicode)), base
|
||||
assert isinstance(head, (str, unicode)), head
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/compare/" + base + "..." + head,
|
||||
None,
|
||||
@@ -344,7 +344,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
post_parameters["description"] = description
|
||||
if content_type is not github.GithubObject.NotSet:
|
||||
post_parameters["content_type"] = content_type
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/downloads",
|
||||
None,
|
||||
@@ -365,7 +365,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
"content": content,
|
||||
"encoding": encoding,
|
||||
}
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/git/blobs",
|
||||
None,
|
||||
@@ -397,7 +397,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
post_parameters["author"] = author._identity
|
||||
if committer is not github.GithubObject.NotSet:
|
||||
post_parameters["committer"] = committer._identity
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/git/commits",
|
||||
None,
|
||||
@@ -418,7 +418,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
"ref": ref,
|
||||
"sha": sha,
|
||||
}
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/git/refs",
|
||||
None,
|
||||
@@ -449,7 +449,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
}
|
||||
if tagger is not github.GithubObject.NotSet:
|
||||
post_parameters["tagger"] = tagger._identity
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/git/tags",
|
||||
None,
|
||||
@@ -471,7 +471,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
}
|
||||
if base_tree is not github.GithubObject.NotSet:
|
||||
post_parameters["base_tree"] = base_tree._identity
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/git/trees",
|
||||
None,
|
||||
@@ -500,7 +500,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
post_parameters["events"] = events
|
||||
if active is not github.GithubObject.NotSet:
|
||||
post_parameters["active"] = active
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/hooks",
|
||||
None,
|
||||
@@ -534,7 +534,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
post_parameters["milestone"] = milestone._identity
|
||||
if labels is not github.GithubObject.NotSet:
|
||||
post_parameters["labels"] = [element.name for element in labels]
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/issues",
|
||||
None,
|
||||
@@ -555,7 +555,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
"title": title,
|
||||
"key": key,
|
||||
}
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/keys",
|
||||
None,
|
||||
@@ -576,7 +576,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
"name": name,
|
||||
"color": color,
|
||||
}
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/labels",
|
||||
None,
|
||||
@@ -606,7 +606,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
post_parameters["description"] = description
|
||||
if due_on is not github.GithubObject.NotSet:
|
||||
post_parameters["due_on"] = due_on.strftime("%Y-%m-%d")
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/milestones",
|
||||
None,
|
||||
@@ -644,7 +644,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
|
||||
def __create_pull(self, **kwds):
|
||||
post_parameters = kwds
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/pulls",
|
||||
None,
|
||||
@@ -657,7 +657,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:calls: `DELETE /repos/:user/:repo <http://developer.github.com/v3/todo>`_
|
||||
:rtype: None
|
||||
"""
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"DELETE",
|
||||
self.url,
|
||||
None,
|
||||
@@ -702,7 +702,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
post_parameters["has_downloads"] = has_downloads
|
||||
if default_branch is not github.GithubObject.NotSet:
|
||||
post_parameters["default_branch"] = default_branch
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"PATCH",
|
||||
self.url,
|
||||
None,
|
||||
@@ -722,7 +722,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
url = self.url + "/" + archive_format
|
||||
if ref is not github.GithubObject.NotSet:
|
||||
url += "/" + ref
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
url,
|
||||
None,
|
||||
@@ -749,7 +749,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Branch.Branch`
|
||||
"""
|
||||
assert isinstance(branch, (str, unicode)), branch
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/branches/" + branch,
|
||||
None,
|
||||
@@ -788,7 +788,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.CommitComment.CommitComment`
|
||||
"""
|
||||
assert isinstance(id, (int, long)), id
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/comments/" + str(id),
|
||||
None,
|
||||
@@ -815,7 +815,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Commit.Commit`
|
||||
"""
|
||||
assert isinstance(sha, (str, unicode)), sha
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/commits/" + sha,
|
||||
None,
|
||||
@@ -846,7 +846,14 @@ class Repository(github.GithubObject.GithubObject):
|
||||
|
||||
def get_contents(self, path, ref=github.GithubObject.NotSet):
|
||||
"""
|
||||
:calls: `GET /repos/:user/:repo/contents/:path <http://developer.github.com/v3/todo>`_
|
||||
:param path: string
|
||||
:param ref: string
|
||||
:rtype: :class:`github.ContentFile.ContentFile`
|
||||
"""
|
||||
return self.get_file_contents(path, ref)
|
||||
|
||||
def get_file_contents(self, path, ref=github.GithubObject.NotSet):
|
||||
"""
|
||||
:param path: string
|
||||
:param ref: string
|
||||
:rtype: :class:`github.ContentFile.ContentFile`
|
||||
@@ -856,7 +863,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
url_parameters = dict()
|
||||
if ref is not github.GithubObject.NotSet:
|
||||
url_parameters["ref"] = ref
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/contents" + path,
|
||||
url_parameters,
|
||||
@@ -864,6 +871,28 @@ class Repository(github.GithubObject.GithubObject):
|
||||
)
|
||||
return github.ContentFile.ContentFile(self._requester, data, completed=True)
|
||||
|
||||
def get_dir_contents(self, path, ref=github.GithubObject.NotSet):
|
||||
"""
|
||||
:param path: string
|
||||
:param ref: string
|
||||
:rtype: list of :class:`github.ContentFile.ContentFile`
|
||||
"""
|
||||
assert isinstance(path, (str, unicode)), path
|
||||
assert ref is github.GithubObject.NotSet or isinstance(ref, (str, unicode)), ref
|
||||
url_parameters = dict()
|
||||
if ref is not github.GithubObject.NotSet:
|
||||
url_parameters["ref"] = ref
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/contents" + path,
|
||||
url_parameters,
|
||||
None
|
||||
)
|
||||
return [
|
||||
github.ContentFile.ContentFile(self._requester, attributes, completed=attributes["type"]!="file") # Lazy completion only makes sense for files. See discussion here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130
|
||||
for attributes in data
|
||||
]
|
||||
|
||||
def get_contributors(self):
|
||||
"""
|
||||
:calls: `GET /repos/:user/:repo/contributors <http://developer.github.com/v3/todo>`_
|
||||
@@ -883,7 +912,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Download.Download`
|
||||
"""
|
||||
assert isinstance(id, (int, long)), id
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/downloads/" + str(id),
|
||||
None,
|
||||
@@ -934,7 +963,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.GitBlob.GitBlob`
|
||||
"""
|
||||
assert isinstance(sha, (str, unicode)), sha
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/git/blobs/" + sha,
|
||||
None,
|
||||
@@ -949,7 +978,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.GitCommit.GitCommit`
|
||||
"""
|
||||
assert isinstance(sha, (str, unicode)), sha
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/git/commits/" + sha,
|
||||
None,
|
||||
@@ -967,7 +996,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
if not self._requester.FIX_REPO_GET_GIT_REF:
|
||||
prefix = "/git/"
|
||||
assert isinstance(ref, (str, unicode)), ref
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + prefix + ref,
|
||||
None,
|
||||
@@ -994,7 +1023,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.GitTag.GitTag`
|
||||
"""
|
||||
assert isinstance(sha, (str, unicode)), sha
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/git/tags/" + sha,
|
||||
None,
|
||||
@@ -1014,7 +1043,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
url_parameters = dict()
|
||||
if recursive is not github.GithubObject.NotSet:
|
||||
url_parameters["recursive"] = recursive
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/git/trees/" + sha,
|
||||
url_parameters,
|
||||
@@ -1029,7 +1058,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Hook.Hook`
|
||||
"""
|
||||
assert isinstance(id, (int, long)), id
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/hooks/" + str(id),
|
||||
None,
|
||||
@@ -1056,7 +1085,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Issue.Issue`
|
||||
"""
|
||||
assert isinstance(number, (int, long)), number
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/issues/" + str(number),
|
||||
None,
|
||||
@@ -1147,7 +1176,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.IssueEvent.IssueEvent`
|
||||
"""
|
||||
assert isinstance(id, (int, long)), id
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/issues/events/" + str(id),
|
||||
None,
|
||||
@@ -1174,7 +1203,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.RepositoryKey.RepositoryKey`
|
||||
"""
|
||||
assert isinstance(id, (int, long)), id
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/keys/" + str(id),
|
||||
None,
|
||||
@@ -1201,7 +1230,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Label.Label`
|
||||
"""
|
||||
assert isinstance(name, (str, unicode)), name
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/labels/" + urllib.quote(name),
|
||||
None,
|
||||
@@ -1226,7 +1255,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:calls: `GET /repos/:user/:repo/languages <http://developer.github.com/v3/todo>`_
|
||||
:rtype: dict of string to integer
|
||||
"""
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/languages",
|
||||
None,
|
||||
@@ -1241,7 +1270,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.Milestone.Milestone`
|
||||
"""
|
||||
assert isinstance(number, (int, long)), number
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/milestones/" + str(number),
|
||||
None,
|
||||
@@ -1293,7 +1322,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: :class:`github.PullRequest.PullRequest`
|
||||
"""
|
||||
assert isinstance(number, (int, long)), number
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/pulls/" + str(number),
|
||||
None,
|
||||
@@ -1363,7 +1392,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
url_parameters = dict()
|
||||
if ref is not github.GithubObject.NotSet:
|
||||
url_parameters["ref"] = ref
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
self.url + "/readme",
|
||||
url_parameters,
|
||||
@@ -1438,7 +1467,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: bool
|
||||
"""
|
||||
assert isinstance(assignee, github.NamedUser.NamedUser), assignee
|
||||
status, headers, data = self._requester.requestRaw(
|
||||
status, headers, data = self._requester.requestJson(
|
||||
"GET",
|
||||
self.url + "/assignees/" + assignee._identity,
|
||||
None,
|
||||
@@ -1453,7 +1482,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: bool
|
||||
"""
|
||||
assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator
|
||||
status, headers, data = self._requester.requestRaw(
|
||||
status, headers, data = self._requester.requestJson(
|
||||
"GET",
|
||||
self.url + "/collaborators/" + collaborator._identity,
|
||||
None,
|
||||
@@ -1470,7 +1499,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
"""
|
||||
assert state in ["open", "closed"], state
|
||||
assert isinstance(keyword, (str, unicode)), keyword
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"GET",
|
||||
"/legacy/issues/search/" + self.owner.login + "/" + self.name + "/" + state + "/" + urllib.quote(keyword),
|
||||
None,
|
||||
@@ -1498,7 +1527,7 @@ class Repository(github.GithubObject.GithubObject):
|
||||
}
|
||||
if commit_message is not github.GithubObject.NotSet:
|
||||
post_parameters["commit_message"] = commit_message
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"POST",
|
||||
self.url + "/merges",
|
||||
None,
|
||||
@@ -1516,13 +1545,54 @@ class Repository(github.GithubObject.GithubObject):
|
||||
:rtype: None
|
||||
"""
|
||||
assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
headers, data = self._requester.requestJsonAndCheck(
|
||||
"DELETE",
|
||||
self.url + "/collaborators/" + collaborator._identity,
|
||||
None,
|
||||
None
|
||||
)
|
||||
|
||||
def subscribe_to_hub(self, event, callback, secret=github.GithubObject.NotSet):
|
||||
"""
|
||||
:calls: `POST /hub <http://developer.github.com/v3/todo>`_
|
||||
:param event: string
|
||||
:param callback: string
|
||||
:param secret: string
|
||||
:rtype: None
|
||||
"""
|
||||
return self._hub("subscribe", event, callback, secret)
|
||||
|
||||
def unsubscribe_from_hub(self, event, callback):
|
||||
"""
|
||||
:calls: `POST /hub <http://developer.github.com/v3/todo>`_
|
||||
:param event: string
|
||||
:param callback: string
|
||||
:param secret: string
|
||||
:rtype: None
|
||||
"""
|
||||
return self._hub("unsubscribe", event, callback, github.GithubObject.NotSet)
|
||||
|
||||
def _hub(self, mode, event, callback, secret):
|
||||
assert isinstance(mode, (str, unicode)), mode
|
||||
assert isinstance(event, (str, unicode)), event
|
||||
assert isinstance(callback, (str, unicode)), callback
|
||||
assert secret is github.GithubObject.NotSet or isinstance(secret, (str, unicode)), secret
|
||||
|
||||
post_parameters = {
|
||||
"hub.mode": mode,
|
||||
"hub.topic": "https://github.com/" + self._full_name + "/events/" + event,
|
||||
"hub.callback": callback,
|
||||
}
|
||||
if secret is not github.GithubObject.NotSet:
|
||||
post_parameters["hub.secret"] = secret
|
||||
|
||||
responseHeaders, output = self._requester.requestMultipartAndCheck(
|
||||
"POST",
|
||||
"/hub",
|
||||
None,
|
||||
post_parameters,
|
||||
)
|
||||
|
||||
@property
|
||||
def _identity(self):
|
||||
return self.owner.login + "/" + self.name
|
||||
|
||||
Reference in New Issue
Block a user