Skip to content

Commit 85a9124

Browse files
mikeagesfdye
authored andcommitted
Add ability to skip SSL verify from requests (#758)
1 parent de6c2ec commit 85a9124

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

github/MainClass.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class Github(object):
8181
This is the main class you instantiate to access the Github API v3. Optional parameters allow different authentication methods.
8282
"""
8383

84-
def __init__(self, login_or_token=None, password=None, base_url=DEFAULT_BASE_URL, timeout=DEFAULT_TIMEOUT, client_id=None, client_secret=None, user_agent='PyGithub/Python', per_page=DEFAULT_PER_PAGE, api_preview=False):
84+
def __init__(self, login_or_token=None, password=None, base_url=DEFAULT_BASE_URL, timeout=DEFAULT_TIMEOUT, client_id=None, client_secret=None, user_agent='PyGithub/Python', per_page=DEFAULT_PER_PAGE, api_preview=False, verify=True):
8585
"""
8686
:param login_or_token: string
8787
:param password: string
@@ -91,6 +91,7 @@ def __init__(self, login_or_token=None, password=None, base_url=DEFAULT_BASE_URL
9191
:param client_secret: string
9292
:param user_agent: string
9393
:param per_page: int
94+
:param verify: boolean or string
9495
"""
9596

9697
assert login_or_token is None or isinstance(login_or_token, (str, unicode)), login_or_token
@@ -101,7 +102,7 @@ def __init__(self, login_or_token=None, password=None, base_url=DEFAULT_BASE_URL
101102
assert client_secret is None or isinstance(client_secret, (str, unicode)), client_secret
102103
assert user_agent is None or isinstance(user_agent, (str, unicode)), user_agent
103104
assert isinstance(api_preview, (bool))
104-
self.__requester = Requester(login_or_token, password, base_url, timeout, client_id, client_secret, user_agent, per_page, api_preview)
105+
self.__requester = Requester(login_or_token, password, base_url, timeout, client_id, client_secret, user_agent, per_page, api_preview, verify)
105106

106107
def __get_FIX_REPO_GET_GIT_REF(self):
107108
"""

github/Requester.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ def __init__(self, host, port=None, strict=False, timeout=None, **kwargs):
9090
self.host = host
9191
self.protocol = "https"
9292
self.timeout = timeout
93+
self.verify = kwargs.get("verify", True)
9394
self.session = requests.Session()
9495

9596
def request(self, verb, url, input, headers):
@@ -101,7 +102,7 @@ def request(self, verb, url, input, headers):
101102
def getresponse(self):
102103
verb = getattr(self.session, self.verb.lower())
103104
url = "%s://%s:%s%s" % (self.protocol, self.host, self.port, self.url)
104-
r = verb(url, headers=self.headers, data=self.input, timeout=self.timeout)
105+
r = verb(url, headers=self.headers, data=self.input, timeout=self.timeout, verify=self.verify)
105106
return RequestsResponse(r)
106107

107108
def close(self):
@@ -115,6 +116,7 @@ def __init__(self, host, port=None, strict=False, timeout=None, **kwargs):
115116
self.host = host
116117
self.protocol = "http"
117118
self.timeout = timeout
119+
self.verify = kwargs.get("verify", True)
118120
self.session = requests.Session()
119121

120122
def request(self, verb, url, input, headers):
@@ -126,7 +128,7 @@ def request(self, verb, url, input, headers):
126128
def getresponse(self):
127129
verb = getattr(self.session, self.verb.lower())
128130
url = "%s://%s:%s%s" % (self.protocol, self.host, self.port, self.url)
129-
r = verb(url, headers=self.headers, data=self.input, timeout=self.timeout)
131+
r = verb(url, headers=self.headers, data=self.input, timeout=self.timeout, verify=self.verify)
130132
return RequestsResponse(r)
131133

132134
def close(self):
@@ -208,7 +210,7 @@ def _initializeDebugFeature(self):
208210

209211
#############################################################
210212

211-
def __init__(self, login_or_token, password, base_url, timeout, client_id, client_secret, user_agent, per_page, api_preview):
213+
def __init__(self, login_or_token, password, base_url, timeout, client_id, client_secret, user_agent, per_page, api_preview, verify):
212214
self._initializeDebugFeature()
213215

214216
if password is not None:
@@ -250,6 +252,7 @@ def __init__(self, login_or_token, password, base_url, timeout, client_id, clien
250252
'See http://developer.github.com/v3/#user-agent-required'
251253
self.__userAgent = user_agent
252254
self.__apiPreview = api_preview
255+
self.__verify = verify
253256

254257
def requestJsonAndCheck(self, verb, url, parameters=None, headers=None, input=None, cnx=None):
255258
return self.__check(*self.requestJson(verb, url, parameters, headers, input, cnx))
@@ -429,6 +432,7 @@ def __createConnection(self):
429432
if not atLeastPython3: # pragma no branch (Branch useful only with Python 3)
430433
kwds["strict"] = True # Useless in Python3, would generate a deprecation warning
431434
kwds["timeout"] = self.__timeout
435+
kwds["verify"] = self.__verify
432436

433437
if self.__persist and self.__connection is not None:
434438
return self.__connection

0 commit comments

Comments
 (0)