Install the GitHub App
Sign in with GitHub, then install the GitPeek app on the repositories you want to share. It only sees the ones you pick.
Pick a repo and a branch, choose when the link expires, and send it. The person you send it to can browse the code in their browser. They can’t clone it, push to it, or see anything else in your account.
Your first link is free. No card needed.
import { createHmac, timingSafeEqual } from "node:crypto";
const WINDOW_MS = 5 * 60 * 1000;
export async function authorize(req: Request) {
const sig = req.headers.get("x-acme-signature");
const ts = req.headers.get("x-acme-timestamp");
if (!sig || !ts) throw new Unauthorized("missing signature");
const age = Date.now() - Number(ts);
if (age > WINDOW_MS) throw new Unauthorized("stale request");
const body = await req.text();
const expected = createHmac("sha256", SECRET)
.update(`${ts}.${body}`)
.digest();
if (!timingSafeEqual(Buffer.from(sig, "hex"), expected)) {
throw new Unauthorized("bad signature");
}
return JSON.parse(body);
}Sign in with GitHub, then install the GitPeek app on the repositories you want to share. It only sees the ones you pick.
Pick the branch and how long the link lasts. Add a password, make it one-time, or ask readers for their email.
Paste the link wherever you talk to them. Your dashboard shows how often it has been opened, and you can delete it at any time.
The person who opens your link does not need a GitHub account.
Each link has its own settings, so an interview take-home and a due-diligence review don’t have to share them.
Pick which branch the link shows. The reader browses that branch only.
An hour for a live interview, a week for a review, or no expiry at all.
Readers enter a password before the code loads. Send it separately from the link.
The link stops working after it has been opened once.
Lets readers select and copy text and download the branch as a ZIP. Turn it off and they can only read.
Readers type their email address before the code loads. It is saved with each view so you can see who opened the link. The address is not verified.
Instead of a dead page, they see a short form for their email and an optional message. The request shows up in your dashboard. Approving it makes a new link to the same repo and branch that lasts 7 days and doesn’t use a credit. You copy it and send it to them.
“Could I have one more day to finish the review?”
Approving makes a new link that lasts 7 days. It doesn’t use a credit.
You pay per link, not per seat. One credit makes one link. Credits don’t expire and there’s no subscription.
Enough to make your first link and see what the reader sees. No card needed.
Buy as many credits as you need, when you need them. Orders of 10 or more get a bulk discount.
repo, read:user and user:email scopes. GitHub’s repo scope covers your private repositories and is broader than read-only. Reading code for a link goes through the GitPeek GitHub App, which you install only on the repositories you choose. [Confirm the App’s exact permissions, for example Contents: read-only and Metadata: read-only, before launch.]GitPeek is built by [YOUR NAME]. [Why you made it, in one or two sentences.] If something breaks or you need a feature, contact [YOUR CONTACT].