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.
| Models per workspace: several providers, routed by kind of work | 1 | import { Link } from "react-router"; |
| 2 | ||
| Code button: the SSH tab shows the address it will have, disabled, with why it is not on yet | 3 | import { cloneUrl, sshUrl, useAddresses } from "../lib/addresses"; |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 4 | import { AgentSetup } from "./agent-setup"; |
| Merge branch 'mirroring' into artifacts-mode | 5 | import { MirrorCloneNote, useRepoMirror } from "./mirror"; |
| Models per workspace: several providers, routed by kind of work | 6 | import { CopyLine } from "./ui"; |
| 7 | import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs"; | |
| 8 | ||
| 9 | /** The ways to get a repository onto a machine or in front of an agent. */ | |
| 10 | export function CloneBox({ path }: { path: string }) { | |
| Merge branch 'worktree-agent-aaf03bdceac799c89' | 11 | const addresses = useAddresses(); |
| Merge branch 'mirroring' into artifacts-mode | 12 | // 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"; | |
| Models per workspace: several providers, routed by kind of work | 16 | 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-mode | 25 | <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 | )} | |
| Models per workspace: several providers, routed by kind of work | 35 | </TabsContent> |
| 36 | <TabsContent value="ssh"> | |
| Code button: the SSH tab shows the address it will have, disabled, with why it is not on yet | 37 | <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. | |
| Models per workspace: several providers, routed by kind of work | 45 | </p> |
| 46 | </TabsContent> | |
| 47 | <TabsContent value="agent"> | |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 48 | <AgentSetup /> |
| Models per workspace: several providers, routed by kind of work | 49 | <p className="mt-2 text-xs text-muted"> |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 50 | Then ask it to work on an issue in <span className="font-mono text-fg">{path}</span>.{" "} |
| Models per workspace: several providers, routed by kind of work | 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.