Back to APIs list

Github API examples & templates

Use these vals as a playground to view and fork Github API examples and templates on Val Town. Run any example below or find templates that can be used as a pre-built solution.
Github_ScrapeTrendingRepos
rlesser
Github_ScrapeTrendingRepos
An interactive, runnable TypeScript val by rlesser
githubWebhookWithVerify
vtdocs
githubWebhookWithVerify
An interactive, runnable TypeScript val by vtdocs
ittyRouterExample
tmcw
ittyRouterExample
itty-router This is an example of using the Val Town Web API to integrate with itty-router . Server examples Hono Peko Itty Router Nhttp
HTTP
micromarkExample
tmcw
micromarkExample
micromark micromark is a fantastic choice for formatting Markdown : it's tiny, safe, works great with Val Town.
pollVulkanRSSFeedBug
stevekrouse
pollVulkanRSSFeedBug
An interactive, runnable TypeScript val by stevekrouse
blocks_inner
tmcw
blocks_inner
An interactive, runnable TypeScript val by tmcw
Express (deprecated)
githubEvents
jamesdury
githubEvents
An interactive, runnable TypeScript val by jamesdury
githubEvents
rcoady
githubEvents
An interactive, runnable TypeScript val by rcoady
githubGists
kennyg
githubGists
An interactive, runnable TypeScript val by kennyg
gitHubReleaseTracker
ianvph
gitHubReleaseTracker
An interactive, runnable TypeScript val by ianvph
Cron
githubUser
feb
githubUser
An interactive, runnable TypeScript val by feb
hastscriptExample
tmcw
hastscriptExample
hastscript hastscript is a way to create 'HTML trees' - then you can translate that tree into HTML using hast-util-to-html . It's pretty neat and straightforward to use in Val Town because it supports ESM exports.
minizod
zackoverflow
minizod
minizod Tiny Zod implementation. Why Zod is a dense library, and its module structure (or lack thereof) makes it difficult for bundlers to tree-shake unused modules . Additionally, using Zod in vals requires the await import syntax which means having to wrap every schema in a Promise and awaiting it. This is extremely annoying. So this is a lil-tiny-smol Zod meant for use in vals. A noteworthy use-case is using minizod to generate tyep-safe API calls to run vals outside of Val Town (such as client-side). Type-safe API call example We can use minizod to create type safe HTTP handlers and generate the corresponding code to call them using Val Town's API, all in a type-safe manner. First, create a schema for a function. The following example defines a schema for a function that takes a { name: string } parameter and returns a Promise<{ text: string }> . const minizodExampleSchema = () => @zackoverflow.minizod().chain((z) => z .func() .args(z.tuple().item(z.object({ name: z.string() }))) .ret(z.promise().return(z.object({ text: z.string() }))) ); With a function schema, you can then create an implementation and export it as a val: const minizodExample = @me.minizodExampleSchema().impl(async ( { name }, ) => ({ text: `Hello, ${name}!` })).json() In the above example, we call .impl() on a function schema and pass in a closure which implements the actual body of the function. Here, we simply return a greeting to the name passed in. We can call this val, and it will automatically parse and validate the args we give it: // Errors at compile time and runtime for us! const response = @me.minizodExample({ name: 420 }) Alternatively, we can use the .json() function to use it as a JSON HTTP handler: const minizodExample = @me.minizodExampleSchema().impl(async ( { name }, ) => ({ text: `Hello, ${name}!` })).json() // <-- this part We can now call minizodExample through Val Town's API. Since we defined a schema for it, we know exactly the types of its arguments and return, which means we can generate type-safe code to call the API: let generatedApiCode = @zackoverflow.minizodFunctionGenerateTypescript( // put your username here "zackoverflow", "minizodExample", // put your auth token here "my auth token", @me.minizodExampleSchema(), ); This generates the following the code: export const fetchMinizodExample = async ( ...args: [{ name: string }] ): Promise<Awaited<Promise<{ text: string }>>> => await fetch(`https://api.val.town/v1/run/zackoverflow.minizodExample`, { method: "POST", body: JSON.stringify({ args: [...args], }), headers: { Authorization: "Bearer ksafajslfkjal;kjf;laksjl;fajsdf", }, }).then((res) => res.json());
octokitExample
vtdocs
octokitExample
An interactive, runnable TypeScript val by vtdocs
githubStarred
mklwlod
githubStarred
// GitHub starred repos
githubStarWebhook
neverstew
githubStarWebhook
An interactive, runnable TypeScript val by neverstew