Documentation Index
Fetch the complete documentation index at: https://docs.codecobra.ai/llms.txt
Use this file to discover all available pages before exploring further.
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.
Connect your GitHub account
Go to settings
Navigate to Settings > GitHub.
Authorize CodeCobra
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.
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.
Organizations can have their own GitHub connection, separate from individual user accounts. This is useful when the organization owns the repositories rather than any individual member. Organization owners can connect GitHub from the organization settings.
Add repositories to a project
Once GitHub is connected, you can link repositories to any project:
Open project settings
Open a project and go to the Settings tab.
Add a repository
Click Add Repository and search for the repository you want to connect.
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).
How branches work
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.
Disconnect GitHub
To remove the GitHub connection:
- Go to Settings > GitHub
- Click Disconnect
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.
Common questions
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.