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.
jian avatar
jian
githubStarred
Script
// GitHub starred repos
0
vtdocs avatar
vtdocs
gitHubStars
Script
An interactive, runnable TypeScript val by vtdocs
0
dpointeck avatar
dpointeck
githubStarred
Script
// GitHub starred repos
0
rodrigotellovaltown avatar
rodrigotellovaltown
githubGists
Script
An interactive, runnable TypeScript val by rodrigotellovaltown
0
jshawl avatar
jshawl
githubRepos
Script
An interactive, runnable TypeScript val by jshawl
0
vtdocs avatar
vtdocs
getGithubStars
Script
An interactive, runnable TypeScript val by vtdocs
1
jamesw avatar
jamesw
trendingrepos
Script
// Helper function to format the date for GitHub API query
0
potherca avatar
potherca
githubStarred
Script
// GitHub starred repos
0
tmcw avatar
tmcw
hostedGitInfoExample
Script
hosted-git-info This neat npm module lets you parse a Git URL from GitHub or elsewhere.
0
tmcw avatar
tmcw
githubFollowing
Script
An interactive, runnable TypeScript val by tmcw
0
begoon avatar
begoon
ghdb
HTTP
This val implements a simple key/value database with GitHub, in a CRUD way. The key is a file path within a repository. The value is the file content. The val needs a GitHub token to access the GitHub API, the account name and the repository name. Also, the val needs GHDB_API_KEY variable. This value defines the exptected value of the GHDB_API_KEY header to allow access to the endpoints. Endpoints: GET /data/path/to/file.ext - read file GET /raw/path/to/file.ext - read file from GitHub CDN (10 times faster) DELETE /data/path/to/file.ext - delete file POST /data/path/to/file.ext - create file PUT /data/path/to/file.ext - update/commit file
0
sadfasdfasf avatar
sadfasdfasf
githubStarred
Script
// GitHub starred repos
0
mklwlod avatar
mklwlod
githubStarred
Script
// GitHub starred repos
0
jxnblk avatar
jxnblk
gitHubSync
HTTP
GitHub Sync Sync vals from Val Town to GitHub and back What it does Using a fork of this val, you can specify a list of your own vals to export to a GitHub repo. Log in to the web app rendered by this val to manually click the Export button, which will read the contents of your vals and commit those vals as files to your GitHub repo. If you set up your repo to use the webhook in this val, any changes pushed to the GitHub repo will be synced back to the vals in your list. How to use Fork this val Create a new repo on GitHub for syncing your vals to (it can be public or private as long as you use the appropriate token scope) Add a webhook to your repo that points to your val's /webhook route, e.g. https://jxnblk-githubsync.web.val.run/webhook Create a Secret for your webhook In your Val Town Settings , add that same secret as GHSYNC_WEBHOOK_SECRET On GitHub, create a new GitHub OAuth app Use your val's web URL for the Homepage URL Set your val's /auth route as the Authorization callback URL , e.g. https://jxnblk-githubsync.web.val.run/auth Copy your new OAuth app's Client ID and add that as the GHSYNC_CLIENT_ID env var in Val Town Create and copy a Client Secret and add that as the GHSYNC_CLIENT_SECRET env var in Val Town On GitHub, create a new personal access token Ensure the token has read access to Contents for your repo Copy the access token and add that as the GHSYNC_GITHUB_TOKEN env var in Val Town In your val, edit the config in the val to point to your repo's owner and repo Edit the valNames list to include the name of the vals you'd like to sync to the repo In your val's Settings , ensure that under Permissions , Vals has Read & Write access Open your val's web URL in a new tab and click Log in with GitHub You should see a page listing your vals to be exported and the GitHub repo to sync to (if not, see below ) Click the Export button to sync your vals to the GitHub repo. This can take a moment and you'll need to wait for the browser request to complete. Once your vals are in the GitHub repo, edit them on GitHub or push changes to ensure that the webhook is working. You can check the Requests and Logs tabs for your val to debug any errors Demo This val is synced to GitHub: gitHubSyncDemoVal This is the GitHub repo: jxnblk/valtown-github-sync Troubleshooting If after logging in, you see a How to use GitHub Sync page, ensure that the config.owner in your val matches your GitHub username If the webhook doesn't work, ensure you have the webhook properly configured in the GitHub repo and that the GHSYNC_WEBHOOK_SECRET env var in Val Town matches the value in your GitHub repo. Additional Features The following list are ideas for how to improve this val. Feel free to implement some of these ideas. I would consider accepting pull requests for these features. [ ] Check timestamps on Val Town and GitHub to prevent syncing when an older version would overwrite a newer one [ ] Add an authenticated webhook to sync from Val Town to GitHub (e.g. a Cron val could trigger export to keep vals synced) [ ] A "No-UI" version of this will only webhooks (authentication would need to be considered)
6
yieldray avatar
yieldray
gists
HTTP
Get A Website for Your Gists Example: https://yieldray-gists.web.val.run Usage: fork this val and replace with your github usename
0
onemanwenttomow avatar
onemanwenttomow
getCohortRecentCommits
Script
An interactive, runnable TypeScript val by onemanwenttomow
0