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

Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail1/**
2 * A project's pages and the tabs within them, in one place: the sidebar
3 * lists the pages, and a page with more than one view shows them as tabs
4 * across its top, the way GitHub and Vercel do. Soon tabs come from the
5 * roadmap and open its page for them, under the same tabs.
6 */
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.7import type { Abilities, Capability, RepoMirror } from "@g1t/contracts";
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail8
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.9import { type RepoArea, offers } from "./mirror.ts";
10import { type RoadmapItem, roadmapIn } from "./roadmap.ts";
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail11
12export type Tab = {
13 label: string;
14 /** Under the project, without a leading slash; "" is its overview. */
15 path: string;
16 /** Other paths under which this tab is the current one. */
17 also?: string[];
18 soon?: boolean;
19 about?: string;
20 /** Members only. */
21 members?: boolean;
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar22 /** Current on its own path only, not on the paths under it. */
23 exact?: boolean;
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail24 /** Only for viewers whose role has this capability, once it is known. */
25 needs?: Capability;
26};
27
28export type Section = {
29 key: RoadmapItem["section"] | "Workflows" | "Settings";
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.30 /** The part of the repository it is about: a mirror shows the tabs of what it offers (lib/mirror.ts `offers`). */
31 area: RepoArea;
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail32 tabs: Tab[];
33};
34
35function soon(section: RoadmapItem["section"]): Tab[] {
36 return roadmapIn(section).map((item) => ({ label: item.title, path: `soon/${item.key}`, soon: true, about: item.summary }));
37}
38
39export const SECTIONS: Section[] = [
40 {
41 key: "Code",
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.42 area: "code",
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail43 tabs: [
44 { label: "Files", path: "code", also: ["tree", "blob"] },
45 { label: "Commits", path: "commits", also: ["commit"] },
Branches and Tags pages, each file's last commit, and the branch menu on files46 { label: "Branches", path: "branches" },
47 { label: "Tags", path: "tags" },
Merge branch 'main' into worktree-agent-a69aeabc4b0deeb9748 { label: "Releases", path: "releases" },
Compare: any two branches, the commits one has that the other does not, and the diff, with Open a pull request49 { label: "Compare", path: "compare" },
Chat controls, public profiles, shadcn selects, and no Docs tab in a project50 // No Docs tab: code is not docs. Docs is a workspace mode, filtered by project there.
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail51 ],
52 },
53 {
54 key: "Issues",
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.55 area: "issues",
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail56 tabs: [
57 { label: "Issues", path: "issues" },
Usage, Billing settings and prepaid AI credit; fixes from the UX audit58 { label: "Milestones", path: "milestones" },
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail59 ...soon("Issues"),
60 ],
61 },
62 {
63 key: "Deployments",
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.64 area: "deployments",
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail65 tabs: [{ label: "Deployments", path: "deployments" }, ...soon("Deployments")],
66 },
67 {
Projects have Observability: their requests, logs, traces, metrics and errors, from apps on g1t.page with nothing to set up, and from software anywhere else over OpenTelemetry.68 key: "Observability",
69 area: "deployments",
70 tabs: [
71 { label: "Overview", path: "observability", exact: true, members: true },
72 { label: "Requests", path: "observability/requests", members: true },
73 { label: "Logs", path: "observability/logs", members: true },
74 { label: "Traces", path: "observability/traces", members: true },
75 { label: "Errors", path: "observability/errors", members: true },
76 { label: "Metrics", path: "observability/metrics", members: true },
77 { label: "Settings", path: "observability/settings", members: true, needs: "manage_integrations" },
78 ...soon("Observability"),
79 ],
80 },
81 {
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail82 key: "Security",
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.83 area: "security",
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar84 tabs: [
Merge main (membership, two-factor, GitHub repo roles) into tokens85 { label: "Overview", path: "security", members: true, needs: "security_alerts", exact: true },
86 { label: "Secret scanning", path: "security/secret-scanning", members: true, needs: "security_alerts" },
87 { label: "Code scanning", path: "security/code-scanning", members: true, needs: "security_alerts", also: ["security/pulls"] },
88 { label: "Vulnerabilities", path: "security/vulnerabilities", members: true, needs: "security_alerts" },
89 { label: "Dependency graph", path: "security/dependency-graph", members: true, needs: "security_alerts" },
90 { label: "Dependency updates", path: "security/dependency-updates", members: true, needs: "security_alerts" },
Merge remote-tracking branch 'origin/claude/cool-newton-7nm8r9' into claude/cool-newton-7nm8r991 { label: "Advisories", path: "security/advisories", members: true, needs: "security_alerts", also: ["security/reports"] },
Merge main (membership, two-factor, GitHub repo roles) into tokens92 { label: "Settings", path: "security/settings", members: true, needs: "security_alerts" },
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar93 ...soon("Security"),
94 ],
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail95 },
Merge branch 'main' into worktree-agent-a69aeabc4b0deeb9796 {
97 key: "Insights",
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.98 area: "insights",
Merge branch 'main' into worktree-agent-a69aeabc4b0deeb9799 tabs: [
100 { label: "Contributors", path: "contributors" },
101 { label: "Activity", path: "activity" },
102 { label: "Stargazers", path: "stargazers" },
103 ...soon("Insights"),
104 ],
105 },
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail106];
107
108/** Pull requests and the merge queue share a page's tabs too. */
109export const PULLS: Section = {
110 key: "Code",
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.111 area: "pulls",
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail112 tabs: [
113 { label: "Pull requests", path: "pulls", also: ["pull"] },
114 { label: "Merge queue", path: "queue" },
The site no longer has g1t's own agents. g1t is where the coding agents you already use do their work, so the Agents mode is gone from the rail, with every page under /<workspace>/-/agents: personas, faces, skills, abilities, routines, computers, sessions and agent spend. Customize (skills, connectors, plugins, marketplaces), the context hub, model providers, the AI Gateway page, the Spend page and pill, Ask g1t, and the repository's Agents, Plans and agent settings pages go too, and their addresses now answer 404.115 { label: "Sessions", path: "sessions" },
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail116 ],
117};
118
119function matches(rest: string, tab: Tab): boolean {
120 return [tab.path, ...(tab.also ?? [])].some((path) => path !== "" && (rest === path || rest.startsWith(`${path}/`)));
121}
122
123/**
124 * The tabs for the page at `rest` (the path under the project), if it
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.125 * belongs to a page with more than one view. On a mirror, only the pages
126 * it offers now have tabs (`mirror`, the repository's).
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail127 */
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.128export function tabsFor(rest: string, member: boolean, can?: Partial<Abilities>, mirror?: RepoMirror | null): Tab[] | null {
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail129 for (const section of [...SECTIONS, PULLS]) {
A desktop release goes out with what can be built. Linux is built on g1t's machines in every release; Windows and macOS each wait on a repository variable: a machine registered for them, or for Windows a cross build on Linux once aka.ms and download.visualstudio.microsoft.com are workflow-only domains, which is where the first release stopped. A platform with no machine is skipped and the download page says it is coming, with a word for the visitor whose platform this release lacks. The guide and CONTRIBUTING say so.130 if (!offers(mirror, section.area)) continue;
Security matches the workspace's other pages and leaves out deleted repositories; every section has a name in the trail131 const visible = section.tabs.filter(
132 (tab) => (member || !tab.members) && (!tab.needs || !can || Boolean(can[tab.needs])),
133 );
134 if (visible.length > 1 && visible.some((tab) => matches(rest, tab))) return visible;
135 }
136 return null;
137}
138
139/** The first page of a section, for its sidebar link: a built one if any. */
140export function entryOf(key: Section["key"]): Tab | undefined {
141 return SECTIONS.find((section) => section.key === key)?.tabs[0];
142}

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