From b4fa07334dd54a8f3b49db87de95f250b23bfd27 Mon Sep 17 00:00:00 2001 From: Salman Date: Fri, 16 Feb 2024 02:53:39 +0530 Subject: [PATCH] Update use repo id to avoid ambiguous repo name --- .../src/pages/integrations/github/create.tsx | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/frontend/src/pages/integrations/github/create.tsx b/frontend/src/pages/integrations/github/create.tsx index 7516d98e8..65b0295f8 100644 --- a/frontend/src/pages/integrations/github/create.tsx +++ b/frontend/src/pages/integrations/github/create.tsx @@ -66,6 +66,11 @@ const schema = yup.object({ then: yup.array(yup.string().required()).min(1, "Select at least one repositories") }), + repoId: yup.mixed().when("scope", { + is: "github-env", + then: yup.string().required("Repository is required") + }), + repoName: yup.mixed().when("scope", { is: "github-env", then: yup.string().required("Repository is required") @@ -137,15 +142,13 @@ export default function GitHubCreateIntegrationPage() { } }, [workspace]); - useEffect(() => { - if (integrationAuthGithubEnvs && integrationAuthGithubEnvs?.length > 0) { + if (integrationAuthGithubEnvs && integrationAuthGithubEnvs?.length > 0) { setValue("envId", integrationAuthGithubEnvs[0].envId); - } - else { + } else { setValue("envId", undefined); } - }, [integrationAuthGithubEnvs]) + }, [integrationAuthGithubEnvs]); const onFormSubmit = async (data: FormData) => { try { @@ -187,8 +190,7 @@ export default function GitHubCreateIntegrationPage() { secretPath: data.secretPath, sourceEnvironment: data.selectedSourceEnvironment, scope: data.scope, - owner: integrationAuthOrgs?.find(e=>e.orgId === data.orgId)?.name, // repo owner - targetServiceId: data.orgId, // github org id + owner: integrationAuthOrgs?.find((e) => e.orgId === data.orgId)?.name, metadata: { secretSuffix: data.secretSuffix } @@ -202,9 +204,11 @@ export default function GitHubCreateIntegrationPage() { secretPath: data.secretPath, sourceEnvironment: data.selectedSourceEnvironment, scope: data.scope, - app: repoName, // repo name // TODO: CHANGE THIS STATE INTO YUP - owner: repoOwner, // repo owner - targetEnvironmentId: data.envId, // github environment id + app: repoName, + owner: repoOwner, + targetService: "Repository", + targetServiceId: data.repoId, // github repo id is needed for sync secret + targetEnvironmentId: data.envId, metadata: { secretSuffix: data.secretSuffix } @@ -356,7 +360,10 @@ export default function GitHubCreateIntegrationPage() {
{repoIds.length === 1 ? integrationAuthApps?.reduce( - (acc, { appId, name, owner }) => repoIds[0] === appId ? `${owner}/${name}`: acc, "") + (acc, { appId, name, owner }) => + repoIds[0] === appId ? `${owner}/${name}` : acc, + "" + ) : `${repoIds.length} repositories selected`}
@@ -448,7 +455,7 @@ export default function GitHubCreateIntegrationPage() { {scope === "github-env" && ( ( { - setValue("repoName", e); - setValue( - "repoOwner", - (integrationAuthApps.find((app) => app.name === e) - ?.owner as string) || "" - ); + const selectedRepo = integrationAuthApps.find((app) => app.appId === e); + setValue("repoName", selectedRepo?.name); + setValue("repoOwner", selectedRepo?.owner); onChange(e); }} className="w-full border border-mineshaft-500" @@ -472,7 +476,7 @@ export default function GitHubCreateIntegrationPage() { integrationAuthApps.map((app) => { return ( @@ -597,7 +601,7 @@ export default function GitHubCreateIntegrationPage() { /> ) : (
- +

Something went wrong. Please contact{" "}