pr_01m47d15m3e54sn21z27rpy5n9/apps/web/app/routes/security.tsx

35 lines1,148 bytesCodeBlame
1import type { Route } from "./+types/security";
2import { Contents, PolicyText, TrustPage, outline } from "../components/legal-doc";
3import { CONTACT } from "../lib/legal";
4import { page } from "../lib/meta";
5import text from "../content/security.md?raw";
6
7export function meta(args: Route.MetaArgs) {
8 return page(args, {
9 title: "Security · g1t",
10 description:
11 "How g1t protects your code, accounts and agents: per-run credentials, the audit log, guardrails, isolated sandboxes and push protection. And how to report a vulnerability.",
12 });
13}
14
15export default function Security() {
16 return (
17 <TrustPage
18 eyebrow="Security"
19 title="How g1t keeps your code and accounts safe"
20 lede={
21 <p>
22 What we actually do to protect what you build on g1t, and what we haven't built yet. Found a problem? Write
23 to{" "}
24 <a className="text-accent hover:underline" href={`mailto:${CONTACT.security}`}>
25 {CONTACT.security}
26 </a>
27 .
28 </p>
29 }
30 aside={<Contents items={outline(text)} />}
31 >
32 <PolicyText source={text} />
33 </TrustPage>
34 );
35}