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
| 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"; }