pr_01m47d24b0e6n91zwymwxg0vpx/apps/docs/astro.config.mjs
| 1 | // @ts-check |
| 2 | import starlight from '@astrojs/starlight'; |
| 3 | import { defineConfig } from 'astro/config'; |
| 4 | |
| 5 | import { generateApiReference } from './scripts/api-reference.mjs'; |
| 6 | |
| 7 | // A page per REST operation, written from the OpenAPI document. |
| 8 | const apiGroups = generateApiReference(); |
| 9 | |
| 10 | export default defineConfig({ |
| 11 | site: 'https://docs.g1t.sh', |
| 12 | integrations: [ |
| 13 | starlight({ |
| 14 | title: 'g1t docs', |
| 15 | description: 'Guides and reference for g1t, the git forge for teams of agents.', |
| 16 | components: { |
| 17 | Header: './src/components/Header.astro', |
| 18 | PageTitle: './src/components/PageTitle.astro', |
| 19 | SiteTitle: './src/components/SiteTitle.astro', |
| 20 | SocialIcons: './src/components/SocialIcons.astro', |
| 21 | }, |
| 22 | // Each tab under the header shows its own part of the sidebar. |
| 23 | routeMiddleware: './src/route-data.ts', |
| 24 | expressiveCode: { |
| 25 | themes: ['github-dark-default'], |
| 26 | // Plain panels with a copy button, without window chrome. |
| 27 | defaultProps: { frame: 'none' }, |
| 28 | styleOverrides: { |
| 29 | borderRadius: '0.75rem', |
| 30 | borderColor: 'var(--g1t-line)', |
| 31 | codeBackground: 'var(--g1t-surface)', |
| 32 | codeFontSize: '0.8125rem', |
| 33 | frames: { |
| 34 | editorBackground: 'var(--g1t-surface)', |
| 35 | terminalBackground: 'var(--g1t-surface)', |
| 36 | terminalTitlebarBackground: 'var(--g1t-raised)', |
| 37 | terminalTitlebarBorderBottomColor: 'var(--g1t-line)', |
| 38 | editorTabBarBackground: 'var(--g1t-raised)', |
| 39 | shadowColor: 'transparent', |
| 40 | }, |
| 41 | }, |
| 42 | }, |
| 43 | logo: { src: '@g1t/theme/mark.svg', alt: '' }, |
| 44 | favicon: '/favicon.svg', |
| 45 | customCss: ['@g1t/theme/tokens.css', './src/styles/g1t.css'], |
| 46 | social: [ |
| 47 | { icon: 'seti:git', label: 'Source on g1t', href: 'https://g1t.sh/syntaqx/g1t' }, |
| 48 | { icon: 'github', label: 'Source on GitHub', href: 'https://github.com/syntaqx/g1t' }, |
| 49 | ], |
| 50 | editLink: { |
| 51 | baseUrl: 'https://github.com/syntaqx/g1t/edit/main/apps/docs/', |
| 52 | }, |
| 53 | lastUpdated: true, |
| 54 | head: [ |
| 55 | { tag: 'link', attrs: { rel: 'icon', href: '/favicon.ico', sizes: '32x32' } }, |
| 56 | { tag: 'link', attrs: { rel: 'icon', type: 'image/png', sizes: '192x192', href: '/icon-192.png' } }, |
| 57 | { tag: 'link', attrs: { rel: 'apple-touch-icon', href: '/apple-touch-icon.png' } }, |
| 58 | { tag: 'link', attrs: { rel: 'preconnect', href: 'https://fonts.googleapis.com' } }, |
| 59 | { |
| 60 | tag: 'link', |
| 61 | attrs: { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: true }, |
| 62 | }, |
| 63 | { |
| 64 | tag: 'link', |
| 65 | attrs: { |
| 66 | rel: 'stylesheet', |
| 67 | href: 'https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400..700&family=JetBrains+Mono:wght@400;500;600&display=swap', |
| 68 | }, |
| 69 | }, |
| 70 | ], |
| 71 | sidebar: [ |
| 72 | { |
| 73 | label: 'Get started', |
| 74 | items: [ |
| 75 | { label: 'Quickstart', slug: 'quickstart' }, |
| 76 | { label: 'How g1t works', slug: 'concepts/overview' }, |
| 77 | ], |
| 78 | }, |
| 79 | { |
| 80 | label: 'Projects', |
| 81 | items: [ |
| 82 | { label: 'Projects', slug: 'guides/projects' }, |
| 83 | { label: 'Deployments', slug: 'guides/deployments' }, |
| 84 | { label: 'Secrets and variables', slug: 'guides/secrets-and-variables' }, |
| 85 | ], |
| 86 | }, |
| 87 | { |
| 88 | label: 'Agents', |
| 89 | items: [ |
| 90 | { label: 'g1t agents', slug: 'guides/g1t-agents' }, |
| 91 | { label: 'Outcomes and plans', slug: 'guides/outcomes' }, |
| 92 | { label: 'Talking to agents', slug: 'guides/talking-to-agents' }, |
| 93 | { label: 'Bring your own agent', slug: 'guides/bring-your-own-agent' }, |
| 94 | ], |
| 95 | }, |
| 96 | { |
| 97 | label: 'Connect your tools', |
| 98 | items: [ |
| 99 | { label: 'Integrations', slug: 'guides/integrations' }, |
| 100 | { label: 'Model providers', slug: 'guides/models' }, |
| 101 | { label: 'Webhooks', slug: 'guides/webhooks' }, |
| 102 | { label: 'GitHub Actions', slug: 'guides/actions' }, |
| 103 | ], |
| 104 | }, |
| 105 | { |
| 106 | label: 'Landing changes', |
| 107 | items: [ |
| 108 | { label: 'The merge queue', slug: 'guides/merge-queue' }, |
| 109 | { label: 'Sessions and why-blame', slug: 'guides/why-blame' }, |
| 110 | { label: 'Forks and branches', slug: 'concepts/forks' }, |
| 111 | ], |
| 112 | }, |
| 113 | { |
| 114 | label: 'Workspaces', |
| 115 | items: [ |
| 116 | { label: 'Accounts and sign-in', slug: 'guides/authentication' }, |
| 117 | { label: 'Workspaces and tokens', slug: 'guides/workspaces' }, |
| 118 | { label: 'Usage and billing', slug: 'guides/usage-and-billing' }, |
| 119 | { label: 'Git', slug: 'guides/git' }, |
| 120 | ], |
| 121 | }, |
| 122 | { |
| 123 | label: 'Reference', |
| 124 | items: [ |
| 125 | { label: 'API overview', slug: 'reference/api' }, |
| 126 | { label: 'MCP tools', slug: 'reference/mcp' }, |
| 127 | { label: 'Try it in the explorer', link: '/api/reference/', attrs: { target: '_self' } }, |
| 128 | { label: 'OpenAPI document', link: 'https://api.g1t.sh/openapi.json' }, |
| 129 | { label: 'llms.txt', link: 'https://g1t.sh/llms.txt' }, |
| 130 | ], |
| 131 | }, |
| 132 | ...apiGroups, |
| 133 | ], |
| 134 | }), |
| 135 | ], |
| 136 | }); |