| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 3532 |
| Technical Name |
github_connector_api |
| License | OPL-1 |
| Website | https://www.ganemo.co |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Lines of code | 3532 |
| Technical Name |
github_connector_api |
| License | OPL-1 |
| Website | https://www.ganemo.co |
GitHub Connector
Seamless Odoo-GitHub Integration
Connect your GitHub organizations, synchronize repositories and branches, and manage your development workflow directly from Odoo.
What We're Solving
----------------
Mass Repository Sync
Managing hundreds of repositories? Our smart synchronization engine handles large volumes (400+) without timeouts, using Intelligent Pagination and Update Detection.
Team & Member Mapping
Automatically import your GitHub Teams and Members. Map GitHub users to Odoo Partners, ensuring clear visibility of who is working on what project.
Setup & User Manual
Complete Configuration Guide
1. Prerequisites
- Odoo Administrator Access: You need permissions to access Settings and Technical features.
- GitHub Account: A valid GitHub account with access to the organizations you want to sync.
- Python Dependencies: Install required packages via
pip3 install -r requirements.txt(GitPython, pygount, pathspec, PyGithub).
2. Generating the GitHub Token (PAT)
To communicate with GitHub, Odoo needs a "Personal Access Token (Classic)".
- Log in to GitHub and go to Settings (Top right profile icon).
- Scroll down to the bottom left and click on Developer settings.
- Click on Personal access tokens > Tokens (classic).
- Click the Generate new token dropdown and select Generate new token (classic).
- Scopes Selection: You MUST check the following boxes:
-
repo(Full control of private repositories) -
read:org(Read organization data) -
read:user(Read user profile data)
-
- Click Generate token and COPY IT IMMEDIATELY. You won't see it again.
- SSO Users (Critical): If your organization uses Single Sign-On (SAML), locate your new token in the list, click Configure SSO, and click Authorize next to your organization's name. If you skip this, Odoo will see "0 repositories".
3. Configuring Odoo
Once you have the token:
- Navigate to Settings.
- Select Github Connector from the settings sidebar.
- Paste your token into the Github Token field.
- Click Save.
4. Organization Setup & Filtering
Now, tell Odoo which organization to sync.
Creating the Record
Go to GitHub > Organizations and click Create.
Organization Name: Must match the GitHub URL
slug exactly.
Example: For https://github.com/ganemo, enter ganemo.
Advanced Filtering
Sync Filter Topics: Filter by GitHub topics. The first topic
is required (AND). Extra topics use OR logic. Example:
odoo-sync, odoo-module, priority
→ syncs repos with odoo-sync AND (odoo-module OR priority). Leave empty
to sync all.
Ignored Repositories: List repositories you want to exclude (e.g., forks, backups). One name per line.
Organization Series: Define which branches to sync (e.g.,
16.0, 17.0, main). Only matching branches will be imported.
- Set to 20-50 for safe, continuous background syncing.
- Set to 100+ only if you have a powerful server.
5. Execution & Automation
Initial Sync
Click Sync Repositories. Odoo will fetch the repository list first. Then, it will start syncing branches for the first batch of 20 repositories.
Smart Updates
On subsequent runs, Odoo checks the updated_at timestamp from GitHub. If a repo hasn't
changed, it is instantly skipped, saving massive server resources.
Automated Cron
A Scheduled Action runs automatically every 4 hours. It processes the next batch of repositories and any new updates.
Global Ready | Multi-Language Support
This module is fully translated into English and Spanish (en_US, es_ES, es_PE, es_MX), ensuring a professional experience for international organizations.
Why Choose Ganemo?
----------------
Ganemo is the world's leading Odoo App developer and a multi-award-winning Gold Partner. For over 5 years, we have been recognized as the #1 seller of high-quality apps on the Odoo App Store. Trusted as the "Best Partner" in USA, Mexico, Chile, Spain, Colombia, Ecuador, and Peru, we deliver robust, secure, and localization-compliant solutions for global businesses.
QA / User Testing Scenarios
Enterprise Validation Plan
Scenario 1: Initial Organization Sync
- Go to GitHub > Organizations.
- Create a new Organization record with your GitHub Name.
- Click Sync Repositories.
- Test: Verify that all repositories are fetched into the list.
- Test: Verify that the first 20 repositories have their branches created.
Scenario 2: Incremental Updates & Optimization
- Make a change (push/commit) to ONE repository in GitHub.
- Run the Sync Repositories again in Odoo.
- Test: Verify that Odoo ONLY downloads branches for that modified repository.
- Test: Check the "Github Write Date" field on the repository record to see it updated.
Scenario 3: Branch Filtering (Series)
Goal: Only sync relevant stable branches.
- Configure Organization Series with "17.0" and "18.0".
- Sync a repository that has "15.0", "16.0", "17.0", and "18.0" branches.
- Result: Only "17.0" and "18.0" branches appear in Odoo.
Scenario 4: Ignored Repositories & Exclusions
- Identify a repository name, e.g., "demo-repo".
- Add "demo-repo" to the Ignored Repositories field in the Organization.
- Click Sync Repositories.
- Result: The repository "demo-repo" may be listed, but it has 0 branches and is_ignored=True.
Scenario 6: Topic-Based Sync Filtering
- Add the topic
odoo-syncto your target repositories in GitHub (Settings > Topics). - In Organization Settings, set Sync Filter Topics to
odoo-sync. - Click Sync Repositories.
- Result: Only repositories with the topic
odoo-syncare synchronized.
odoo-sync, module-a, module-b. The first topic
(odoo-sync) is required (AND). The rest use OR logic: repos must have odoo-sync AND at
least one of module-a or module-b.
Scenario 5: Large Scale Sync (Timeout Prevention)
- Set Branch Sync Limit per Batch to
5in Organization Settings. - Ensure you have more than 5 updated repositories.
- Click Sync Repositories.
- Result: Usage logs should show the process finishing quickly, having processed exactly 5 repositories deeply.
FAQ & Troubleshooting
Common Resolutions
Sync freezes or Times Out?
Reason: You are likely trying to sync too many repos at once.
Fix: Reduce the "Branch Sync Limit per Batch" in Organization Settings to 20 or lower.
Private Repos not showing?
Reason: Your Token lacks permissions.
Fix: Ensure your
Classic Token has repo and read:org scopes. If using SSO, click
Configure SSO and Authorize the org.
Branches are missing?
Reason: They don't match your Series filters.
Fix: Check "Organization Series" tab. Add "master" or "main" if you want to see default branches.
Error: "Not Found" or "404"?
Reason: Incorrect Organization Name or Token issues.
Fix: Verify the Organization Name matches the URL slug exactly. Re-check the Token.
Get a Quote & Resolve Commercial Doubts
Join thousands of satisfied clients on Odoo. Contact our sales team directly.
Official WhatsApp
Fastest response time.
LINK
+1 (828) 672-6150
Book a Demo
Let's explore your needs.
LINK
Schedule Meeting
Technical Support
Existing customers regarding module functionality.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module