A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.
Connect your GitHub account, choose a repository, and tell Sphinx what to learn from it. A repository is a collection of files stored in GitHub. An ingest is the process of reading those files and turning them into knowledge in Sphinx.
A connector is the saved connection between Sphinx and GitHub. You will create one, allow access in GitHub, and then sign in to it.
1
Open Connectors
In Sphinx, click Settings at the bottom left.Check that the correct Workspace is selected, then click Connectors.
Settings → Connectors
2
Choose GitHub
Click New connector.Under Documents & repositories, click GitHub.
Choose the GitHub card.
3
Name your connection
In Connector name, enter a name you will recognize, such as GitHub documentation demo.Click Connect GitHub. GitHub opens in another tab. Keep the Sphinx tab open.
Enter a name, then click Connect GitHub.
4
Choose the repository in GitHub
Sign in to GitHub if asked. Choose the account or company that owns your repository.Select Only select repositories, open Select repositories, and choose the repository you want Sphinx to read. Our example is sphinx-ml/docs.Review the permissions, then click Install. If the app is already installed, you may see Update access instead.
Choose your repository. This example shows an app that is already installed.
If GitHub shows Request or says an organization owner must complete this action, ask the person who manages your company’s GitHub account to finish this step. See GitHub’s installation help for details.
5
Return to Sphinx and sign in with GitHub
Return to your Sphinx connector tab. Refresh the page if needed.Under Authentication, click Sign in with GitHub. Follow GitHub’s prompts to authorize the connection.When you see Authentication successful. You can close this tab., close that tab and return to Sphinx.
If Sign in with GitHub is greyed out, finish Install GitHub App first. Installation and sign-in are two separate steps.
6
Check that you are connected
Your connector should now show Manage GitHub App and Reconnect GitHub. Refresh the page if those buttons have not updated.You are ready to set up the ingest.
These buttons show that installation and sign-in are complete.
In the same Sphinx workspace, click Ingest in the left sidebar.Click New Ingest at the top right.
Ingest → New Ingest
2
Choose Git Repository
Scroll down to Experimental and click Git Repository.
Find Git Repository near the bottom of the page.
3
Choose your connection and repository
In GitHub connector, select your saved GitHub connection.In Repository, choose the repository you want to add. For this example, choose sphinx-ml/docs.Choose the connection you named earlier: GitHub documentation demo in this example.
4
Write a detailed focus prompt
In Focus prompt, explain what you want Sphinx to learn and give it the context it needs to understand your repository.
Take time to write a detailed, specific prompt. A high-quality focus prompt helps Sphinx find the right information and preserve the details your team needs. Include useful context and concrete questions, rather than just asking it to “summarize the repository.”
You do not need to write code. In plain language, include:
Your goal: Who will use this knowledge, and what should it help them do?
Where to look: Name important topics, folders, or files if you know them.
Context: Explain unfamiliar terms and identify which information is current or most reliable.
Details to keep: Call out rules, calculations, exceptions, dependencies, or setup steps that matter.
Questions to answer: Give a few real questions you want Sphinx to be able to answer afterward.
For more guidance, see Write a good ingest prompt. In a Git ingest, the focus prompt sets priorities: it steers which files and topics Sphinx focuses on, but it does not hide files from Sphinx.For the documentation repository in this guide, a detailed prompt could look like this:
Help customer-facing teammates explain how customers connect Claudeand ChatGPT to Sphinx. The knowledge should support someone walkinga non-technical customer through setup.Start with the guides in claude/, claude-code-cli/,claude-desktop/, and chatgpt-desktop/. Follow related guides whenthey explain a prerequisite or a step in the same setup process.Keep the instructions for each client separate. Explain thedifference between connecting to Sphinx MCP and using the SphinxLLM Gateway, based on the repository's guides.Focus on prerequisites, exact button names, configuration values,sign-in steps, actions that need an administrator, and how userscheck that the connection worked. Include documented troubleshooting.If guides disagree or leave a step unclear, call that out insteadof guessing.The knowledge should answer:- What does a customer need before starting each setup?- What should they click and enter, in order?- Which steps need help from an administrator?- How do they confirm that setup worked?
Example for an internal analytics dashboard repository
Use this example if your team builds internal analytics dashboards. Add the dashboard names, business topics, and folders that matter to your team.
This repository contains our internal analytics dashboards. Helpour teammates understand what each dashboard shows, how its numbersare calculated, and how to use them to answer business questions.We want Sphinx's knowledge to reflect the repository as it evolves.Focus on dashboard definitions, charts, queries, data models, andrelated documentation. Follow supporting code, configuration, andtests when they explain a calculation or business rule.For each dashboard, explain its purpose, intended audience, andthe business questions it answers. Preserve chart and metric namesso teammates can match the explanation to what they see on screen.For each metric, explain its business meaning, calculation, sourcetables, filters, exclusions, and time period. Explain how tablesconnect, what one row represents, and how dates and time zonesaffect the result. Include these details when the repositoryprovides them; flag anything unclear instead of guessing.Explain how dashboard filters, default selections, and drill-downschange the numbers. Include documented refresh schedules, datadelays, limitations, and reasons similar charts may disagree.On each ingest, use the current repository definitions. Capturenew dashboards and changed calculations, filters, or businessrules. Identify deprecated dashboards and metrics where therepository marks them as such. Include relevant file paths soteammates can find the source of an explanation.The knowledge should answer:- Which dashboard should I use for my business question?- What does this metric mean, and how is it calculated?- What data is included or excluded?- How do filters and date ranges affect the result?- How fresh is the data, and what limitations should I know?
Adapt these examples to your repository. Specificity matters more than length: include the context you know and the details you need, without adding unrelated instructions. Explain the business meaning you want to capture, rather than asking for a file-by-file code summary.
Choose a connector and repository, then enter your detailed focus prompt. You can scroll within the prompt to review it.
5
Create the ingest
Check that the repository and focus prompt are correct, then click Create ingest once.Sphinx opens a page where you can follow its progress. You can also find the job later under Ingest.When Review Changes appears, click it to read the proposed knowledge before accepting it.
Go to Settings → Connectors and open your connector.Click Install GitHub App to finish installation, or Sign in with GitHub to finish signing in. You do not need to create another connector.
GitHub says I need an organization owner
Ask the person who manages your company’s GitHub account to complete the app setup for your repository. Return to Sphinx afterward and refresh the connector page.If the app already has access but Sphinx still shows Install GitHub App, ask the Sphinx team for help connecting that existing installation.
My repository is missing
Check that you selected the right GitHub connector and signed in with an account that can access the repository.Open the connector and use Manage GitHub App to check that your repository is included. Ask your GitHub administrator for help if you cannot change this. Then reload the ingest page and select the connector again.
My connector is missing
Check the Workspace in Settings. Use the same workspace where you created the connector.
Git Repository is missing
Ask the Sphinx team to enable Git ingest for your workspace. Include your workspace’s name.
Create ingest is greyed out
Make sure you selected a connected GitHub connector, chose a Repository, and entered a Focus prompt.
Which version of my files will Sphinx read?
Sphinx reads the repository’s default branch—the version GitHub normally shows when you open the repository. There is no branch selector on the ingest page.
I need help with an ingest
Share the job ID, repository name, and any error message with the Sphinx team. If knowledge is missing, give one example of what you expected Sphinx to learn.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Sphinx Docs","colors":{"primary":"#704643","light":"#ede2d6","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/sphinx-977f1673/1wWAviaQrCe_7dvG/logo/sphinx.svg?fit=max\u0026auto=format\u0026n=1wWAviaQrCe_7dvG\u0026q=85\u0026s=3f3d9bb107547b1e4075269ff8505a2c","dark":"https://mintcdn.com/sphinx-977f1673/1wWAviaQrCe_7dvG/logo/sphinx.svg?fit=max\u0026auto=format\u0026n=1wWAviaQrCe_7dvG\u0026q=85\u0026s=3f3d9bb107547b1e4075269ff8505a2c"},"favicon":"https://mintcdn.com/sphinx-977f1673/1wWAviaQrCe_7dvG/logo/sphinx.svg?fit=max\u0026auto=format\u0026n=1wWAviaQrCe_7dvG\u0026q=85\u0026s=3f3d9bb107547b1e4075269ff8505a2c","navbar":{"links":[{"href":"mailto:support@sphinx.ai","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/getsphinx","linkedin":"https://www.linkedin.com/company/sphinx-ml"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://www.sphinx.ai/blog/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sphinx-977f1673","hasAudioNarration":false,"actualSubdomain":"sphinx-977f1673","customDomains":["docs.sphinx.ai"],"gitSource":{"type":"github","owner":"sphinx-ml","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad126cba2e1cb429adbd9de","collectionId":"633848d7-5424-4c04-8ba5-7eb28c40bf33","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad126cba2e1cb429adbd9de"},"entitlements":{},"buildId":"6ad126cba2e1cb429adbd9de","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Documentation","count":11},{"language":"default","tag":"Setup","count":6},{"language":"default","tag":"Knowledge base","count":2},{"language":"default","tag":"Python SDK","count":2},{"language":"default","tag":"Home","count":1}]},"assistantConfig":{"enableStarterQuestions":false},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"git-ingest","slug":"/git-ingest","pageMetadata":{"title":"Connect GitHub and add a repository","description":"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.","icon":"github","href":"/git-ingest"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Tip}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Connect your GitHub account, choose a repository, and tell Sphinx what to learn from it. A `,_jsx(_components.strong,{children:`repository`}),` is a collection of files stored in GitHub. An `,_jsx(_components.strong,{children:`ingest`}),` is the process of reading those files and turning them into knowledge in Sphinx.`]}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsx(_components.p,{children:`Have these ready:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Your Sphinx sign-in and the workspace you want to use.`}),`\n`,_jsx(_components.li,{children:`Your GitHub sign-in and the name of the repository you want to add.`}),`\n`,_jsx(_components.li,{children:`Someone who manages your company’s GitHub account, in case GitHub asks for their approval.`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Git ingest is currently in `,_jsx(_components.strong,{children:`beta`}),`. If you cannot find `,_jsx(_components.strong,{children:`Git Repository`}),` in Sphinx, ask the Sphinx team to enable it for your workspace.`]})}),`\n`,_jsxs(_components.p,{children:[`The screenshots use development workspaces and `,_jsx(_components.code,{children:`sphinx-ml/docs`}),` as an example repository. Your workspace and connector names may look different.`]}),`\n`,_jsx(Heading,{level:`2`,id:`1-connect-github`,children:`1. Connect GitHub`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`connector`}),` is the saved connection between Sphinx and GitHub. You will create one, allow access in GitHub, and then sign in to it.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open Connectors`,children:[_jsxs(_components.p,{children:[`In Sphinx, click `,_jsx(_components.strong,{children:`Settings`}),` at the bottom left.`]}),_jsxs(_components.p,{children:[`Check that the correct `,_jsx(_components.strong,{children:`Workspace`}),` is selected, then click `,_jsx(_components.strong,{children:`Connectors`}),`.`]}),_jsx(Frame,{caption:`Settings → Connectors`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=11c1332903fc96caf6457bd0d1e3e829`,alt:`Sphinx Settings drawer with a workspace selected and the Connectors link visible`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`720`,height:`720`,\"data-path\":`git-ingest/01-open-connectors.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=74e14cf30e02603a54059d51618bbd95 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=38c7f8a99e298632ce1653de2f78dffc 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=70605c339ca4b5f03d04ac70d7387960 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=fea8b40c9582176db0510599bcbc37a0 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=ef4effc846eb2b7db4114a9918fddd8a 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/01-open-connectors.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=402bd00b1ddb570358cf36067aea97a6 2500w`})})]}),_jsxs(Step,{title:`Choose GitHub`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`New connector`}),`.`]}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Documents \u0026 repositories`}),`, click `,_jsx(_components.strong,{children:`GitHub`}),`.`]}),_jsx(Frame,{caption:`Choose the GitHub card.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=d9c84df4421b2b2e7d30ab3e58b4633b`,alt:`GitHub card under Documents and repositories on the Available connectors page`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`720`,height:`720`,\"data-path\":`git-ingest/02-choose-github.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=b9f8bd58a4d6866d5f71eb1bdc939a16 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=9b1542f030d4c93c1592ea6c71643654 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=4c28ad78db38032bc98cc8e0409a0841 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=380381f87dc20a55b6e6ab27c78a407e 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=ab6fd86e65d2df17346fd3ded1a5b1a6 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/02-choose-github.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=2faf93c5d9c22e7bac03ff907bc9f9eb 2500w`})})]}),_jsxs(Step,{title:`Name your connection`,children:[_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Connector name`}),`, enter a name you will recognize, such as `,_jsx(_components.code,{children:`GitHub documentation demo`}),`.`]}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect GitHub`}),`. GitHub opens in another tab. Keep the Sphinx tab open.`]}),_jsx(Frame,{caption:`Enter a name, then click Connect GitHub.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=17ab6af5828329f4c8c70e5cc9e06a28`,alt:`GitHub connector form with an example name and the Connect GitHub button`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`720`,height:`720`,\"data-path\":`git-ingest/03-name-connector.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=232dd428c4e33a3635d2ed1294bdbfba 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=541d7a03ac7b706bd35638df8050d0f5 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=8df642de2427f2ea6f9ec076c2313f23 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=a0ba36a26569fbda659a913f9a68a6a4 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=5fe671f8a32635567dc1db81b5cd18ed 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/03-name-connector.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=49d927889cbfbb988b41d5e90b43783e 2500w`})})]}),_jsxs(Step,{title:`Choose the repository in GitHub`,children:[_jsx(_components.p,{children:`Sign in to GitHub if asked. Choose the account or company that owns your repository.`}),_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Only select repositories`}),`, open `,_jsx(_components.strong,{children:`Select repositories`}),`, and choose the repository you want Sphinx to read. Our example is `,_jsx(_components.code,{children:`sphinx-ml/docs`}),`.`]}),_jsxs(_components.p,{children:[`Review the permissions, then click `,_jsx(_components.strong,{children:`Install`}),`. If the app is already installed, you may see `,_jsx(_components.strong,{children:`Update access`}),` instead.`]}),_jsx(Frame,{caption:`Choose your repository. This example shows an app that is already installed.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=7b8151fb6d3366208325e32c19ab1d76`,alt:`GitHub repository access screen with sphinx-ml/docs selected and read access to code and metadata shown`,\"data-og-width\":`934`,width:`934`,\"data-og-height\":`866`,height:`866`,\"data-path\":`git-ingest/05-github-repository-access.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=bd4601d70feac660cbf7033cbaf7deee 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=a28d7007554cc3969c7eb8f383be9652 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=ea00d53b840d47c725d46be5d6c514ac 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=c0db00223b8ca166c0daddb302bc579d 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=db96a1b6a7c126a53b46e9c6a45ea0ee 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/05-github-repository-access.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=30084a77c4af1b4f445be804975fe26b 2500w`})}),_jsx(Note,{children:_jsxs(_components.p,{children:[`If GitHub shows `,_jsx(_components.strong,{children:`Request`}),` or says an organization owner must complete this action, ask the person who manages your company’s GitHub account to finish this step. See `,_jsx(_components.a,{href:`https://docs.github.com/en/apps/using-github-apps/installing-a-github-app-from-a-third-party`,children:`GitHub’s installation help`}),` for details.`]})})]}),_jsxs(Step,{title:`Return to Sphinx and sign in with GitHub`,children:[_jsx(_components.p,{children:`Return to your Sphinx connector tab. Refresh the page if needed.`}),_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Authentication`}),`, click `,_jsx(_components.strong,{children:`Sign in with GitHub`}),`. Follow GitHub’s prompts to authorize the connection.`]}),_jsxs(_components.p,{children:[`When you see `,_jsx(_components.strong,{children:`Authentication successful. You can close this tab.`}),`, close that tab and return to Sphinx.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`If `,_jsx(_components.strong,{children:`Sign in with GitHub`}),` is greyed out, finish `,_jsx(_components.strong,{children:`Install GitHub App`}),` first. Installation and sign-in are two separate steps.`]})})]}),_jsxs(Step,{title:`Check that you are connected`,children:[_jsxs(_components.p,{children:[`Your connector should now show `,_jsx(_components.strong,{children:`Manage GitHub App`}),` and `,_jsx(_components.strong,{children:`Reconnect GitHub`}),`. Refresh the page if those buttons have not updated.`]}),_jsx(_components.p,{children:`You are ready to set up the ingest.`}),_jsx(Frame,{caption:`These buttons show that installation and sign-in are complete.`,children:_jsx(`div`,{role:`img`,\"aria-label\":`Connected GitHub authentication panel showing Manage GitHub App and Reconnect GitHub`,style:{width:`100%`,aspectRatio:`678 / 176`,backgroundImage:`url('https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/08-connected-github.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=8114a877d3388443fec9951f07c93fb0')`,backgroundSize:`137.758112% auto`,backgroundPosition:`95.3125% 18.26087%`,backgroundRepeat:`no-repeat`}})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`2-set-up-the-ingest`,children:`2. Set up the ingest`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Start a new ingest`,children:[_jsxs(_components.p,{children:[`In the same Sphinx workspace, click `,_jsx(_components.strong,{children:`Ingest`}),` in the left sidebar.`]}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`New Ingest`}),` at the top right.`]}),_jsx(Frame,{caption:`Ingest → New Ingest`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=ec252b7312e614d9aa76aa6bba66af25`,alt:`Ingest page with New Ingest at the top right`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`720`,height:`720`,\"data-path\":`git-ingest/06-new-ingest.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=02253da246e8a8985c0dd3e90382e8f6 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=77cdcb45019b964e12092910f8ef3ce5 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=c23bc8d6567ec3301e4ad35799e4726a 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=43965f2eefe9bd6cf8e18ea59209d10e 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=0e92a16836a1bb6f6bc1452f13930647 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/06-new-ingest.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=e6c137544f0da5a921d83d2eca5e9cfd 2500w`})})]}),_jsxs(Step,{title:`Choose Git Repository`,children:[_jsxs(_components.p,{children:[`Scroll down to `,_jsx(_components.strong,{children:`Experimental`}),` and click `,_jsx(_components.strong,{children:`Git Repository`}),`.`]}),_jsx(Frame,{caption:`Find Git Repository near the bottom of the page.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=d041cf034b9bfa831a4b5d02d72e7f06`,alt:`Git Repository card in the Experimental section of the ingest options`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`720`,height:`720`,\"data-path\":`git-ingest/07-choose-git-ingest.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=c870ac54aae49c8451e9eca54951eefc 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=fff710174d75cbf9575694b53132789a 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=eb2222550aef12a18aae1bb3377d6f67 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=b12b2ec3435f33fc785eea374f55226b 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=4e8960b3392835eebeed7b9a2c01c09e 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/07-choose-git-ingest.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=f952300c257063dc4d7f93934c768c65 2500w`})})]}),_jsxs(Step,{title:`Choose your connection and repository`,children:[_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`GitHub connector`}),`, select your saved GitHub connection.`]}),_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Repository`}),`, choose the repository you want to add. For this example, choose `,_jsx(_components.code,{children:`sphinx-ml/docs`}),`.`]}),_jsxs(_components.p,{children:[`Choose the connection you named earlier: `,_jsx(_components.code,{children:`GitHub documentation demo`}),` in this example.`]})]}),_jsxs(Step,{title:`Write a detailed focus prompt`,children:[_jsxs(_components.p,{children:[`In `,_jsx(_components.strong,{children:`Focus prompt`}),`, explain what you want Sphinx to learn and give it the context it needs to understand your repository.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Take time to write a detailed, specific prompt.`}),` A high-quality focus prompt helps Sphinx find the right information and preserve the details your team needs. Include useful context and concrete questions, rather than just asking it to “summarize the repository.”`]})}),_jsx(_components.p,{children:`You do not need to write code. In plain language, include:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Your goal:`}),` Who will use this knowledge, and what should it help them do?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Where to look:`}),` Name important topics, folders, or files if you know them.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Context:`}),` Explain unfamiliar terms and identify which information is current or most reliable.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Details to keep:`}),` Call out rules, calculations, exceptions, dependencies, or setup steps that matter.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Questions to answer:`}),` Give a few real questions you want Sphinx to be able to answer afterward.`]}),`\n`]}),_jsxs(_components.p,{children:[`For more guidance, see `,_jsx(_components.a,{href:`/ingest-prompts`,children:`Write a good ingest prompt`}),`. In a Git ingest, the focus prompt sets priorities: it steers which files and topics Sphinx focuses on, but it does not hide files from Sphinx.`]}),_jsx(_components.p,{children:`For the documentation repository in this guide, a detailed prompt could look like this:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`24`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`24`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Help customer-facing teammates explain how customers connect Claude`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`and ChatGPT to Sphinx. The knowledge should support someone walking`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`a non-technical customer through setup.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Start with the guides in claude/, claude-code-cli/,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`claude-desktop/, and chatgpt-desktop/. Follow related guides when`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`they explain a prerequisite or a step in the same setup process.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Keep the instructions for each client separate. Explain the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`difference between connecting to Sphinx MCP and using the Sphinx`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`LLM Gateway, based on the repository's guides.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Focus on prerequisites, exact button names, configuration values,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`sign-in steps, actions that need an administrator, and how users`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`check that the connection worked. Include documented troubleshooting.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`If guides disagree or leave a step unclear, call that out instead`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`of guessing.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`The knowledge should answer:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- What does a customer need before starting each setup?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- What should they click and enter, in order?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Which steps need help from an administrator?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- How do they confirm that setup worked?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsxs(Accordion,{title:`Example for an internal analytics dashboard repository`,id:`example-for-an-internal-analytics-dashboard-repository`,children:[_jsx(_components.p,{children:`Use this example if your team builds internal analytics dashboards. Add the dashboard names, business topics, and folders that matter to your team.`}),_jsx(CodeBlock,{filename:``,numberOfLines:`36`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`36`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`This repository contains our internal analytics dashboards. Help`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`our teammates understand what each dashboard shows, how its numbers`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`are calculated, and how to use them to answer business questions.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`We want Sphinx's knowledge to reflect the repository as it evolves.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Focus on dashboard definitions, charts, queries, data models, and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`related documentation. Follow supporting code, configuration, and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`tests when they explain a calculation or business rule.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`For each dashboard, explain its purpose, intended audience, and`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`the business questions it answers. Preserve chart and metric names`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`so teammates can match the explanation to what they see on screen.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`For each metric, explain its business meaning, calculation, source`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`tables, filters, exclusions, and time period. Explain how tables`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`connect, what one row represents, and how dates and time zones`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`affect the result. Include these details when the repository`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`provides them; flag anything unclear instead of guessing.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Explain how dashboard filters, default selections, and drill-downs`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`change the numbers. Include documented refresh schedules, data`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`delays, limitations, and reasons similar charts may disagree.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`On each ingest, use the current repository definitions. Capture`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`new dashboards and changed calculations, filters, or business`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`rules. Identify deprecated dashboards and metrics where the`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`repository marks them as such. Include relevant file paths so`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`teammates can find the source of an explanation.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`The knowledge should answer:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Which dashboard should I use for my business question?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- What does this metric mean, and how is it calculated?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- What data is included or excluded?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- How do filters and date ranges affect the result?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- How fresh is the data, and what limitations should I know?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})]}),_jsxs(_components.p,{children:[`Adapt these examples to your repository. `,_jsx(_components.strong,{children:`Specificity matters more than length:`}),` include the context you know and the details you need, without adding unrelated instructions. Explain the business meaning you want to capture, rather than asking for a file-by-file code summary.`]}),_jsx(Frame,{caption:`Choose a connector and repository, then enter your detailed focus prompt. You can scroll within the prompt to review it.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=35480dac28d27dd903143959fdf47cc2`,alt:`Git Repository form with a saved connector, sphinx-ml/docs repository, a detailed focus prompt, and Create ingest button`,\"data-og-width\":`1280`,width:`1280`,\"data-og-height\":`720`,height:`720`,\"data-path\":`git-ingest/10-configure-ingest.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?w=280\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=664607748ab16ba4ed81eb5cf8afc8e4 280w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?w=560\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=2149b25103dd3c7d6bfa52590f28c24b 560w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?w=840\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=83aec61ca1d483bb3d2a3a897974f656 840w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?w=1100\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=f43a7325bdeb2fef66ed73f784beecc4 1100w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?w=1650\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=8ce8d2251e7467849498dd2aa0aacea6 1650w, https://mintcdn.com/sphinx-977f1673/d5ifIIhFBi4rkDeI/git-ingest/10-configure-ingest.png?w=2500\u0026fit=max\u0026auto=format\u0026n=d5ifIIhFBi4rkDeI\u0026q=85\u0026s=f55e66591c88fd41fb966ebcfcd6afc1 2500w`})})]}),_jsxs(Step,{title:`Create the ingest`,children:[_jsxs(_components.p,{children:[`Check that the repository and focus prompt are correct, then click `,_jsx(_components.strong,{children:`Create ingest`}),` once.`]}),_jsxs(_components.p,{children:[`Sphinx opens a page where you can follow its progress. You can also find the job later under `,_jsx(_components.strong,{children:`Ingest`}),`.`]}),_jsxs(_components.p,{children:[`When `,_jsx(_components.strong,{children:`Review Changes`}),` appears, click it to read the proposed knowledge before accepting it.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`if-you-get-stuck`,children:`If you get stuck`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`GitHub did not open, or I closed the tab`,id:`github-did-not-open-or-i-closed-the-tab`,children:[_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Connectors`}),` and open your connector.`]}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Install GitHub App`}),` to finish installation, or `,_jsx(_components.strong,{children:`Sign in with GitHub`}),` to finish signing in. You do not need to create another connector.`]})]}),_jsxs(Accordion,{title:`GitHub says I need an organization owner`,id:`github-says-i-need-an-organization-owner`,children:[_jsx(_components.p,{children:`Ask the person who manages your company’s GitHub account to complete the app setup for your repository. Return to Sphinx afterward and refresh the connector page.`}),_jsxs(_components.p,{children:[`If the app already has access but Sphinx still shows `,_jsx(_components.strong,{children:`Install GitHub App`}),`, ask the Sphinx team for help connecting that existing installation.`]})]}),_jsxs(Accordion,{title:`My repository is missing`,id:`my-repository-is-missing`,children:[_jsx(_components.p,{children:`Check that you selected the right GitHub connector and signed in with an account that can access the repository.`}),_jsxs(_components.p,{children:[`Open the connector and use `,_jsx(_components.strong,{children:`Manage GitHub App`}),` to check that your repository is included. Ask your GitHub administrator for help if you cannot change this. Then reload the ingest page and select the connector again.`]})]}),_jsx(Accordion,{title:`My connector is missing`,id:`my-connector-is-missing`,children:_jsxs(_components.p,{children:[`Check the `,_jsx(_components.strong,{children:`Workspace`}),` in Settings. Use the same workspace where you created the connector.`]})}),_jsx(Accordion,{title:`Git Repository is missing`,id:`git-repository-is-missing`,children:_jsx(_components.p,{children:`Ask the Sphinx team to enable Git ingest for your workspace. Include your workspace’s name.`})}),_jsx(Accordion,{title:`Create ingest is greyed out`,id:`create-ingest-is-greyed-out`,children:_jsxs(_components.p,{children:[`Make sure you selected a connected `,_jsx(_components.strong,{children:`GitHub connector`}),`, chose a `,_jsx(_components.strong,{children:`Repository`}),`, and entered a `,_jsx(_components.strong,{children:`Focus prompt`}),`.`]})}),_jsx(Accordion,{title:`Which version of my files will Sphinx read?`,id:`which-version-of-my-files-will-sphinx-read`,children:_jsx(_components.p,{children:`Sphinx reads the repository’s default branch—the version GitHub normally shows when you open the repository. There is no branch selector on the ingest page.`})}),_jsx(Accordion,{title:`I need help with an ingest`,id:`i-need-help-with-an-ingest`,children:_jsx(_components.p,{children:`Share the job ID, repository name, and any error message with the Sphinx team. If knowledge is missing, give one example of what you expected Sphinx to learn.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Connect GitHub and add a repository","description":"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.","icon":"github","href":"/git-ingest"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"1. Connect GitHub","slug":"1-connect-github","depth":2,"children":[]},{"title":"2. Set up the ingest","slug":"2-set-up-the-ingest","depth":2,"children":[]},{"title":"If you get stuck","slug":"if-you-get-stuck","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"sphinx-977f1673","siteName":"Sphinx Docs","title":"Connect GitHub and add a repository - Sphinx Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-15T19:17:55.832Z","originalFileLocation":"git-ingest.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Sphinx Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Connect GitHub and add a repository - Sphinx Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sphinx Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sphinx.ai/git-ingest\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sphinx-977f1673.mintlify.app/_mintlify/api/og/v2?division=Knowledge+base\u0026amp;title=Connect+GitHub+and+add+a+repository\u0026amp;description=A+step-by-step+guide+to+connecting+GitHub+and+adding+repository+knowledge+to+Sphinx.\u0026amp;theme=b55261280c7889c2fc1aaf81\u0026amp;signature=40533c96d944c9fb869f087385842cb5609c9d46acb585158095a3d82225ab41\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Connect GitHub and add a repository - Sphinx Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sphinx-977f1673.mintlify.app/_mintlify/api/og/v2?division=Knowledge+base\u0026amp;title=Connect+GitHub+and+add+a+repository\u0026amp;description=A+step-by-step+guide+to+connecting+GitHub+and+adding+repository+knowledge+to+Sphinx.\u0026amp;theme=b55261280c7889c2fc1aaf81\u0026amp;signature=40533c96d944c9fb869f087385842cb5609c9d46acb585158095a3d82225ab41\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/sphinx-977f1673/8idukxGllAmRhGRj/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sphinx Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#704643\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sphinx.ai/git-ingest\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/git-ingest.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sphinx.ai/#organization\",\"name\":\"Sphinx Docs\",\"url\":\"https://docs.sphinx.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/sphinx-977f1673/1wWAviaQrCe_7dvG/logo/sphinx.svg?fit=max\u0026auto=format\u0026n=1wWAviaQrCe_7dvG\u0026q=85\u0026s=3f3d9bb107547b1e4075269ff8505a2c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sphinx.ai#website\",\"name\":\"Sphinx Docs\",\"url\":\"https://docs.sphinx.ai\",\"publisher\":{\"@id\":\"https://docs.sphinx.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sphinx.ai/git-ingest#webpage\",\"url\":\"https://docs.sphinx.ai/git-ingest\",\"name\":\"Connect GitHub and add a repository\",\"description\":\"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.\",\"dateModified\":\"2026-10-15T19:17:55.832Z\",\"isPartOf\":{\"@id\":\"https://docs.sphinx.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sphinx.ai/git-ingest#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sphinx.ai/git-ingest#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sphinx Docs\",\"item\":\"https://docs.sphinx.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Connect GitHub and add a repository\",\"item\":\"https://docs.sphinx.ai/git-ingest\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sphinx.ai/git-ingest#article\",\"headline\":\"Connect GitHub and add a repository\",\"name\":\"Connect GitHub and add a repository\",\"description\":\"A step-by-step guide to connecting GitHub and adding repository knowledge to Sphinx.\",\"url\":\"https://docs.sphinx.ai/git-ingest\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sphinx.ai/git-ingest#webpage\"},\"dateModified\":\"2026-10-15T19:17:55.832Z\",\"publisher\":{\"@id\":\"https://docs.sphinx.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sphinx.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sphinx Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sphinx Docs","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://www.sphinx.ai/blog/"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Home","pages":[{"title":"Sphinx overview","href":"/overview"}]},{"group":"Setup","pages":[{"title":"Sphinx plugin onboarding for Claude","href":"/claude/sphinx-plugin-onboarding"},{"title":"API key setup for Claude Code CLI","href":"/claude-code-cli/api-key-setup"},{"title":"Connect Claude Desktop to an API gateway","href":"/claude-desktop/api-gateway-setup"},{"title":"Connect Claude Desktop to Sphinx MCP when using Third-Party Inference","href":"/claude-desktop/sphinx-mcp/install-sphinx-mcp"},{"title":"Setup ChatGPT Desktop LLM Gateway","href":"/chatgpt-desktop/setup-llm-gateway"},{"title":"Install Sphinx MCP in ChatGPT Desktop","href":"/chatgpt-desktop/install-sphinx-mcp"}]},{"group":"Python SDK","pages":[{"title":".fit Reference","href":"/python-sdk/fit"},{"title":"Run your first ingest job","description":"Install sphinx_learn, submit your first documents with .fit, and follow the ingest job in Sphinx.","href":"/python-sdk/quickstart"}]},{"group":"Knowledge base","pages":[{"title":"Connect GitHub and add a repository","icon":"github","href":"/git-ingest"},{"title":"Write a good ingest prompt","description":"How to write the prompt or focus prompt that guides what Sphinx learns when you add content to your knowledge base.","icon":"pen-to-square","href":"/ingest-prompts"}]}]}]},"title":"Connect GitHub and add a repository - Sphinx Docs","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-B0bJ23PC.js","DynamicMarkdown-UGQuxDKp.js","zoom-image-lightbox-B0E5HDf_.js","lightbox-handle-r17bVUz3.js"]}