mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-17 20:21:18 +00:00
feat(secret-sync): Add gitlab secret sync
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
import { z } from "zod";
|
||||
|
||||
import { BaseSecretSyncSchema } from "@app/components/secret-syncs/forms/schemas/base-secret-sync-schema";
|
||||
import { SecretSync } from "@app/hooks/api/secretSyncs";
|
||||
import { GitlabSyncScope } from "@app/hooks/api/secretSyncs/types/gitlab-sync";
|
||||
|
||||
export const GitlabSyncDestinationSchema = BaseSecretSyncSchema().merge(
|
||||
z.object({
|
||||
destination: z.literal(SecretSync.Gitlab),
|
||||
destinationConfig: z.discriminatedUnion("scope", [
|
||||
z.object({
|
||||
scope: z.literal(GitlabSyncScope.Individual),
|
||||
projectId: z.string().trim().min(1, "Project ID required"),
|
||||
projectName: z.string().trim().min(1, "Project name required"),
|
||||
targetEnvironment: z.string().optional(),
|
||||
shouldProtectSecrets: z.boolean().optional().default(false),
|
||||
shouldMaskSecrets: z.boolean().optional().default(false),
|
||||
shouldHideSecrets: z.boolean().optional().default(false)
|
||||
}),
|
||||
z.object({
|
||||
scope: z.literal(GitlabSyncScope.Group),
|
||||
projectId: z.string().trim().min(1, "Project ID required"),
|
||||
projectName: z.string().trim().min(1, "Project name required"),
|
||||
targetEnvironment: z.string().optional(),
|
||||
groupId: z.string().trim().min(1, "Group ID required"),
|
||||
shouldProtectSecrets: z.boolean().optional().default(false),
|
||||
shouldMaskSecrets: z.boolean().optional().default(false),
|
||||
shouldHideSecrets: z.boolean().optional().default(false)
|
||||
})
|
||||
])
|
||||
})
|
||||
);
|
||||
@@ -11,6 +11,7 @@ import { DatabricksSyncDestinationSchema } from "./databricks-sync-destination-s
|
||||
import { FlyioSyncDestinationSchema } from "./flyio-sync-destination-schema";
|
||||
import { GcpSyncDestinationSchema } from "./gcp-sync-destination-schema";
|
||||
import { GitHubSyncDestinationSchema } from "./github-sync-destination-schema";
|
||||
import { GitlabSyncDestinationSchema } from "./gitlab-sync-destination-schema";
|
||||
import { HCVaultSyncDestinationSchema } from "./hc-vault-sync-destination-schema";
|
||||
import { HerokuSyncDestinationSchema } from "./heroku-sync-destination-schema";
|
||||
import { HumanitecSyncDestinationSchema } from "./humanitec-sync-destination-schema";
|
||||
@@ -41,7 +42,8 @@ const SecretSyncUnionSchema = z.discriminatedUnion("destination", [
|
||||
OnePassSyncDestinationSchema,
|
||||
HerokuSyncDestinationSchema,
|
||||
RenderSyncDestinationSchema,
|
||||
FlyioSyncDestinationSchema
|
||||
FlyioSyncDestinationSchema,
|
||||
GitlabSyncDestinationSchema
|
||||
]);
|
||||
|
||||
export const SecretSyncFormSchema = SecretSyncUnionSchema;
|
||||
|
||||
Reference in New Issue
Block a user