Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t.sh
64 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing1import type { GithubRepoLink } from "@g1t/contracts";
2import { siGithub } from "simple-icons";
3
Merge branch 'mirroring' into artifacts-mode4import { TimeAgo } from "./ui";
The site is built from its shared components: one Button with its variants and sizes, one Badge, Card for every panel, Alert for notices, Kbd for keys, Table for the security tables, and Avatar, Command, Progress, ScrollArea, ToggleGroup, Collapsible and Accordion in the kit; raw buttons, hand-drawn cards and pills and per-file button class lists are gone, outline buttons stand the same height as filled ones, and the phone's Ask g1t loses its tile. Every page was compared pixel by pixel before and after.5import { Button } from "./ui/button";
6import { Card } from "./ui/card";
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing7
8/** GitHub's mark (from Simple Icons), for the buttons that go there. */
9export function GithubMark({ className = "size-4" }: { className?: string }) {
10 return (
11 <svg viewBox="0 0 24 24" aria-hidden="true" fill="currentColor" className={className}>
12 <path d={siGithub.path} />
13 </svg>
14 );
15}
16
17/**
18 * "Continue with GitHub": a full page load to /auth/github, which sends the
19 * browser on to GitHub.
20 */
21export function ContinueWithGithub({ href, label = "Continue with GitHub" }: { href: string; label?: string }) {
22 return (
The site is built from its shared components: one Button with its variants and sizes, one Badge, Card for every panel, Alert for notices, Kbd for keys, Table for the security tables, and Avatar, Command, Progress, ScrollArea, ToggleGroup, Collapsible and Accordion in the kit; raw buttons, hand-drawn cards and pills and per-file button class lists are gone, outline buttons stand the same height as filled ones, and the phone's Ask g1t loses its tile. Every page was compared pixel by pixel before and after.23 <Button asChild variant="outline" className="w-full">
24 <a href={href}>
25 <GithubMark />
26 {label}
27 </a>
28 </Button>
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing29 );
30}
31
32/** The rule between "Continue with GitHub" and the form below it. */
33export function OrDivider() {
34 return (
35 <div className="my-6 flex items-center gap-3 text-xs text-faint">
36 <span className="h-px grow bg-line" />
37 or
38 <span className="h-px grow bg-line" />
39 </div>
40 );
41}
42
Merge main into rm-agents: mirroring removal, open signups, free-tier limits, the g1t CLI and runner fixes, with the agent removal kept. The CLI's table of operations is regenerated from the API without the agent, customize and AI credit operations; no CLI command used them.43/** Where a repository's code was imported from on GitHub, on its overview, and when. */
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing44export function GithubLinkStrip({ link }: { link: GithubRepoLink }) {
45 return (
The site is built from its shared components: one Button with its variants and sizes, one Badge, Card for every panel, Alert for notices, Kbd for keys, Table for the security tables, and Avatar, Command, Progress, ScrollArea, ToggleGroup, Collapsible and Accordion in the kit; raw buttons, hand-drawn cards and pills and per-file button class lists are gone, outline buttons stand the same height as filled ones, and the phone's Ask g1t loses its tile. Every page was compared pixel by pixel before and after.46 <Card tone="plain" radius="lg" className="flex flex-wrap items-center gap-x-3 gap-y-1 px-4 py-2.5 text-sm">
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing47 <span className="flex min-w-0 items-start gap-2 text-muted">
48 <GithubMark className="mt-0.5 size-4 shrink-0" />
49 <span className="min-w-0">
Merge branch 'mirroring' into artifacts-mode50 Imported from{" "}
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing51 <a href={`https://github.com/${link.fullName}`} className="font-mono break-all text-fg hover:text-accent" target="_blank" rel="noreferrer">
52 github.com/{link.fullName}
53 </a>
54 </span>
55 </span>
56 {link.syncedAt && (
57 <span className="text-xs text-faint">
Merge branch 'mirroring' into artifacts-mode58 copied <TimeAgo at={link.syncedAt} />
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing59 </span>
60 )}
61 {link.lastError && <p className="w-full text-xs text-warn">{link.lastError}</p>}
The site is built from its shared components: one Button with its variants and sizes, one Badge, Card for every panel, Alert for notices, Kbd for keys, Table for the security tables, and Avatar, Command, Progress, ScrollArea, ToggleGroup, Collapsible and Accordion in the kit; raw buttons, hand-drawn cards and pills and per-file button class lists are gone, outline buttons stand the same height as filled ones, and the phone's Ask g1t loses its tile. Every page was compared pixel by pixel before and after.62 </Card>
Costs: Cloudflare's subscriptions read from Cloudflare each day, the estimate only until then; sudo's costs split into Costs & margin and Bill & pricing63 );
64}

This file's history is long; its oldest lines are credited to the oldest commit read.