From be39528aabda7d025193f2ab1f1de6e98166db23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20G=C3=A5rdenberg?= Date: Fri, 28 May 2021 16:34:08 +0200 Subject: [PATCH 1/7] fix(GithubEnterpriseIntegration): Adding Authorization-header for installations-request GitHub Enterprise has deprecated using `access_token` only in querystring. Response from newer versions: ```json { "message": "Must specify access token via Authorization header", "documentation_url": "https://docs.github.com/enterprise/3.0/v3/#oauth2-token-sent-in-a-header" } ``` --- src/sentry/integrations/github_enterprise/integration.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sentry/integrations/github_enterprise/integration.py b/src/sentry/integrations/github_enterprise/integration.py index bbbe76bd08b427..ec5aba2bb1b493 100644 --- a/src/sentry/integrations/github_enterprise/integration.py +++ b/src/sentry/integrations/github_enterprise/integration.py @@ -312,7 +312,10 @@ def get_installation_info(self, installation_data, access_token, installation_id resp = session.get( "https://{}/api/v3/user/installations".format(installation_data["url"]), params={"access_token": access_token}, - headers={"Accept": "application/vnd.github.machine-man-preview+json"}, + headers={ + "Accept": "application/vnd.github.machine-man-preview+json", + "Authorization": "token {}".format(access_token) + }, verify=installation_data["verify_ssl"], ) resp.raise_for_status() From c51dbf5b090d7375e991f56299d49fbcb0b51a9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20G=C3=A5rdenberg?= Date: Tue, 1 Jun 2021 23:02:46 +0200 Subject: [PATCH 2/7] fix(GitHub Enterprise): Removed query param from request --- src/sentry/integrations/github_enterprise/integration.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sentry/integrations/github_enterprise/integration.py b/src/sentry/integrations/github_enterprise/integration.py index ec5aba2bb1b493..a06ddf7a386c7e 100644 --- a/src/sentry/integrations/github_enterprise/integration.py +++ b/src/sentry/integrations/github_enterprise/integration.py @@ -311,7 +311,6 @@ def get_installation_info(self, installation_data, access_token, installation_id resp = session.get( "https://{}/api/v3/user/installations".format(installation_data["url"]), - params={"access_token": access_token}, headers={ "Accept": "application/vnd.github.machine-man-preview+json", "Authorization": "token {}".format(access_token) From ada872f89b01f4121a503249343dff2ec034ab72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20G=C3=A5rdenberg?= Date: Tue, 1 Jun 2021 23:06:42 +0200 Subject: [PATCH 3/7] test(GitHub Enterprise): Added `match_querystring` to installations request --- tests/sentry/integrations/github_enterprise/test_integration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sentry/integrations/github_enterprise/test_integration.py b/tests/sentry/integrations/github_enterprise/test_integration.py index e186788f43456c..2650fa992cdb1a 100644 --- a/tests/sentry/integrations/github_enterprise/test_integration.py +++ b/tests/sentry/integrations/github_enterprise/test_integration.py @@ -97,7 +97,7 @@ def assert_setup_flow( responses.add( responses.GET, self.base_url + "/user/installations", - json={"installations": [{"id": installation_id}]}, + json={"installations": [{"id": installation_id}], match_querystring=True}, ) resp = self.client.get( From 3d33da1d8aa5e7a9df4a11c3c75427983f9e5421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20G=C3=A5rdenberg?= Date: Tue, 1 Jun 2021 23:40:34 +0200 Subject: [PATCH 4/7] test(GitHub Enterprise): Added the match_querystring at the wrong level. --- .../sentry/integrations/github_enterprise/test_integration.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/sentry/integrations/github_enterprise/test_integration.py b/tests/sentry/integrations/github_enterprise/test_integration.py index 2650fa992cdb1a..c5191b3fe076c5 100644 --- a/tests/sentry/integrations/github_enterprise/test_integration.py +++ b/tests/sentry/integrations/github_enterprise/test_integration.py @@ -97,7 +97,8 @@ def assert_setup_flow( responses.add( responses.GET, self.base_url + "/user/installations", - json={"installations": [{"id": installation_id}], match_querystring=True}, + json={"installations": [{"id": installation_id}]}, + match_querystring=True, ) resp = self.client.get( From e292f15c6e80887d5306ded55416a704e6c40242 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Wed, 2 Jun 2021 00:53:05 +0300 Subject: [PATCH 5/7] Fix lint Co-authored-by: MeredithAnya --- src/sentry/integrations/github_enterprise/integration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/integrations/github_enterprise/integration.py b/src/sentry/integrations/github_enterprise/integration.py index a06ddf7a386c7e..019100d61978ec 100644 --- a/src/sentry/integrations/github_enterprise/integration.py +++ b/src/sentry/integrations/github_enterprise/integration.py @@ -313,7 +313,7 @@ def get_installation_info(self, installation_data, access_token, installation_id "https://{}/api/v3/user/installations".format(installation_data["url"]), headers={ "Accept": "application/vnd.github.machine-man-preview+json", - "Authorization": "token {}".format(access_token) + "Authorization": "token {}".format(access_token), }, verify=installation_data["verify_ssl"], ) From eedd455a0c063e8c2eec5ce448346af7125dbee3 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Wed, 2 Jun 2021 00:55:58 +0300 Subject: [PATCH 6/7] f-strings ftw --- src/sentry/integrations/github_enterprise/integration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/integrations/github_enterprise/integration.py b/src/sentry/integrations/github_enterprise/integration.py index 019100d61978ec..996ba1699fcc6a 100644 --- a/src/sentry/integrations/github_enterprise/integration.py +++ b/src/sentry/integrations/github_enterprise/integration.py @@ -313,7 +313,7 @@ def get_installation_info(self, installation_data, access_token, installation_id "https://{}/api/v3/user/installations".format(installation_data["url"]), headers={ "Accept": "application/vnd.github.machine-man-preview+json", - "Authorization": "token {}".format(access_token), + f"Authorization": "token {access_token}", }, verify=installation_data["verify_ssl"], ) From c014b2f6005d4a145e8f60bedf6508a90cfd19cc Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Wed, 2 Jun 2021 00:58:35 +0300 Subject: [PATCH 7/7] fix lint once and for all --- src/sentry/integrations/github_enterprise/integration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/integrations/github_enterprise/integration.py b/src/sentry/integrations/github_enterprise/integration.py index 996ba1699fcc6a..42426a3257585d 100644 --- a/src/sentry/integrations/github_enterprise/integration.py +++ b/src/sentry/integrations/github_enterprise/integration.py @@ -313,7 +313,7 @@ def get_installation_info(self, installation_data, access_token, installation_id "https://{}/api/v3/user/installations".format(installation_data["url"]), headers={ "Accept": "application/vnd.github.machine-man-preview+json", - f"Authorization": "token {access_token}", + "Authorization": f"token {access_token}", }, verify=installation_data["verify_ssl"], )