diff --git a/reportsizedeltas/reportsizedeltas.py b/reportsizedeltas/reportsizedeltas.py index 8c6e448..b9be40c 100644 --- a/reportsizedeltas/reportsizedeltas.py +++ b/reportsizedeltas/reportsizedeltas.py @@ -625,14 +625,11 @@ def raw_http_request(self, url: str, data: bytes | None = None): logger.info("Opening URL: " + url) - headers = { - "Accept": "application/vnd.github+json", - "Authorization": "Bearer " + self.token, - # GitHub recommends using user name as User-Agent (https://developer.github.com/v3/#user-agent-required) - "User-Agent": self.repository_name.split("/")[0], - "X-GitHub-Api-Version": "2022-11-28", - } - request = urllib.request.Request(url=url, headers=headers, data=data) + request = urllib.request.Request(url=url, data=data) + request.add_unredirected_header(key="Accept", val="application/vnd.github+json") + request.add_unredirected_header(key="Authorization", val="Bearer " + self.token) + request.add_unredirected_header(key="User-Agent", val=self.repository_name.split("/")[0]) + request.add_unredirected_header(key="X-GitHub-Api-Version", val="2022-11-28") retry_count = 0 while True: diff --git a/reportsizedeltas/tests/test_reportsizedeltas.py b/reportsizedeltas/tests/test_reportsizedeltas.py index 454f7a3..4fe96cd 100644 --- a/reportsizedeltas/tests/test_reportsizedeltas.py +++ b/reportsizedeltas/tests/test_reportsizedeltas.py @@ -876,7 +876,13 @@ def test_raw_http_request(mocker): token = "test_token" url = "https://api.github.com/repo/foo/bar" data = "test_data" - request = "test_request" + + class Request: + def add_unredirected_header(self): + pass # pragma: no cover + + mocker.patch.object(Request, "add_unredirected_header") + request = Request() urlopen_return = unittest.mock.sentinel.urlopen_return report_size_deltas = get_reportsizedeltas_object(repository_name=user_name + "/FooRepositoryName", token=token) @@ -889,14 +895,16 @@ def test_raw_http_request(mocker): urllib.request.Request.assert_called_once_with( url=url, - headers={ - "Accept": "application/vnd.github+json", - "Authorization": "Bearer " + token, - "User-Agent": user_name, - "X-GitHub-Api-Version": "2022-11-28", - }, data=data, ) + request.add_unredirected_header.assert_has_calls( + calls=[ + unittest.mock.call(key="Accept", val="application/vnd.github+json"), + unittest.mock.call(key="Authorization", val="Bearer " + token), + unittest.mock.call(key="User-Agent", val=user_name), + unittest.mock.call(key="X-GitHub-Api-Version", val="2022-11-28"), + ] + ) # URL is subject to GitHub API rate limiting report_size_deltas.handle_rate_limiting.assert_called_once()