fetchGithubReleases
Retrieve GitHub releases from the Goose repository to track and monitor new software versions and updates for development projects.
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 handler function that fetches GitHub releases from the block/goose repository via the GitHub API and transforms the response into an array of 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)Registers the fetchGithubReleases tool with the FastMCP server, specifying name, description, empty input schema, and execute function that calls the handler and stringifies the result.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 (shared across multiple tools).interface ContentItem { id: string; title: string; url: string; published_at: string; type: "video" | "blog" | "release"; }
- src/server.ts:162-162 (schema)Zod schema for tool input parameters (empty object, no inputs required).parameters: z.object({}),