UNPKG

sonatype-mcp

Version:

Model Context Protocol server for Sonatype Nexus Repository Manager

67 lines (66 loc) 2.05 kB
/** * Repository service for managing Nexus repositories */ export class RepositoryService { nexusClient; constructor(nexusClient) { this.nexusClient = nexusClient; } /** * List all repositories */ async listRepositories(params = {}) { const queryParams = {}; if (params.format) { queryParams.format = params.format; } if (params.type) { queryParams.type = params.type; } const repositories = await this.nexusClient.get('/service/rest/v1/repositories', { params: queryParams }); return repositories; } /** * Get repository details by name */ async getRepository(name) { const repository = await this.nexusClient.get(`/service/rest/v1/repositories/${encodeURIComponent(name)}`); return repository; } /** * Create a new repository */ async createRepository(repositoryConfig) { const repository = await this.nexusClient.post('/service/rest/v1/repositories', repositoryConfig); return repository; } /** * Update repository configuration */ async updateRepository(name, repositoryConfig) { const repository = await this.nexusClient.put(`/service/rest/v1/repositories/${encodeURIComponent(name)}`, repositoryConfig); return repository; } /** * Delete a repository */ async deleteRepository(name) { await this.nexusClient.delete(`/service/rest/v1/repositories/${encodeURIComponent(name)}`); } /** * Get repository health check */ async getRepositoryHealth(name) { const health = await this.nexusClient.get(`/service/rest/v1/repositories/${encodeURIComponent(name)}/health-check`); return health; } /** * Get repository status */ async getRepositoryStatus(name) { const status = await this.nexusClient.get(`/service/rest/v1/repositories/${encodeURIComponent(name)}/status`); return status; } }