fetchGithubReleases
Retrieve GitHub releases from the Goose repository to track version updates and changelog information for development monitoring.
Instructions
Fetch ALL GitHub releases from the Goose repo.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server.ts:109-122 (handler)The main handler function that fetches GitHub releases from the block/goose repository using axios and maps the response data to ContentItem objects.async function fetchGithubReleases(): Promise<ContentItem[]> { const response = await axios.get( "https://api.github.com/repos/block/goose/releases", { headers: { Accept: "application/vnd.github+json" } } ); return response.data.map((rel: any) => ({ id: rel.tag_name, title: rel.name || rel.tag_name, url: rel.html_url, published_at: rel.published_at || rel.created_at, type: "release" as const, })); }
- src/server.ts:159-164 (registration)Registration of the 'fetchGithubReleases' tool in the FastMCP server, specifying the name, description, input schema (empty object), and execution function that calls the handler and returns JSON string.server.addTool({ name: "fetchGithubReleases", description: "Fetch ALL GitHub releases from the Goose repo.", parameters: z.object({}), execute: async () => JSON.stringify(await fetchGithubReleases()), });
- src/server.ts:30-36 (schema)TypeScript interface defining the structure of ContentItem objects returned by the tool, serving as the output schema.interface ContentItem { id: string; title: string; url: string; published_at: string; type: "video" | "blog" | "release"; }