From 29552a575f10c1273e2016e3de76be58e592cf82 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Mon, 13 Jun 2022 06:50:58 -0700 Subject: [PATCH] Fix validation of git repository identifier in updateProjectGitRepository (#137) Validation logic of the git repository field in the project's settings expected an URL instead of the `owner/name` format --- packages/services/api/src/modules/project/resolvers.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/services/api/src/modules/project/resolvers.ts b/packages/services/api/src/modules/project/resolvers.ts index 39e6c27bd..fa63081ac 100644 --- a/packages/services/api/src/modules/project/resolvers.ts +++ b/packages/services/api/src/modules/project/resolvers.ts @@ -8,6 +8,10 @@ import { z } from 'zod'; const ProjectNameModel = z.string().min(2).max(40); const URLModel = z.string().url().max(200); +const RepoOwnerWithNameModel = z + .string() + .regex(/^[^/]+\/[^/]+$/, 'Expected owner/name format') + .max(200); const MaybeModel = (value: T) => z.union([z.null(), z.undefined(), value]); export const resolvers: ProjectModule.Resolvers & { ProjectType: any } = { @@ -137,7 +141,7 @@ export const resolvers: ProjectModule.Resolvers & { ProjectType: any } = { }, async updateProjectGitRepository(_, { input }, { injector }) { const UpdateProjectGitRepositoryModel = z.object({ - gitRepository: MaybeModel(URLModel), + gitRepository: MaybeModel(RepoOwnerWithNameModel), }); const result = UpdateProjectGitRepositoryModel.safeParse(input);