[{"data":1,"prerenderedAt":191},["ShallowReactive",2],{"docs-/docs/guides/github-integration":3,"docs-/docs/guides/github-integration-surround":141,"docs-navigation":150},{"id":4,"title":5,"body":6,"description":132,"extension":133,"icon":134,"meta":135,"navigation":136,"path":137,"seo":138,"stem":139,"wip":136,"__hash__":140},"docs/docs/3.guides/1.github-integration.md","GitHub Integration",{"type":7,"value":8,"toc":113},"minimark",[9,14,23,27,30,35,38,42,45,49,53,56,60,63,67,74,78,82,98,102],[10,11,13],"h2",{"id":12},"overview","Overview",[15,16,17,18,22],"p",{},"Keystone uses a ",[19,20,21],"strong",{},"GitHub App"," to integrate with your repositories. This provides secure, granular access to your code and enables real-time updates through webhooks.",[10,24,26],{"id":25},"webhook-events","Webhook Events",[15,28,29],{},"Keystone listens to the following GitHub events:",[31,32,34],"h3",{"id":33},"push-events","Push events",[15,36,37],{},"Every push to a connected repository triggers the ingestion pipeline. Keystone fetches the new commits, analyzes the diffs, and updates its knowledge base.",[31,39,41],{"id":40},"pull-request-events","Pull request events",[15,43,44],{},"Pull request activity is tracked to capture discussion context and review decisions that don't always appear in commit messages.",[10,46,48],{"id":47},"managing-connections","Managing connections",[31,50,52],{"id":51},"adding-repositories","Adding repositories",[15,54,55],{},"You can add new repositories to an existing project from the project settings. The GitHub App installation flow lets you select which repositories Keystone has access to.",[31,57,59],{"id":58},"removing-repositories","Removing repositories",[15,61,62],{},"To disconnect a repository, visit the project settings and remove the connection. This stops webhook processing but does not delete previously ingested data.",[31,64,66],{"id":65},"reinstalling-the-app","Reinstalling the app",[15,68,69,70,73],{},"If you need to change permissions or reinstall the GitHub App, you can do so from your GitHub organization settings under ",[19,71,72],{},"Installed GitHub Apps",".",[10,75,77],{"id":76},"troubleshooting","Troubleshooting",[31,79,81],{"id":80},"webhooks-not-arriving","Webhooks not arriving",[83,84,85,89,92],"ul",{},[86,87,88],"li",{},"Verify the GitHub App is installed on the correct organization",[86,90,91],{},"Check that the repository is selected in the app's installation settings",[86,93,94,95],{},"Review webhook delivery logs in GitHub under ",[19,96,97],{},"Settings > Developer Settings > GitHub Apps",[31,99,101],{"id":100},"ingestion-stuck","Ingestion stuck",[83,103,104,107,110],{},[86,105,106],{},"Check the project dashboard for error messages",[86,108,109],{},"Ensure the repository is not empty",[86,111,112],{},"Large repositories may take longer to process initially",{"title":114,"searchDepth":115,"depth":115,"links":116},"",2,[117,118,123,128],{"id":12,"depth":115,"text":13},{"id":25,"depth":115,"text":26,"children":119},[120,122],{"id":33,"depth":121,"text":34},3,{"id":40,"depth":121,"text":41},{"id":47,"depth":115,"text":48,"children":124},[125,126,127],{"id":51,"depth":121,"text":52},{"id":58,"depth":121,"text":59},{"id":65,"depth":121,"text":66},{"id":76,"depth":115,"text":77,"children":129},[130,131],{"id":80,"depth":121,"text":81},{"id":100,"depth":121,"text":101},"How Keystone integrates with GitHub for real-time repository analysis","md",null,{},true,"/docs/guides/github-integration",{"title":5,"description":132},"docs/3.guides/1.github-integration","S1l7ca-_l0mJWtS0I97wctOcGvFdpAktnXPrKhfMCgc",[142,146],{"title":143,"path":144,"stem":145,"children":-1},"Core Concepts","/docs/concepts/overview","docs/2.concepts/1.overview",{"title":147,"path":148,"stem":149,"children":-1},"Agent Chat","/docs/guides/agent-chat","docs/3.guides/2.agent-chat",[151],{"title":152,"path":153,"stem":154,"children":155,"page":165},"Docs","/docs","docs",[156,174,180],{"title":157,"path":158,"stem":159,"children":160,"page":165},"Getting Started","/docs/getting-started","docs/1.getting-started",[161,166,170],{"title":162,"path":163,"stem":164,"wip":165},"Introduction","/docs/getting-started/introduction","docs/1.getting-started/1.introduction",false,{"title":167,"path":168,"stem":169,"wip":136},"Installation","/docs/getting-started/installation","docs/1.getting-started/2.installation",{"title":171,"path":172,"stem":173,"wip":165},"Quick Start","/docs/getting-started/quickstart","docs/1.getting-started/3.quickstart",{"title":175,"path":176,"stem":177,"children":178,"page":165},"Concepts","/docs/concepts","docs/2.concepts",[179],{"title":143,"path":144,"stem":145,"wip":165},{"title":181,"path":182,"stem":183,"children":184,"page":165},"Guides","/docs/guides","docs/3.guides",[185,186,187],{"title":5,"path":137,"stem":139,"wip":136},{"title":147,"path":148,"stem":149,"wip":136},{"title":188,"path":189,"stem":190,"wip":136},"MCP Server","/docs/guides/mcp","docs/3.guides/2.mcp",1779438657398]