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

Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily1import { Link } from "react-router";
2
Code button: the SSH tab shows the address it will have, disabled, with why it is not on yet3import { cloneUrl, sshUrl, useAddresses } from "../lib/addresses";
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily4import { AgentSetup } from "./agent-setup";
Merge branch 'mirroring' into artifacts-mode5import { MirrorCloneNote, useRepoMirror } from "./mirror";
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily6import { CopyLine } from "./ui";
7import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs";
8
9/** The ways to get a repository onto a machine or in front of an agent. */
10export function CloneBox({ path }: { path: string }) {
Merge branch 'worktree-agent-aaf03bdceac799c89'11 const addresses = useAddresses();
Merge branch 'mirroring' into artifacts-mode12 // A mirror takes no pushes until someone takes over: it says where to push.
13 const { repo, admin } = useRepoMirror();
14 const mirror = repo && `${repo.namespace}/${repo.name}` === path ? repo.mirror : null;
15 const readOnly = mirror != null && mirror.state !== "takeover";
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily16 return (
17 <Tabs defaultValue="https">
18 <TabsList>
19 <TabsTrigger value="https">HTTPS</TabsTrigger>
20 <TabsTrigger value="ssh">SSH</TabsTrigger>
21 <TabsTrigger value="agent">Agent</TabsTrigger>
22 </TabsList>
23 <TabsContent value="https">
Merge branch 'worktree-agent-aaf03bdceac799c89'24 <CopyLine text={cloneUrl(addresses, path)} />
Merge branch 'mirroring' into artifacts-mode25 <MirrorCloneNote mirror={mirror} base={`/${path}`} admin={admin} />
26 {!readOnly && (
27 <p className="mt-2 text-xs text-muted">
28 To push, use your username and an{" "}
29 <Link to="/settings/tokens" className="text-fg underline underline-offset-4">
30 access token
31 </Link>{" "}
32 as the password.
33 </p>
34 )}
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily35 </TabsContent>
36 <TabsContent value="ssh">
Code button: the SSH tab shows the address it will have, disabled, with why it is not on yet37 <CopyLine text={sshUrl(addresses, path)} disabled />
38 <p className="mt-2 text-xs text-muted">
39 Not on yet: git over SSH is waiting on inbound TCP on Cloudflare, which g1t has applied for. Use HTTPS for
40 now; it clones, fetches and pushes the same. Keys you add under{" "}
41 <Link to="/settings/keys" className="text-fg underline underline-offset-4">
42 SSH keys
43 </Link>{" "}
44 will work as soon as SSH is on.
Git storage hardened, pages in tens of milliseconds, honest security alerts, and costs reconciled daily45 </p>
46 </TabsContent>
47 <TabsContent value="agent">
48 <AgentSetup />
49 <p className="mt-2 text-xs text-muted">
50 Then ask it to work on an issue in <span className="font-mono text-fg">{path}</span>.{" "}
51 <Link to="https://docs.g1t.sh/guides/bring-your-own-agent/" className="text-fg underline underline-offset-4">
52 More
53 </Link>
54 </p>
55 </TabsContent>
56 </Tabs>
57 );
58}

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