Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.
Connecting GitHub lets CodeCobra push custom module code directly to your repositories, create pull requests, and manage branch-based deployments. This is how your customizations move from CodeCobra to your actual Odoo environment.
Click Connect GitHub and follow the prompts to authorize the CodeCobra GitHub app on your account. You’ll be redirected to GitHub where you can review the permissions being requested.
3
Select repositories
Choose which repositories CodeCobra can access. You can grant access to all repositories or select specific ones. You can always change this later from your GitHub app settings.
Workspaces can have their own GitHub connection, separate from individual user accounts. This is useful when the workspace owns the repositories rather than any individual member. Workspace owners can connect GitHub from the workspace settings.
Once GitHub is connected, you can link repositories to any project:
1
Open project settings
Open a project and go to the Settings tab.
2
Add a repository
Click Add Repository and search for the repository you want to connect.
3
Configure branches
For each repository, select:
Staging branch — where code goes for testing (e.g., staging or develop)
Production branch — where final, approved code is deployed (e.g., main or production)
You can connect multiple repositories to a single project. This is common when your Odoo setup uses separate repos for different module groups (e.g., one repo for custom modules and another for third-party customizations).
CodeCobra uses a branching workflow to keep your code safe and organized:
Branch type
Purpose
Who creates it
Feature branch
Where CodeCobra writes code for a specific task
Created automatically per task
Staging branch
Where you test changes before production
You configure this when adding a repo
Production branch
Where live, approved code goes
You configure this when adding a repo
The workflow is:
CodeCobra creates a feature branch for each task
When you’re ready to test, you merge to staging from the task’s Branch Manager
After testing on staging, you merge to production to go live
Your production code is never modified until you explicitly approve and merge it. This gives you full control over what gets deployed and when.
If your team uses a review process, the staging merge is a natural checkpoint. Deploy staging to a test environment, have your team review the changes, and only merge to production when everyone is satisfied.
This removes CodeCobra’s ability to push code or create pull requests. It does not delete any code that has already been pushed to your repositories.
Disconnecting GitHub prevents CodeCobra from deploying code for all projects that use your GitHub connection. Existing tasks in development will not be able to merge until you reconnect. Consider the impact before disconnecting.
Can I connect the same repository to multiple projects?Yes. If you have one repository that serves multiple Odoo instances, you can connect it to each corresponding project with different branch configurations.What happens if I add a new repository to an existing project?Existing tasks won’t be affected. New tasks will include the new repository in their branch manager. If you need an existing task to work with a newly added repo, create a follow-up task.Do I need GitHub to use CodeCobra?No. You can use CodeCobra without GitHub — you’ll still be able to explore Odoo features, create development plans, build modules, and preview changes. You just won’t be able to merge code through the Branch Manager. Instead, you can download your customizations as a ZIP file and deploy manually.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CodeCobra","colors":{"primary":"#16A34A","light":"#4ADE80","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/rooteam/ZjWZy-Fv5eN6NLjR/images/file.svg?fit=max\u0026auto=format\u0026n=ZjWZy-Fv5eN6NLjR\u0026q=85\u0026s=9e8c21b1d5a2894c24e8dac1fa5f737c","dark":"https://mintcdn.com/rooteam/jQjrykmEoo3G0v-A/images/logo-light.svg?fit=max\u0026auto=format\u0026n=jQjrykmEoo3G0v-A\u0026q=85\u0026s=6e301bf2bb33ff26daefed0c75b4a45b","href":"https://codecobra.ai/"},"favicon":"https://mintcdn.com/rooteam/jQjrykmEoo3G0v-A/favicon.svg?fit=max\u0026auto=format\u0026n=jQjrykmEoo3G0v-A\u0026q=85\u0026s=12e841861a8dfc86573053c01e230043","navbar":{"links":[{"href":"https://codecobra.ai/blog","label":"Blog"},{"href":"https://codecobra.ai/support","label":"Support"},{"href":"https://codecobra.ai/login","label":"Sign In"}],"primary":{"type":"button","label":"Get Started Free","href":"https://codecobra.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/codecobra","website":"https://codecobra.ai"}},"search":{"prompt":"Ask me how CodeCobra works"},"seo":{"organization":{"id":"https://codecobra.ai/#organization","name":"CodeCobra","legalName":"Rooteam.com Inc","url":"https://codecobra.ai","sameAs":["https://www.linkedin.com/company/codecobra/"]},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rooteam","hasAudioNarration":false,"actualSubdomain":"rooteam","customDomains":["docs.codecobra.ai"],"gitSource":{"type":"github","owner":"rooteam","repo":"seacobra","deployBranch":"master","contentDirectory":"mint","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ac4832c7c2921fdba0c92ed","collectionId":"d2ea8d4a-35f3-44ab-990b-76b15830b35f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ac4832c7c2921fdba0c92ed"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac5469383fcdf297018401d","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API reference","count":149},{"language":"default","tag":"Endpoints","count":146},{"language":"default","tag":"Guides","count":32},{"language":"default","tag":"Projects","count":21},{"language":"default","tag":"Tasks","count":21},{"language":"default","tag":"Odoo Connections","count":20},{"language":"default","tag":"Billing","count":19},{"language":"default","tag":"Members \u0026 Invitations","count":16},{"language":"default","tag":"Plans \u0026 Artifacts","count":13},{"language":"default","tag":"Workspace Billing","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"projects/github-integration","slug":"/projects/github-integration","pageMetadata":{"title":"GitHub integration","description":"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.","keywords":["github","repository","deploy","git","integration"],"href":"/projects/github-integration"},"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: \"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.\"\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={code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Info,Step,Steps,Table,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Connecting GitHub lets CodeCobra push custom module code directly to your repositories, create pull requests, and manage branch-based deployments. This is how your customizations move from CodeCobra to your actual Odoo environment.`}),`\n`,_jsx(Heading,{level:`2`,id:`connect-your-github-account`,children:`Connect your GitHub account`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Go to settings`,children:_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Settings > GitHub`}),`.`]})}),_jsx(Step,{title:`Authorize CodeCobra`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect GitHub`}),` and follow the prompts to authorize the CodeCobra GitHub app on your account. You’ll be redirected to GitHub where you can review the permissions being requested.`]})}),_jsx(Step,{title:`Select repositories`,children:_jsx(_components.p,{children:`Choose which repositories CodeCobra can access. You can grant access to all repositories or select specific ones. You can always change this later from your GitHub app settings.`})})]}),`\n`,_jsx(Info,{children:`Workspaces can have their own GitHub connection, separate from individual user accounts. This is useful when the workspace owns the repositories rather than any individual member. Workspace owners can connect GitHub from the workspace settings.`}),`\n`,_jsx(Heading,{level:`2`,id:`add-repositories-to-a-project`,children:`Add repositories to a project`}),`\n`,_jsx(_components.p,{children:`Once GitHub is connected, you can link repositories to any project:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open project settings`,children:_jsxs(_components.p,{children:[`Open a project and go to the `,_jsx(_components.strong,{children:`Settings`}),` tab.`]})}),_jsx(Step,{title:`Add a repository`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Add Repository`}),` and search for the repository you want to connect.`]})}),_jsxs(Step,{title:`Configure branches`,children:[_jsx(_components.p,{children:`For each repository, select:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Staging branch`}),` — where code goes for testing (e.g., `,_jsx(_components.code,{children:`staging`}),` or `,_jsx(_components.code,{children:`develop`}),`)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Production branch`}),` — where final, approved code is deployed (e.g., `,_jsx(_components.code,{children:`main`}),` or `,_jsx(_components.code,{children:`production`}),`)`]}),`\n`]})]})]}),`\n`,_jsxs(_components.p,{children:[`You can connect `,_jsx(_components.strong,{children:`multiple repositories`}),` to a single project. This is common when your Odoo setup uses separate repos for different module groups (e.g., one repo for custom modules and another for third-party customizations).`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-branches-work`,children:`How branches work`}),`\n`,_jsx(_components.p,{children:`CodeCobra uses a branching workflow to keep your code safe and organized:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Branch type`}),_jsx(_components.th,{children:`Purpose`}),_jsx(_components.th,{children:`Who creates it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Feature branch`})}),_jsx(_components.td,{children:`Where CodeCobra writes code for a specific task`}),_jsx(_components.td,{children:`Created automatically per task`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Staging branch`})}),_jsx(_components.td,{children:`Where you test changes before production`}),_jsx(_components.td,{children:`You configure this when adding a repo`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Production branch`})}),_jsx(_components.td,{children:`Where live, approved code goes`}),_jsx(_components.td,{children:`You configure this when adding a repo`})]})]})]}),`\n`,_jsx(_components.p,{children:`The workflow is:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`CodeCobra creates a `,_jsx(_components.strong,{children:`feature branch`}),` for each task`]}),`\n`,_jsxs(_components.li,{children:[`When you’re ready to test, you `,_jsx(_components.strong,{children:`merge to staging`}),` from the task’s Branch Manager`]}),`\n`,_jsxs(_components.li,{children:[`After testing on staging, you `,_jsx(_components.strong,{children:`merge to production`}),` to go live`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Your production code is never modified until you explicitly approve and merge it. This gives you full control over what gets deployed and when.`}),`\n`,_jsx(Tip,{children:`If your team uses a review process, the staging merge is a natural checkpoint. Deploy staging to a test environment, have your team review the changes, and only merge to production when everyone is satisfied.`}),`\n`,_jsx(Heading,{level:`2`,id:`disconnect-github`,children:`Disconnect GitHub`}),`\n`,_jsx(_components.p,{children:`To remove the GitHub connection:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Settings > GitHub`})]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Disconnect`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`This removes CodeCobra’s ability to push code or create pull requests. It does `,_jsx(_components.strong,{children:`not`}),` delete any code that has already been pushed to your repositories.`]}),`\n`,_jsx(Warning,{children:`Disconnecting GitHub prevents CodeCobra from deploying code for all projects that use your GitHub connection. Existing tasks in development will not be able to merge until you reconnect. Consider the impact before disconnecting.`}),`\n`,_jsx(Heading,{level:`2`,id:`common-questions`,children:`Common questions`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Can I connect the same repository to multiple projects?`})}),`\n`,_jsx(_components.p,{children:`Yes. If you have one repository that serves multiple Odoo instances, you can connect it to each corresponding project with different branch configurations.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What happens if I add a new repository to an existing project?`})}),`\n`,_jsx(_components.p,{children:`Existing tasks won’t be affected. New tasks will include the new repository in their branch manager. If you need an existing task to work with a newly added repo, create a follow-up task.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Do I need GitHub to use CodeCobra?`})}),`\n`,_jsx(_components.p,{children:`No. You can use CodeCobra without GitHub — you’ll still be able to explore Odoo features, create development plans, build modules, and preview changes. You just won’t be able to merge code through the Branch Manager. Instead, you can download your customizations as a ZIP file and deploy manually.`})]})}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":"GitHub integration","description":"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.","keywords":["github","repository","deploy","git","integration"],"href":"/projects/github-integration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Connect your GitHub account","slug":"connect-your-github-account","depth":2,"children":[]},{"title":"Add repositories to a project","slug":"add-repositories-to-a-project","depth":2,"children":[]},{"title":"How branches work","slug":"how-branches-work","depth":2,"children":[]},{"title":"Disconnect GitHub","slug":"disconnect-github","depth":2,"children":[]},{"title":"Common questions","slug":"common-questions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rooteam","siteName":"CodeCobra","title":"GitHub integration - CodeCobra","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T02:19:45.002Z","originalFileLocation":"projects/github-integration.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=\"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CodeCobra\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_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/rooteam/kOvF8eXIILyBQ68C/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"GitHub integration - CodeCobra\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CodeCobra\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.codecobra.ai/projects/github-integration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rooteam.mintlify.app/_mintlify/api/og/v2?division=Projects\u0026amp;title=GitHub+integration\u0026amp;description=Connect+your+GitHub+repositories+to+deploy+Odoo+modules+directly+from+CodeCobra.\u0026amp;theme=2f8a691ae13d9be2f40976aa\u0026amp;signature=3aa972cf00a583456e71c935c2387d972d15c1406d3dd89923fd75d87a32c375\">\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=\"GitHub integration - CodeCobra\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rooteam.mintlify.app/_mintlify/api/og/v2?division=Projects\u0026amp;title=GitHub+integration\u0026amp;description=Connect+your+GitHub+repositories+to+deploy+Odoo+modules+directly+from+CodeCobra.\u0026amp;theme=2f8a691ae13d9be2f40976aa\u0026amp;signature=3aa972cf00a583456e71c935c2387d972d15c1406d3dd89923fd75d87a32c375\">\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/rooteam/kOvF8eXIILyBQ68C/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CodeCobra\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16A34A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.codecobra.ai/projects/github-integration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/projects/github-integration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://codecobra.ai/#organization\",\"name\":\"CodeCobra\",\"legalName\":\"Rooteam.com Inc\",\"url\":\"https://codecobra.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rooteam/ZjWZy-Fv5eN6NLjR/images/file.svg?fit=max\u0026auto=format\u0026n=ZjWZy-Fv5eN6NLjR\u0026q=85\u0026s=9e8c21b1d5a2894c24e8dac1fa5f737c\"},\"sameAs\":[\"https://www.linkedin.com/company/codecobra/\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.codecobra.ai#website\",\"name\":\"CodeCobra\",\"url\":\"https://docs.codecobra.ai\",\"publisher\":{\"@id\":\"https://codecobra.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.codecobra.ai/projects/github-integration#webpage\",\"url\":\"https://docs.codecobra.ai/projects/github-integration\",\"name\":\"GitHub integration\",\"description\":\"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.\",\"dateModified\":\"2026-09-23T02:19:45.002Z\",\"isPartOf\":{\"@id\":\"https://docs.codecobra.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.codecobra.ai/projects/github-integration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.codecobra.ai/projects/github-integration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Projects\",\"item\":\"https://docs.codecobra.ai/projects/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitHub integration\",\"item\":\"https://docs.codecobra.ai/projects/github-integration\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.codecobra.ai/projects/github-integration#article\",\"headline\":\"GitHub integration\",\"name\":\"GitHub integration\",\"description\":\"Connect your GitHub repositories to deploy Odoo modules directly from CodeCobra.\",\"url\":\"https://docs.codecobra.ai/projects/github-integration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.codecobra.ai/projects/github-integration#webpage\"},\"dateModified\":\"2026-09-23T02:19:45.002Z\",\"keywords\":\"github, repository, deploy, git, integration\",\"publisher\":{\"@id\":\"https://codecobra.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.codecobra.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CodeCobra\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CodeCobra","nav":{"global":null,"tabs":[{"tab":"Guides","groups":[{"group":"Get started","pages":[{"title":"Welcome to CodeCobra","href":""},{"title":"Quickstart","href":"/getting-started/quickstart"},{"title":"Create your account","href":"/getting-started/create-account"},{"title":"Connect your Odoo","href":"/getting-started/connect-your-odoo"}]},{"group":"Ask and analyse","pages":[{"title":"Ask and analyse","href":"/ask/overview"},{"title":"Answer a question","href":"/ask/answer-a-question"},{"title":"Explore and learn Odoo","href":"/ask/explore-odoo"}]},{"group":"Deliverables","pages":[{"title":"Deliverables","href":"/deliverables/overview"},{"title":"Spreadsheets","href":"/deliverables/spreadsheets"},{"title":"Documents and decks","href":"/deliverables/documents-and-decks"},{"title":"Dashboards and web pages","href":"/deliverables/dashboards"}]},{"group":"Build and change","pages":[{"title":"Tasks","href":"/tasks/overview"},{"title":"Create a task","href":"/tasks/create-task"},{"title":"Plan and develop","href":"/tasks/plan-and-develop"},{"title":"Build a website or storefront","href":"/building/website-and-storefront"},{"title":"Review and deploy","href":"/tasks/review-and-deploy"}]},{"group":"Projects","pages":[{"title":"Projects","href":"/projects/overview"},{"title":"Create a project","description":"Set up a new project for your Odoo customizations.","href":"/projects/create-project"},{"title":"GitHub integration","href":"/projects/github-integration"},{"title":"Connect an Odoo environment","description":"Step-by-step guide to giving CodeCobra access to a real Odoo instance over MCP.","href":"/projects/odoo-environments"}]},{"group":"Workspaces","pages":[{"title":"Workspaces","href":"/organizations/overview"},{"title":"Members and roles","href":"/organizations/members-and-roles"}]},{"group":"Billing","pages":[{"title":"Billing","href":"/billing/overview"},{"title":"Capability classes and rates","href":"/billing/model-tiers"},{"title":"Manage payment methods","href":"/billing/manage-payments"}]},{"group":"Security","pages":[{"title":"Security","href":"/security/overview"},{"title":"Two-factor authentication","href":"/security/two-factor"},{"title":"Require 2FA for your workspace","href":"/security/enforce-2fa-for-your-org"},{"title":"Data retention","href":"/security/data-retention"}]},{"group":"Account","pages":[{"title":"Settings","href":"/settings"},{"title":"Support","href":"/support"},{"title":"Frequently asked questions","href":"/faq"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api/overview"}]}]},"title":"GitHub integration - CodeCobra","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}