list_releases
Retrieve all releases within a specified Octopus Deploy space to monitor deployment history and track release versions, with optional pagination support for large datasets.
Instructions
List releases in a space
This tool lists all releases in a given space. The space name is required. Optionally provide skip and take parameters for pagination.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | ||
| spaceName | Yes | The space name | |
| take | No |
Implementation Reference
- src/tools/listReleases.ts:22-55 (handler)Handler function that executes the list_releases tool: fetches releases for the given space using Octopus Deploy client and ReleaseRepository, applies pagination if specified, and returns paginated results as JSON text content.async ({ spaceName, skip, take }) => { const configuration = getClientConfigurationFromEnvironment(); const client = await Client.create(configuration); const releaseRepository = new ReleaseRepository(client, spaceName); const releasesResponse = await releaseRepository.list({ skip, take }); return { content: [ { type: "text", text: JSON.stringify({ totalResults: releasesResponse.TotalResults, itemsPerPage: releasesResponse.ItemsPerPage, numberOfPages: releasesResponse.NumberOfPages, lastPageNumber: releasesResponse.LastPageNumber, items: releasesResponse.Items.map(release => ({ id: release.Id, version: release.Version, channelId: release.ChannelId, projectId: release.ProjectId, releaseNotes: release.ReleaseNotes, assembled: release.Assembled, ignoreChannelRules: release.IgnoreChannelRules, selectedPackages: release.SelectedPackages, selectedGitResources: release.SelectedGitResources, buildInformation: release.BuildInformation, customFields: release.CustomFields })) }), }, ], }; }
- src/tools/listReleases.ts:13-17 (schema)Input schema defined using Zod: requires spaceName (string), optional skip and take (numbers) for pagination.{ spaceName: z.string().describe("The space name"), skip: z.number().optional(), take: z.number().optional() },
- src/tools/listReleases.ts:8-57 (registration)Core registration of the 'list_releases' tool within registerListReleasesTool function: calls server.tool with name, description, input schema, output metadata, and handler.server.tool( "list_releases", `List releases in a space This tool lists all releases in a given space. The space name is required. Optionally provide skip and take parameters for pagination.`, { spaceName: z.string().describe("The space name"), skip: z.number().optional(), take: z.number().optional() }, { title: "List all releases in an Octopus Deploy space", readOnlyHint: true, }, async ({ spaceName, skip, take }) => { const configuration = getClientConfigurationFromEnvironment(); const client = await Client.create(configuration); const releaseRepository = new ReleaseRepository(client, spaceName); const releasesResponse = await releaseRepository.list({ skip, take }); return { content: [ { type: "text", text: JSON.stringify({ totalResults: releasesResponse.TotalResults, itemsPerPage: releasesResponse.ItemsPerPage, numberOfPages: releasesResponse.NumberOfPages, lastPageNumber: releasesResponse.LastPageNumber, items: releasesResponse.Items.map(release => ({ id: release.Id, version: release.Version, channelId: release.ChannelId, projectId: release.ProjectId, releaseNotes: release.ReleaseNotes, assembled: release.Assembled, ignoreChannelRules: release.IgnoreChannelRules, selectedPackages: release.SelectedPackages, selectedGitResources: release.SelectedGitResources, buildInformation: release.BuildInformation, customFields: release.CustomFields })) }), }, ], }; } ); }
- src/tools/listReleases.ts:59-63 (registration)Self-registration of the tool into the global TOOL_REGISTRY, enabling conditional registration via src/tools/index.ts based on toolset config.registerToolDefinition({ toolName: "list_releases", config: { toolset: "releases", readOnly: true }, registerFn: registerListReleasesTool, });