jfrog_create_virtual_repository
Aggregate multiple repositories into a unified virtual repository in Artifactory, supporting various package types and customizable patterns for artifact inclusion and exclusion.
Instructions
Create a new virtual repository in Artifactory that aggregates multiple repositories
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| artifactoryRequestsCanRetrieveRemoteArtifacts | No | ||
| debianDefaultArchitectures | No | Default architectures for Debian repositories | |
| debianTrivialLayout | No | Whether to use trivial layout for Debian repositories | |
| defaultDeploymentRepo | No | Default deployment repository | |
| description | No | The virtual repository public description | |
| environments | No | Environments to assign the repository to | |
| excludesPattern | No | Pattern to define artifacts to exclude | |
| externalDependenciesEnabled | No | Enable external dependencies (Bower, npm, Go) | |
| externalDependenciesPatterns | No | Patterns for external dependencies | |
| externalDependenciesRemoteRepo | No | Remote repository for external dependencies | |
| forceMavenAuthentication | No | Force authentication for Maven repositories | |
| includesPattern | No | Pattern to define artifacts to include | **/* |
| key | Yes | the key of the repository | |
| keyPair | No | Key pair used for signing | |
| notes | No | Some internal notes | |
| optionalIndexCompressionFormats | No | ||
| packageType | Yes | Package type of the repository | |
| pomRepositoryReferencesCleanupPolicy | No | discard_active_reference | |
| primaryKeyPairRef | No | Primary GPG key pair reference | |
| projectKey | No | Project key to assign the repository to | |
| rclass | Yes | The repository type | |
| repoLayoutRef | No | Repository layout reference | |
| repositories | Yes | List of repository keys to include in the virtual repository | |
| secondaryKeyPairRef | No | Secondary GPG key pair reference |
Implementation Reference
- tools/repositories.ts:146-155 (registration)Tool registration for 'jfrog_create_virtual_repository', including the handler function that validates input with CreateVirtualRepoSchema and calls the createVirtualRepository helper.const createVirtualRepositoryTool = { name: "jfrog_create_virtual_repository", description: "Create a new virtual repository in Artifactory that aggregates multiple repositories", inputSchema: zodToJsonSchema(CreateVirtualRepoSchema), //outputSchema: zodToJsonSchema(JFrogRepositoryCreateResponseSchema), handler: async (args: any) => { const parsedArgs = CreateVirtualRepoSchema.parse(args); return await createVirtualRepository(parsedArgs); } };
- schemas/repositories.ts:183-208 (schema)Input schema (Zod) for the jfrog_create_virtual_repository tool, defining parameters like repositories list, patterns, and virtual repo options.export const CreateVirtualRepoSchema = BaseRepositorySchema.extend({ rclass: z.literal("virtual").describe("The repository type"), repositories: z.array(z.string()).describe("List of repository keys to include in the virtual repository"), description: z.string().optional().describe("The virtual repository public description"), notes: z.string().optional().describe("Some internal notes"), includesPattern: z.string().default("**/*").describe("Pattern to define artifacts to include"), excludesPattern: z.string().default("").describe("Pattern to define artifacts to exclude"), repoLayoutRef: z.string().optional().describe("Repository layout reference"), debianTrivialLayout: z.boolean().default(false).describe("Whether to use trivial layout for Debian repositories"), debianDefaultArchitectures: z.string().optional().describe("Default architectures for Debian repositories"), artifactoryRequestsCanRetrieveRemoteArtifacts: z.boolean().default(false), keyPair: z.string().optional().describe("Key pair used for signing"), pomRepositoryReferencesCleanupPolicy: z.enum([ "discard_active_reference", "discard_any_reference", "nothing" ]).default("discard_active_reference"), defaultDeploymentRepo: z.string().optional().describe("Default deployment repository"), optionalIndexCompressionFormats: z.array(z.enum(["bz2", "lzma", "xz"])).optional(), forceMavenAuthentication: z.boolean().default(false).describe("Force authentication for Maven repositories"), externalDependenciesEnabled: z.boolean().default(false).describe("Enable external dependencies (Bower, npm, Go)"), externalDependenciesPatterns: z.array(z.string()).optional().describe("Patterns for external dependencies"), externalDependenciesRemoteRepo: z.string().optional().describe("Remote repository for external dependencies"), primaryKeyPairRef: z.string().optional().describe("Primary GPG key pair reference"), secondaryKeyPairRef: z.string().optional().describe("Secondary GPG key pair reference") });
- tools/repositories.ts:89-96 (helper)Core helper function implementing the JFrog API call to create a virtual repository via PUT request to /artifactory/api/repositories/{key}.export async function createVirtualRepository(options: z.infer<typeof CreateVirtualRepoSchema>) { const response = await jfrogRequest(`/artifactory/api/repositories/${options.key}`, { method: "PUT", body: options }); return JFrogRepositoryCreateResponseSchema.parse(response); }
- tools/repositories.ts:168-175 (registration)Export of RepositoryTools array registering the jfrog_create_virtual_repository tool (at line 172). This array is imported and spread into the main tools list.export const RepositoryTools =[ checkJfrogAvailabilityTool, createLocalRepositoryTool, createRemoteRepositoryTool, createVirtualRepositoryTool, setFolderPropertyTool, listRepositoriesTool ];
- tools/index.ts:13-23 (registration)Main tools registration array in index.ts that includes all tools by spreading RepositoryTools (containing jfrog_create_virtual_repository).export const tools =[ ...RepositoryTools, ...BuildsTools, ...RuntimeTools, ...AccessTools, ...AQLTools, ...CatalogTools, ...CurationTools, ...PermissionsTools, ...ArtifactSecurityTools, ];