mirror of
https://github.com/kennethreitz-archive/github2.git
synced 2026-06-05 15:40:19 +00:00
Carry an explicit method so we can still POST even when there are no extra data (such as for repos.remove_collaborator)
This commit is contained in:
+3
-2
@@ -34,8 +34,9 @@ class GithubCommand(object):
|
||||
|
||||
def make_request(self, command, *args, **kwargs):
|
||||
filter = kwargs.get("filter")
|
||||
post_data = kwargs.get("post_data")
|
||||
if post_data:
|
||||
post_data = kwargs.get("post_data") or {}
|
||||
method = kwargs.get("method", "GET")
|
||||
if post_data or method.upper() == "POST":
|
||||
response = self.request.post(self.domain, command, *args,
|
||||
**post_data)
|
||||
else:
|
||||
|
||||
@@ -66,7 +66,7 @@ class Repositories(GithubCommand):
|
||||
|
||||
def remove_collaborator(self, repo_name, username):
|
||||
return self.make_request("collaborators", repo_name, "remove",
|
||||
username)
|
||||
username, method="POST")
|
||||
|
||||
def network(self, project):
|
||||
return self.make_request("show", project, "network", filter="network")
|
||||
|
||||
+8
-8
@@ -47,26 +47,26 @@ class GithubRequest(object):
|
||||
|
||||
def post(self, *path_components, **extra_post_data):
|
||||
path_components = filter(None, path_components)
|
||||
return self.make_request("/".join(path_components), extra_post_data)
|
||||
return self.make_request("/".join(path_components), extra_post_data,
|
||||
method="POST")
|
||||
|
||||
def make_request(self, path, extra_post_data=None):
|
||||
def make_request(self, path, extra_post_data=None, method="GET"):
|
||||
extra_post_data = extra_post_data or {}
|
||||
url = "/".join([self.url_prefix, path])
|
||||
return self.raw_request(url, extra_post_data)
|
||||
return self.raw_request(url, extra_post_data, method=method)
|
||||
|
||||
def raw_request(self, url, extra_post_data):
|
||||
def raw_request(self, url, extra_post_data, method="GET"):
|
||||
resource = urlparse(url)
|
||||
post_data = None
|
||||
headers = self.http_headers
|
||||
headers["Accept"] = "text/html"
|
||||
method = "GET"
|
||||
if extra_post_data:
|
||||
method = method.upper()
|
||||
if extra_post_data or method == "POST":
|
||||
post_data = self.encode_authentication_data(extra_post_data)
|
||||
headers["Content-Length"] = str(len(post_data))
|
||||
method = "POST"
|
||||
connector = self.connector_for_scheme[resource.scheme]
|
||||
connection = connector(resource.hostname, resource.port)
|
||||
connection.request("GET", resource.path, post_data, headers)
|
||||
connection.request(method, resource.path, post_data, headers)
|
||||
response = connection.getresponse()
|
||||
response_text = response.read()
|
||||
if self.debug:
|
||||
|
||||
Reference in New Issue
Block a user