Skip to content

Commit fa666e2

Browse files
authored
Merge pull request #83 from per1234/no-redirect-headers
Don't include HTTP headers from GitHub API request in redirected artifact download request
2 parents 57289ee + d590a75 commit fa666e2

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

reportsizedeltas/reportsizedeltas.py

+5-8
Original file line numberDiff line numberDiff line change
@@ -625,14 +625,11 @@ def raw_http_request(self, url: str, data: bytes | None = None):
625625

626626
logger.info("Opening URL: " + url)
627627

628-
headers = {
629-
"Accept": "application/vnd.github+json",
630-
"Authorization": "Bearer " + self.token,
631-
# GitHub recommends using user name as User-Agent (https://developer.github.com/v3/#user-agent-required)
632-
"User-Agent": self.repository_name.split("/")[0],
633-
"X-GitHub-Api-Version": "2022-11-28",
634-
}
635-
request = urllib.request.Request(url=url, headers=headers, data=data)
628+
request = urllib.request.Request(url=url, data=data)
629+
request.add_unredirected_header(key="Accept", val="application/vnd.github+json")
630+
request.add_unredirected_header(key="Authorization", val="Bearer " + self.token)
631+
request.add_unredirected_header(key="User-Agent", val=self.repository_name.split("/")[0])
632+
request.add_unredirected_header(key="X-GitHub-Api-Version", val="2022-11-28")
636633

637634
retry_count = 0
638635
while True:

reportsizedeltas/tests/test_reportsizedeltas.py

+15-7
Original file line numberDiff line numberDiff line change
@@ -876,7 +876,13 @@ def test_raw_http_request(mocker):
876876
token = "test_token"
877877
url = "https://api.github.com/repo/foo/bar"
878878
data = "test_data"
879-
request = "test_request"
879+
880+
class Request:
881+
def add_unredirected_header(self):
882+
pass # pragma: no cover
883+
884+
mocker.patch.object(Request, "add_unredirected_header")
885+
request = Request()
880886
urlopen_return = unittest.mock.sentinel.urlopen_return
881887

882888
report_size_deltas = get_reportsizedeltas_object(repository_name=user_name + "/FooRepositoryName", token=token)
@@ -889,14 +895,16 @@ def test_raw_http_request(mocker):
889895

890896
urllib.request.Request.assert_called_once_with(
891897
url=url,
892-
headers={
893-
"Accept": "application/vnd.github+json",
894-
"Authorization": "Bearer " + token,
895-
"User-Agent": user_name,
896-
"X-GitHub-Api-Version": "2022-11-28",
897-
},
898898
data=data,
899899
)
900+
request.add_unredirected_header.assert_has_calls(
901+
calls=[
902+
unittest.mock.call(key="Accept", val="application/vnd.github+json"),
903+
unittest.mock.call(key="Authorization", val="Bearer " + token),
904+
unittest.mock.call(key="User-Agent", val=user_name),
905+
unittest.mock.call(key="X-GitHub-Api-Version", val="2022-11-28"),
906+
]
907+
)
900908
# URL is subject to GitHub API rate limiting
901909
report_size_deltas.handle_rate_limiting.assert_called_once()
902910

0 commit comments

Comments
 (0)