From de62aff0fb6119c845ff4e4462ff012ffc8983b6 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Tue, 14 Jul 2026 11:42:31 -0600 Subject: [PATCH] fix(ui): disambiguate repos with the same name in the repository selector The repository CommandItem used the repo name as its cmdk value and the check icon compared only names, so two repos with the same name in different owners/orgs showed the selected checkmark and hover on both entries. Key the item by owner/name and include the owner in the selected comparison. GitLab already keyed by URL and is unaffected. Fixes #4793 --- .../general/generic/save-bitbucket-provider.tsx | 9 ++++++--- .../application/general/generic/save-gitea-provider.tsx | 9 ++++++--- .../application/general/generic/save-github-provider.tsx | 9 ++++++--- .../general/generic/save-bitbucket-provider-compose.tsx | 9 ++++++--- .../general/generic/save-gitea-provider-compose.tsx | 9 ++++++--- .../general/generic/save-github-provider-compose.tsx | 9 ++++++--- 6 files changed, 36 insertions(+), 18 deletions(-) diff --git a/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx b/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx index 2b0ae3f62..fdedc6425 100644 --- a/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx +++ b/apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx @@ -256,7 +256,9 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => { : isLoadingRepositories ? "Loading...." : (repositories?.find( - (repo) => repo.name === field.value.repo, + (repo) => + repo.name === field.value.repo && + repo.owner.username === field.value.owner, )?.name ?? "Select repository")} @@ -283,7 +285,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => { {repositories?.map((repo) => ( { form.setValue("repository", { @@ -303,7 +305,8 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => { { ? "Loading...." : (repositories?.find( (repo: GiteaRepository) => - repo.name === field.value.repo, + repo.name === field.value.repo && + repo.owner.username === field.value.owner, )?.name ?? "Select repository")} @@ -303,7 +304,7 @@ export const SaveGiteaProvider = ({ applicationId }: Props) => { {repositories?.map((repo: GiteaRepository) => { return ( { form.setValue("repository", { @@ -322,7 +323,9 @@ export const SaveGiteaProvider = ({ applicationId }: Props) => { { : isLoadingRepositories ? "Loading...." : (repositories?.find( - (repo) => repo.name === field.value.repo, + (repo) => + repo.name === field.value.repo && + repo.owner.login === field.value.owner, )?.name ?? field.value.repo)} @@ -279,7 +281,7 @@ export const SaveGithubProvider = ({ applicationId }: Props) => { {repositories?.map((repo) => ( { form.setValue("repository", { @@ -298,7 +300,8 @@ export const SaveGithubProvider = ({ applicationId }: Props) => { { : isLoadingRepositories ? "Loading...." : (repositories?.find( - (repo) => repo.name === field.value.repo, + (repo) => + repo.name === field.value.repo && + repo.owner.username === field.value.owner, )?.name ?? "Select repository")} @@ -285,7 +287,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => { {repositories?.map((repo) => ( { form.setValue("repository", { @@ -305,7 +307,8 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => { { : isLoadingRepositories ? "Loading...." : (repositories?.find( - (repo) => repo.name === field.value.repo, + (repo) => + repo.name === field.value.repo && + repo.owner.username === field.value.owner, )?.name ?? "Select repository")} @@ -282,7 +284,7 @@ export const SaveGiteaProviderCompose = ({ composeId }: Props) => { {repositories?.map((repo) => ( { form.setValue("repository", { owner: repo.owner.username, @@ -300,7 +302,8 @@ export const SaveGiteaProviderCompose = ({ composeId }: Props) => { { : isLoadingRepositories ? "Loading...." : (repositories?.find( - (repo) => repo.name === field.value.repo, + (repo) => + repo.name === field.value.repo && + repo.owner.login === field.value.owner, )?.name ?? field.value.repo)} @@ -272,7 +274,7 @@ export const SaveGithubProviderCompose = ({ composeId }: Props) => { {repositories?.map((repo) => ( { form.setValue("repository", { @@ -291,7 +293,8 @@ export const SaveGithubProviderCompose = ({ composeId }: Props) => {