From 39e9997d60a024e0eee10a23524757695294a8a9 Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Wed, 7 Oct 2020 17:08:36 -0400 Subject: [PATCH 01/10] Use api for `bypass-checks` --- source/features/bypass-checks.tsx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index df5f890b5fe..860136e7fed 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -1,19 +1,20 @@ +import mem from 'mem'; import onetime from 'onetime'; import {observe} from 'selector-observer'; import * as pageDetect from 'github-url-detection'; import features from '.'; -import fetchDom from '../helpers/fetch-dom'; +import * as api from '../github-helpers/api'; +import {getRepositoryInfo} from '../github-helpers'; -async function bypass(detailsLink: HTMLAnchorElement): Promise { - const directLink = await fetchDom( - detailsLink.href, - '[data-hydro-click*="check_suite.external_click"]' - ); +const getDirectLink = mem(async (runNumber: number): Promise => { + const directLink = await api.v3(`https://api.github.com/repos/${getRepositoryInfo()!.owner!}/${getRepositoryInfo()!.name!}/check-runs/${runNumber}`); + return directLink.details_url; +}); - if (directLink) { - detailsLink.href = directLink.href; - } +async function bypass(detailsLink: HTMLAnchorElement): Promise { + const runNumber = detailsLink.href.split(/\/|=/).pop(); + detailsLink.href = await getDirectLink(Number(runNumber)); } function init(): void { From c1dc13f225853d00c534ba0f3130a9477c4fe9fd Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Wed, 7 Oct 2020 17:48:17 -0400 Subject: [PATCH 02/10] getRepoURL() --- source/features/bypass-checks.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index 860136e7fed..fa8dee2d461 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -5,10 +5,10 @@ import * as pageDetect from 'github-url-detection'; import features from '.'; import * as api from '../github-helpers/api'; -import {getRepositoryInfo} from '../github-helpers'; +import {getRepoURL} from '../github-helpers'; const getDirectLink = mem(async (runNumber: number): Promise => { - const directLink = await api.v3(`https://api.github.com/repos/${getRepositoryInfo()!.owner!}/${getRepositoryInfo()!.name!}/check-runs/${runNumber}`); + const directLink = await api.v3(`https://api.github.com/repos/${getRepoURL()}/check-runs/${runNumber}`); return directLink.details_url; }); From 9509fa38db8da0859f0a1a53afe98155eddcb72a Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Wed, 7 Oct 2020 23:01:52 -0400 Subject: [PATCH 03/10] YO! Will ya stop hardcoding github.com!!?! --- source/features/bypass-checks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index fa8dee2d461..e13c5ac90d7 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -8,7 +8,7 @@ import * as api from '../github-helpers/api'; import {getRepoURL} from '../github-helpers'; const getDirectLink = mem(async (runNumber: number): Promise => { - const directLink = await api.v3(`https://api.github.com/repos/${getRepoURL()}/check-runs/${runNumber}`); + const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${runNumber}`); return directLink.details_url; }); From 4e844934f5af9265c47b76f230837adbc995e3eb Mon Sep 17 00:00:00 2001 From: yakov116 <16872793+yakov116@users.noreply.github.com> Date: Thu, 8 Oct 2020 16:12:04 -0400 Subject: [PATCH 04/10] Update source/features/bypass-checks.tsx Co-authored-by: Federico --- source/features/bypass-checks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index e13c5ac90d7..2f1d5737db6 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -13,7 +13,7 @@ const getDirectLink = mem(async (runNumber: number): Promise => { }); async function bypass(detailsLink: HTMLAnchorElement): Promise { - const runNumber = detailsLink.href.split(/\/|=/).pop(); + const runId = new URLSearchParams(detailsLink).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); detailsLink.href = await getDirectLink(Number(runNumber)); } From ba66ba26da4659a0bb1bf1d9de87fb95be56fc55 Mon Sep 17 00:00:00 2001 From: yakov116 <16872793+yakov116@users.noreply.github.com> Date: Thu, 8 Oct 2020 16:19:22 -0400 Subject: [PATCH 05/10] Update source/features/bypass-checks.tsx --- source/features/bypass-checks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index 2f1d5737db6..8cf638dfc11 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -14,7 +14,7 @@ const getDirectLink = mem(async (runNumber: number): Promise => { async function bypass(detailsLink: HTMLAnchorElement): Promise { const runId = new URLSearchParams(detailsLink).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); - detailsLink.href = await getDirectLink(Number(runNumber)); + detailsLink.href = await getDirectLink(Number(runId)); } function init(): void { From 01b0f0f22c94d29551de7b1c38f8a280007e9162 Mon Sep 17 00:00:00 2001 From: yakov116 <16872793+yakov116@users.noreply.github.com> Date: Thu, 8 Oct 2020 16:20:50 -0400 Subject: [PATCH 06/10] Apply suggestions from code review --- source/features/bypass-checks.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index 8cf638dfc11..e5713a96bd4 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -7,8 +7,8 @@ import features from '.'; import * as api from '../github-helpers/api'; import {getRepoURL} from '../github-helpers'; -const getDirectLink = mem(async (runNumber: number): Promise => { - const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${runNumber}`); +const getDirectLink = mem(async (runId: number): Promise => { + const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${runId}`); return directLink.details_url; }); From 80cfa4e646aadfafa6aeada6bc0450a7b0ec77e3 Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Thu, 8 Oct 2020 17:06:31 -0400 Subject: [PATCH 07/10] Fix --- source/features/bypass-checks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index e5713a96bd4..53c49ee69e1 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -13,7 +13,7 @@ const getDirectLink = mem(async (runId: number): Promise => { }); async function bypass(detailsLink: HTMLAnchorElement): Promise { - const runId = new URLSearchParams(detailsLink).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); + const runId = new URLSearchParams(detailsLink.href).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); detailsLink.href = await getDirectLink(Number(runId)); } From 15b16e157a4586157f15972823d3dc9ed198a6fa Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Thu, 8 Oct 2020 19:18:44 -0400 Subject: [PATCH 08/10] Inline --- source/features/bypass-checks.tsx | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index 53c49ee69e1..8b1571e4484 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -1,4 +1,3 @@ -import mem from 'mem'; import onetime from 'onetime'; import {observe} from 'selector-observer'; import * as pageDetect from 'github-url-detection'; @@ -7,14 +6,10 @@ import features from '.'; import * as api from '../github-helpers/api'; import {getRepoURL} from '../github-helpers'; -const getDirectLink = mem(async (runId: number): Promise => { - const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${runId}`); - return directLink.details_url; -}); - async function bypass(detailsLink: HTMLAnchorElement): Promise { - const runId = new URLSearchParams(detailsLink.href).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); - detailsLink.href = await getDirectLink(Number(runId)); + const runId = new URLSearchParams(detailsLink.search).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); + const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${Number(runId)}`); + detailsLink.href = directLink.details_url; } function init(): void { From 183e2a57bc416d3d4bc3940195391368dab9edba Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Fri, 9 Oct 2020 11:11:53 -0400 Subject: [PATCH 09/10] Remove unnecessary number --- source/features/bypass-checks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index 8b1571e4484..29913cd25e6 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -8,7 +8,7 @@ import {getRepoURL} from '../github-helpers'; async function bypass(detailsLink: HTMLAnchorElement): Promise { const runId = new URLSearchParams(detailsLink.search).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); - const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${Number(runId)}`); + const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${runId}`); detailsLink.href = directLink.details_url; } From 173f6e44b2a42a987953c255c3566c05a421780b Mon Sep 17 00:00:00 2001 From: Yakov <16872793+yakov116@users.noreply.github.com> Date: Fri, 9 Oct 2020 11:14:38 -0400 Subject: [PATCH 10/10] Lint --- source/features/bypass-checks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx index 29913cd25e6..776a3017ee0 100644 --- a/source/features/bypass-checks.tsx +++ b/source/features/bypass-checks.tsx @@ -7,7 +7,7 @@ import * as api from '../github-helpers/api'; import {getRepoURL} from '../github-helpers'; async function bypass(detailsLink: HTMLAnchorElement): Promise { - const runId = new URLSearchParams(detailsLink.search).get('check_run_id') ?? detailsLink.pathname.split('/').pop(); + const runId = new URLSearchParams(detailsLink.search).get('check_run_id') ?? detailsLink.pathname.split('/').pop()!; const directLink = await api.v3(`repos/${getRepoURL()}/check-runs/${runId}`); detailsLink.href = directLink.details_url; }