g1t/apps/web/app/components/clone-box.tsx

45 lines1,837 bytesCodeBlame
1import { Link } from "react-router";
2
3import { cloneUrl, useAddresses } from "../lib/addresses";
4import { AgentSetup } from "./agent-setup";
5import { CopyLine } from "./ui";
6import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs";
7
8/** The ways to get a repository onto a machine or in front of an agent. */
9export function CloneBox({ path }: { path: string }) {
10 const addresses = useAddresses();
11 return (
12 <Tabs defaultValue="https">
13 <TabsList>
14 <TabsTrigger value="https">HTTPS</TabsTrigger>
15 <TabsTrigger value="ssh">SSH</TabsTrigger>
16 <TabsTrigger value="agent">Agent</TabsTrigger>
17 </TabsList>
18 <TabsContent value="https">
19 <CopyLine text={cloneUrl(addresses, path)} />
20 <p className="mt-2 text-xs text-muted">
21 To push, use your username and an{" "}
22 <Link to="/settings/tokens" className="text-fg underline underline-offset-4">
23 access token
24 </Link>{" "}
25 as the password.
26 </p>
27 </TabsContent>
28 <TabsContent value="ssh">
29 <p className="rounded-lg border border-dashed border-line p-3 text-xs text-muted">
30 Git over SSH is waiting on inbound TCP on Cloudflare, which g1t has applied for. Use HTTPS for now: it
31 clones, fetches and pushes the same. Keys you add under Settings → SSH keys will work as soon as SSH is on.
32 </p>
33 </TabsContent>
34 <TabsContent value="agent">
35 <AgentSetup />
36 <p className="mt-2 text-xs text-muted">
37 Then ask it to work on an issue in <span className="font-mono text-fg">{path}</span>.{" "}
38 <Link to="https://docs.g1t.sh/guides/bring-your-own-agent/" className="text-fg underline underline-offset-4">
39 More
40 </Link>
41 </p>
42 </TabsContent>
43 </Tabs>
44 );
45}