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
54 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.

Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start1/**
2 * What a repository with no checks shows where checks would be: that
3 * nothing proves a change works, and a button that opens a pull request
4 * adding a starter workflow for the stack g1t finds (routes/repo/add-ci.ts).
5 */
Merge branch 'worktree-agent-a985c01f43538af01'6import { FlaskConical, Plus } from "lucide-react";
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start7import { useFetcher } from "react-router";
8
Merge branch 'worktree-agent-a985c01f43538af01'9import { ErrorText, SubmitButton } from "./ui";
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start10
11export function AddCiPrompt({
12 owner,
13 repo,
14 canAdd,
15 compact = false,
16}: {
17 owner: string;
18 repo: string;
19 /** Whether the viewer may push: who may open the pull request. */
20 canAdd: boolean;
21 /** Fits a row of the merge box rather than a page. */
22 compact?: boolean;
23}) {
24 const fetcher = useFetcher<{ error?: string }>();
Merge branch 'worktree-agent-a985c01f43538af01'25
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start26 return (
27 <div className={compact ? "flex gap-3 px-4 py-3" : "flex gap-3 rounded-xl border border-dashed border-line-strong bg-surface p-4"}>
28 <FlaskConical size={16} className="mt-0.5 shrink-0 text-warn" />
29 <div className="min-w-0 grow">
30 <p className="text-sm font-medium">This repository has no checks</p>
31 <p className="mt-0.5 text-sm text-muted">
32 Nothing runs on its pull requests, so neither people nor agents can prove a change works before it merges.
33 Add a workflow in <code className="text-fg">.g1t/workflows</code>, then require it on the default branch.
34 </p>
35 {canAdd && (
36 <fetcher.Form method="post" action={`/${owner}/${repo}/add-ci`} className="mt-3 flex flex-wrap items-center gap-3">
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.37 <SubmitButton fetcher={fetcher} pending="Opening a pull request…">
Merge branch 'worktree-agent-a985c01f43538af01'38 <Plus size={14} />
39 Add CI
40 </SubmitButton>
Packages lists like a registry: Type, search, Visibility and Sort in one bar, richer rows, and a registry to choose from to start41 <span className="text-xs text-faint">
42 Opens a pull request with a starter workflow for the stack g1t finds. You can change it before merging.
43 </span>
44 </fetcher.Form>
45 )}
46 {fetcher.data?.error && (
47 <div className="mt-2">
48 <ErrorText>{fetcher.data.error}</ErrorText>
49 </div>
50 )}
51 </div>
52 </div>
53 );
54}

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