Skip to content

Commit b9419ed

Browse files
authored
Merge pull request #3539 from Dokploy/3493-when-adding-a-git-repository-as-a-provider-spaces-in-the-repo-name-break-the-repo-selection
feat(bitbucket): add optional slug field for repositories and update …
2 parents ec68492 + 6bc07d7 commit b9419ed

13 files changed

Lines changed: 7100 additions & 9 deletions

File tree

apps/dokploy/__test__/drop/drop.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const baseApp: ApplicationNested = {
2929
applicationId: "",
3030
previewLabels: [],
3131
createEnvFile: true,
32+
bitbucketRepositorySlug: "",
3233
herokuVersion: "",
3334
giteaBranch: "",
3435
buildServerId: "",

apps/dokploy/__test__/traefik/traefik.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const baseApp: ApplicationNested = {
88
applicationId: "",
99
previewLabels: [],
1010
createEnvFile: true,
11+
bitbucketRepositorySlug: "",
1112
herokuVersion: "",
1213
giteaRepository: "",
1314
giteaOwner: "",

apps/dokploy/components/dashboard/application/general/generic/save-bitbucket-provider.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ const BitbucketProviderSchema = z.object({
5454
.object({
5555
repo: z.string().min(1, "Repo is required"),
5656
owner: z.string().min(1, "Owner is required"),
57+
slug: z.string().optional(),
5758
})
5859
.required(),
5960
branch: z.string().min(1, "Branch is required"),
@@ -82,6 +83,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
8283
repository: {
8384
owner: "",
8485
repo: "",
86+
slug: "",
8587
},
8688
bitbucketId: "",
8789
branch: "",
@@ -114,11 +116,14 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
114116
} = api.bitbucket.getBitbucketBranches.useQuery(
115117
{
116118
owner: repository?.owner,
117-
repo: repository?.repo,
119+
repo: repository?.slug || repository?.repo || "",
118120
bitbucketId,
119121
},
120122
{
121-
enabled: !!repository?.owner && !!repository?.repo && !!bitbucketId,
123+
enabled:
124+
!!repository?.owner &&
125+
!!(repository?.slug || repository?.repo) &&
126+
!!bitbucketId,
122127
},
123128
);
124129

@@ -129,6 +134,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
129134
repository: {
130135
repo: data.bitbucketRepository || "",
131136
owner: data.bitbucketOwner || "",
137+
slug: data.bitbucketRepositorySlug || "",
132138
},
133139
buildPath: data.bitbucketBuildPath || "/",
134140
bitbucketId: data.bitbucketId || "",
@@ -142,6 +148,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
142148
await mutateAsync({
143149
bitbucketBranch: data.branch,
144150
bitbucketRepository: data.repository.repo,
151+
bitbucketRepositorySlug: data.repository.slug || data.repository.repo,
145152
bitbucketOwner: data.repository.owner,
146153
bitbucketBuildPath: data.buildPath,
147154
bitbucketId: data.bitbucketId,
@@ -181,6 +188,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
181188
form.setValue("repository", {
182189
owner: "",
183190
repo: "",
191+
slug: "",
184192
});
185193
form.setValue("branch", "");
186194
}}
@@ -217,7 +225,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
217225
<FormLabel>Repository</FormLabel>
218226
{field.value.owner && field.value.repo && (
219227
<Link
220-
href={`https://bitbucket.org/${field.value.owner}/${field.value.repo}`}
228+
href={`https://bitbucket.org/${field.value.owner}/${field.value.slug || field.value.repo}`}
221229
target="_blank"
222230
rel="noopener noreferrer"
223231
className="flex items-center gap-1 text-sm text-muted-foreground hover:text-primary"
@@ -271,6 +279,7 @@ export const SaveBitbucketProvider = ({ applicationId }: Props) => {
271279
form.setValue("repository", {
272280
owner: repo.owner.username as string,
273281
repo: repo.name,
282+
slug: repo.slug,
274283
});
275284
form.setValue("branch", "");
276285
}}

apps/dokploy/components/dashboard/compose/general/generic/save-bitbucket-provider-compose.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ const BitbucketProviderSchema = z.object({
5454
.object({
5555
repo: z.string().min(1, "Repo is required"),
5656
owner: z.string().min(1, "Owner is required"),
57+
slug: z.string().optional(),
5758
})
5859
.required(),
5960
branch: z.string().min(1, "Branch is required"),
@@ -82,6 +83,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
8283
repository: {
8384
owner: "",
8485
repo: "",
86+
slug: "",
8587
},
8688
bitbucketId: "",
8789
branch: "",
@@ -114,11 +116,14 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
114116
} = api.bitbucket.getBitbucketBranches.useQuery(
115117
{
116118
owner: repository?.owner,
117-
repo: repository?.repo,
119+
repo: repository?.slug || repository?.repo || "",
118120
bitbucketId,
119121
},
120122
{
121-
enabled: !!repository?.owner && !!repository?.repo && !!bitbucketId,
123+
enabled:
124+
!!repository?.owner &&
125+
!!(repository?.slug || repository?.repo) &&
126+
!!bitbucketId,
122127
},
123128
);
124129

@@ -129,6 +134,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
129134
repository: {
130135
repo: data.bitbucketRepository || "",
131136
owner: data.bitbucketOwner || "",
137+
slug: data.bitbucketRepositorySlug || "",
132138
},
133139
composePath: data.composePath,
134140
bitbucketId: data.bitbucketId || "",
@@ -142,6 +148,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
142148
await mutateAsync({
143149
bitbucketBranch: data.branch,
144150
bitbucketRepository: data.repository.repo,
151+
bitbucketRepositorySlug: data.repository.slug || data.repository.repo,
145152
bitbucketOwner: data.repository.owner,
146153
bitbucketId: data.bitbucketId,
147154
composePath: data.composePath,
@@ -183,6 +190,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
183190
form.setValue("repository", {
184191
owner: "",
185192
repo: "",
193+
slug: "",
186194
});
187195
form.setValue("branch", "");
188196
}}
@@ -219,7 +227,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
219227
<FormLabel>Repository</FormLabel>
220228
{field.value.owner && field.value.repo && (
221229
<Link
222-
href={`https://bitbucket.org/${field.value.owner}/${field.value.repo}`}
230+
href={`https://bitbucket.org/${field.value.owner}/${field.value.slug || field.value.repo}`}
223231
target="_blank"
224232
rel="noopener noreferrer"
225233
className="flex items-center gap-1 text-sm text-muted-foreground hover:text-primary"
@@ -273,6 +281,7 @@ export const SaveBitbucketProviderCompose = ({ composeId }: Props) => {
273281
form.setValue("repository", {
274282
owner: repo.owner.username as string,
275283
repo: repo.name,
284+
slug: repo.slug,
276285
});
277286
form.setValue("branch", "");
278287
}}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE "application" ADD COLUMN "bitbucketRepositorySlug" text;--> statement-breakpoint
2+
ALTER TABLE "compose" ADD COLUMN "bitbucketRepositorySlug" text;

0 commit comments

Comments
 (0)