From c16712689cf205f31e7f306ff501569b588e1ae2 Mon Sep 17 00:00:00 2001 From: e-for-eshaan Date: Wed, 15 May 2024 07:52:05 +0530 Subject: [PATCH 1/4] fixed the image loader for PAT-token --- .../Dashboards/useIntegrationHandlers.tsx | 51 ++++++++----------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/web-server/src/content/Dashboards/useIntegrationHandlers.tsx b/web-server/src/content/Dashboards/useIntegrationHandlers.tsx index 78f21818c..19edd46fb 100644 --- a/web-server/src/content/Dashboards/useIntegrationHandlers.tsx +++ b/web-server/src/content/Dashboards/useIntegrationHandlers.tsx @@ -70,12 +70,11 @@ const ConfigureGithubModalBody: FC<{ }; const handleSubmission = useCallback(async () => { - if (!token.value) { setError('Please enter a valid token'); return; } - isLoading.true(); + depFn(isLoading.true); checkGitHubValidity(token.value) .then(async (isValid) => { if (!isValid) throw new Error('Invalid token'); @@ -84,9 +83,7 @@ const ConfigureGithubModalBody: FC<{ try { const res = await getMissingPATScopes(token.value); if (res.length) { - throw new Error( - `Token is missing scopes: ${res.join(', ')}` - ); + throw new Error(`Token is missing scopes: ${res.join(', ')}`); } } catch (e) { // @ts-ignore @@ -95,16 +92,10 @@ const ConfigureGithubModalBody: FC<{ }) .then(async () => { try { - return await linkProvider( - token.value, - orgId, - Integration.GITHUB - ); + return await linkProvider(token.value, orgId, Integration.GITHUB); } catch (e: any) { throw new Error( - `Failed to link Github${ - e?.message ? `: ${e?.message}` : '' - }`, + `Failed to link Github${e?.message ? `: ${e?.message}` : ''}`, e ); } @@ -127,9 +118,7 @@ const ConfigureGithubModalBody: FC<{ setError(e.message); console.error(`Error while linking token: ${e.message}`, e); }) - .finally(() => { - isLoading.false(); - }); + .finally(isLoading.false); }, [ dispatch, enqueueSnackbar, @@ -219,14 +208,15 @@ const TokenPermissions = () => { }, [position, positionArray.length]); const expand = useBoolState(false); - const isLoading = useBoolState(false); + const imageLoaded = useBoolState(false); // change position every second useEffect(() => { + if (!imageLoaded.value) return; if (expand.value) return depFn(position.set, 0); const interval = setInterval(changePosition, 2000); return () => clearInterval(interval); - }, [changePosition, expand.value, position.set]); + }, [changePosition, expand.value, imageLoaded.value, position.set]); const styles: SxProps[] = useMemo(() => { const baseStyles = { @@ -297,7 +287,7 @@ const TokenPermissions = () => { return (
{ height: expand.value ? '1257px' : '240px', transition: 'all 0.8s ease', position: 'relative', - maxWidth: '100%' + maxWidth: '100%', + background: '#0D1017' }} > { alt="PAT_permissions" /> - + {imageLoaded.value && } - {expandedStyles.map((style, index) => ( - - ))} + {imageLoaded.value && + expandedStyles.map((style, index) => ( + + ))} - {isLoading.value && ( + {!imageLoaded.value && ( { transform: 'translate(-50%, -50%)' }} > - Loading... + Loading... )}
- + Hover to expand
From 707245677d9737da41a1a4e441b56c0b47256280 Mon Sep 17 00:00:00 2001 From: e-for-eshaan Date: Wed, 15 May 2024 08:24:48 +0530 Subject: [PATCH 2/4] fixes the pagination of fetching org-repos for search --- web-server/pages/api/internal/[org_id]/git_provider_org.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/web-server/pages/api/internal/[org_id]/git_provider_org.ts b/web-server/pages/api/internal/[org_id]/git_provider_org.ts index 312cd7a12..ca04eb6b8 100644 --- a/web-server/pages/api/internal/[org_id]/git_provider_org.ts +++ b/web-server/pages/api/internal/[org_id]/git_provider_org.ts @@ -116,9 +116,10 @@ async function getRepos( const nextLink = response.headers.get('Link'); if (nextLink) { - // @ts-ignore - const nextUrl = nextLink.split(',').find((link) => link?.rel === 'next'); - url = nextUrl ? nextUrl.slice(1, -1) : ''; // Extract URL from link header + const nextUrl = nextLink + .split(',') + .find((link) => link.includes('rel="next"')); + url = nextUrl ? nextUrl.trim().split(';')[0].slice(1, -1) : ''; } else { url = ''; } From a025a679ca946ef3e62f5877773ae3fa7f16e38a Mon Sep 17 00:00:00 2001 From: e-for-eshaan Date: Wed, 15 May 2024 12:16:18 +0530 Subject: [PATCH 3/4] adds limit to the pagination requests --- web-server/pages/api/internal/[org_id]/git_provider_org.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/web-server/pages/api/internal/[org_id]/git_provider_org.ts b/web-server/pages/api/internal/[org_id]/git_provider_org.ts index ca04eb6b8..a0e0498b1 100644 --- a/web-server/pages/api/internal/[org_id]/git_provider_org.ts +++ b/web-server/pages/api/internal/[org_id]/git_provider_org.ts @@ -61,6 +61,8 @@ const providerOrgBrandingMap = { gitlab: 'groups' }; +const THRESHOLD = 300; + export const getProviderOrgs = ( org_id: ID, provider: CodeSourceProvidersIntegration @@ -99,8 +101,12 @@ async function getRepos( let allRepos: any[] = []; let url = `${baseUrl}?${params.toString()}`; let response: Response; + let count = 0; do { + if (count >= THRESHOLD) { + break; + } response = await fetch(url, { headers: { Authorization: `token ${token}` @@ -113,6 +119,7 @@ async function getRepos( const data = (await response.json()) as any[]; allRepos = allRepos.concat(data); + count += data.length; const nextLink = response.headers.get('Link'); if (nextLink) { From 9c7afbe711a7229d5bdd1573c4a820ff9f9dfb30 Mon Sep 17 00:00:00 2001 From: e-for-eshaan Date: Wed, 15 May 2024 12:17:02 +0530 Subject: [PATCH 4/4] removes redundant variables --- web-server/pages/api/internal/[org_id]/git_provider_org.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/web-server/pages/api/internal/[org_id]/git_provider_org.ts b/web-server/pages/api/internal/[org_id]/git_provider_org.ts index a0e0498b1..d0837a055 100644 --- a/web-server/pages/api/internal/[org_id]/git_provider_org.ts +++ b/web-server/pages/api/internal/[org_id]/git_provider_org.ts @@ -101,10 +101,9 @@ async function getRepos( let allRepos: any[] = []; let url = `${baseUrl}?${params.toString()}`; let response: Response; - let count = 0; do { - if (count >= THRESHOLD) { + if (allRepos.length >= THRESHOLD) { break; } response = await fetch(url, { @@ -119,7 +118,6 @@ async function getRepos( const data = (await response.json()) as any[]; allRepos = allRepos.concat(data); - count += data.length; const nextLink = response.headers.get('Link'); if (nextLink) {