Skip to content

Commit 14e7cb2

Browse files
committed
Use authenticated requests for GitHub REST API calls
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent df56db0 commit 14e7cb2

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

src/fetchcode/package_util.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def get_default_package(cls, purl):
5555
namespace = purl.namespace
5656
base_path = "https://api.github.com/repos"
5757
api_url = f"{base_path}/{namespace}/{name}"
58-
response = utils.get_response(api_url)
58+
response = utils.get_github_rest(api_url)
5959
homepage_url = response.get("homepage")
6060
vcs_url = response.get("git_url")
6161
github_url = "https://github.com"
@@ -123,7 +123,7 @@ def _get_github_packages(purl, version_regex, ignored_tag_regex, default_package
123123
else:
124124
version = tag
125125

126-
version = version.strip("Vv").strip()
126+
version = version.strip("Vv").strip().replace("_", ".")
127127
if not version or not version[0].isdigit():
128128
continue
129129

@@ -227,7 +227,7 @@ def get_package_info(cls, gh_purl):
227227
package_dict["type"] = "openssl"
228228
package_dict["namespace"] = None
229229
package_dict["name"] = "openssl"
230-
package_dict["version"] = package_dict["version"].replace("_", ".")
230+
package_dict["version"] = package_dict["version"]
231231

232232
yield package_from_dict(package_dict)
233233

@@ -251,7 +251,7 @@ def get_package_info(cls, gh_purl):
251251
package_dict["type"] = "generic"
252252
package_dict["namespace"] = None
253253
package_dict["name"] = "erofs-utils"
254-
package_dict["version"] = package_dict["version"].replace("_", ".")
254+
package_dict["version"] = package_dict["version"]
255255

256256
yield package_from_dict(package_dict)
257257

@@ -279,7 +279,7 @@ def get_package_info(cls, gh_purl, package_name):
279279
package_dict["type"] = "generic"
280280
package_dict["namespace"] = None
281281
package_dict["name"] = package_name
282-
package_dict["version"] = package_dict["version"].replace("_", ".")
282+
package_dict["version"] = package_dict["version"]
283283

284284
yield package_from_dict(package_dict)
285285

src/fetchcode/utils.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,18 @@ class GitHubTokenError(Exception):
117117
class GraphQLError(Exception):
118118
pass
119119

120-
121-
def github_response(graphql_query):
120+
def get_github_token():
122121
gh_token = os.environ.get("GH_TOKEN", None)
123122
if not gh_token:
124123
from dotenv import load_dotenv
125124

126125
load_dotenv()
127126
gh_token = os.environ.get("GH_TOKEN", None)
127+
return gh_token
128+
129+
130+
def github_response(graphql_query):
131+
gh_token = get_github_token()
128132

129133
if not gh_token:
130134
msg = (
@@ -148,12 +152,21 @@ def github_response(graphql_query):
148152

149153
return response
150154

155+
def get_github_rest(url):
156+
headers = None
157+
if gh_token := get_github_token():
158+
headers = {
159+
"Authorization": f"Bearer {gh_token}",
160+
}
161+
162+
return get_response(url, headers)
163+
151164

152-
def get_response(url):
165+
def get_response(url, headers=None):
153166
"""
154167
Generate `Package` object for a `url` string
155168
"""
156-
resp = requests.get(url)
169+
resp = requests.get(url, headers=headers)
157170
if resp.status_code == 200:
158171
return resp.json()
159172

0 commit comments

Comments
 (0)