This module allows you to:
- Fetch into Odoo social information from Github (Organizations, Teams, Users)
- Fetch into Odoo Code structure information from Github (Repositories, Branches)
- Download source code from Github
- Analyze repository code from rules previously created
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Connect Odoo to GitHub to import and keep in sync organizations, teams, members, repositories and branches, download source code locally, and analyze code statistics by rules.
This module adds a GitHub area in Odoo where you can store and synchronize information from GitHub. You can create organizations, repositories and teams directly from Odoo or import them by name, and then use sync buttons to refresh members, repositories, teams and branches from GitHub.
- Organizations show their members, repositories, teams and series, with counts and buttons to open related lists.
- Repositories show branches, teams and an 'ignored' flag; ignored repositories are not synchronized for branches or code download.
- Branches can be downloaded to a local folder and analyzed. Analysis rules (with path patterns) count code, documentation and empty lines using the cloc tool, and results are stored per rule.
- Scheduled jobs can automatically update organizations/teams, branch lists, download code and analyze branches.
- Partners (contacts) are linked to GitHub teams and organizations, with a flag for bot accounts.
- A configuration parameter or Odoo config file must contain a GitHub access token; otherwise synchronization raises an error.
- Wizards let you create a new repository or team on GitHub from Odoo.
The module touches res.partner, github.organization, github.repository, github.repository.branch, github.team, analysis rules and their reports.
Depends on
Required by other modules
Menus it adds
Models and fields (17)
- github.team · new modelname, privacy, parent_id (Parent Team), github_url (Github URL), description, partner_ids (Members), partner_qty (Number of Members), complete_name, repository_ids (Repositories), repository_qty (Number of Repositories), organization_id (Organization)
- res.partner · new modelis_bot_account (Is Bot Github Account), github_team_qty (Number of Teams), organization_ids (Organizations), organization_qty (Number of Organizations), github_team_partner_ids (Teams)
- github.repository · new modelname, color (Color Index), website, team_ids (Teams), team_qty (Number of Teams), is_ignored, description, complete_name, organization_id (Organization), analysis_rule_ids (Analysis Rules), repository_branch_ids (Branches), repository_branch_qty (Number of Branches), inhibit_inherited_rules (Inhibit inherited rules)
- wizard.create.team · new modelname, privacy, description, organization_id, wizard_partner_ids (Team Members), wizard_repository_ids (Team Repositories)
- github.organization · new modelname (Organization Name), email, image, location, team_ids (Teams), team_qty (Number of Teams), member_ids (Members), member_qty (Number of Members), description, website_url, ci_url_pattern (CI URL Pattern), repository_ids (Repositories), repository_qty (Number of Repositories), analysis_rule_ids (Analysis Rules), coverage_url_pattern (Coverage URL Pattern), organization_serie_ids (Organization Series), organization_serie_qty (Number of Series), ignored_repository_names (Ignored Repositories)
- github.team.partner · new modelrole, team_id (Team), partner_id (Member), context_search_default_team_id, context_search_default_partner_id
- github.analysis.rule · new modelname, paths, group_id (Group)
- abstract.github.model · new modelgithub_url (Github URL), github_name (Github Technical Name), github_write_date (Last Write Date on Github), github_create_date (Create Date on Github), github_id_external (Github Id), github_last_sync_date (Last Sync Date with Github)
- github.team.repository · new modelteam_id (Team), permission, repository_id (Repository), context_search_default_team_id, context_search_default_repository_id
- github.repository.branch · new modelname, size (Size (Byte) ), state, ci_url (CI URL), mb_size (Size (Megabyte)), github_url (Github URL), local_path, coverage_url (Coverage URL), complete_name, repository_id (Repository), sequence_serie (Sequence Serie), organization_id (Organization), analysis_rule_ids (Analysis Rules), last_analyze_date, last_download_date, organization_serie_id (Organization Serie), analysis_rule_info_ids (Analysis Rules (info)), inhibit_inherited_rules (Inhibit inherited rules)
- wizard.create.repository · new modelname, website, description, organization_id
- wizard.load.github.model · new modelname (Github Name), github_type (Github Type Name), child_update (Update Child Objects)
- github.organization.serie · new modelname, sequence, organization_id (Organization)
- github.analysis.rule.group · new modelname
- github.analysis.rule.info.mixin · new modelgroup_id (Group), code_count (# Code), empty_count (# Empty), total_count (# Total), scanned_files, analysis_rule_id (Analysis Rule), documentation_count (# Doc.)
- github.repository.branch.rule.info · new modelrepository_branch_id (Repository Branch)
- github.repository.branch.rule.info.report · new modelgroup_id (Group), code_count (# Code), empty_count (# Empty), total_count (# Total), repository_id (Repository), scanned_files, analysis_rule_id (Analysis Rule), documentation_count (# Documentation), repository_branch_id (Repository Branch), organization_serie_id (Organization serie)
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 7 confirmed, 2 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/interface-git.
terminal Installation and usage
OCA documentation · Odoo 18.0Installation
Source · Odoo 18.0To install this addon, you need to install some python dependencies
sudo pip install PyGitHub
sudo apt install cloc
sudo pip install pathspec
sudo pip install GitPythonAnalysis source code is generated by
Configuration
Source · Odoo 18.0Once installed, you have to:
- Open your odoo.conf file and add extra settings to mention Github credentials, and the local path where the source code will be downloaded:
source_code_local_path = /workspace/source_code/
Note: you can define the route as environment variable using the key SOURCE_CODE_LOCAL_PATH
Note: make sure that Odoo process has read / write access on that folder
> - github_token = your_github_access_token
Note: The login/password auth has been deprecated by GitHub.
- Go to 'Settings' / 'Technical' / 'Parameters' / 'System Parameters' and define the following values:
github.max_try: number of call to the API before an error is raised. The more unstable/slow your connection, the higher should be this valuegit.partial_commit_during_analysis: Set toTrueif you want to commit the result of the analysis in the database after each repository analysis. We recommend to set toTruewhen you perform the initial download (potentially with a lot of repositories) in order to reduce the size of the transaction- Go to your(s) user(s) form to add them in the new 'Connector Github Manager' groups. The members of this group will have the possibility to run Github synchronization.
Technical Information
This module provides 4 crons that you can enable:
- Synchronize All Organizations and Teams (
cron_update_organization) - Synchronize Branches List for All repositories (
cron_update_branch_list) - Download Source Code for All Github Branches (
cron_download_code) - Analyze Source Code for All Github Branches (
cron_analyze_code)
Usage
Source · Odoo 18.0Initial upload from Github
To fetch information from Github, you have to:
- go to 'Github' / 'Settings' / 'Sync Object'
- Select the object type you want to synchronize and its Gthub name
- Once done for your organization(s), go to 'Github' / 'Github Commnunity' / 'Organizations'
- Optionally, once organization is created, you can create series for your projects. Go to 'Github' / 'Organizations' / click on your organization / 'Organization Series' Tabs
Select branches to download
This setting will prevent to download undesired branches, downloading only main branches (releases):
- In the 'Settings' tab, set repositories you don't want to download (or repositories you want to download). If 'Specific repositories' is set, 'Ignored Repositories' value is ignored.
- In the 'Settings' tab, set the URL of the 'External Services' you use for Continuous Integration and Coverage.
- Once done, click on buttons 'Syncs', to synchronize repositories, teams and members. (This process can take a while depending of your size)
Team / members synchronization
You can synchronize members teams:
- Go to 'Teams' / tree view / 'Actions' / 'Update from Github'.
- In each team, you can see the members list and the role of the members
- In each team, you can see the repositories list but not the permissions of the team. (See 'Known Issues' Section)
Repositories synchronization
You can synchronize the branches of your repositories:
- Go to 'Repositories' / tree view / 'Actions' / 'Update from Github'
- In each repository, you can see the main branches list and the size of code source.
Fetching the source code
Finally, you can download locally the source code of all your branches:
- Go to 'Repository Branches' / tree view / 'Actions' / 'Download and Analyse Source Code'.
- In the tree view you can update manually source code or refresh analysis.
Analysis source code
It's possible to create custom analysis rules that relate to a GitHub organization, GitHub repository and/or GitHub repository branch to analyze code.
- Go to 'Settings' / 'Analysis rule groups' and create records that allow to organize the rules
- Go to 'Settings' / 'Analysis rules' and create rules, for example:
> 1. Name: All code, Group: General, Paths: * > 2. Name: Python code, Group: General, Paths: *.py > 3. Name: Xml code, Group: General, Paths: *.xml > 4. Name: Repository 1, Group: Custom, Paths: /path/
Note: Paths field in 'Analysis rule' allow to put multiple paths for line, path format is according to
- Go to GitHub \> GitHub Community \> Organizations and define Analysis rules (optional)
- Go to GitHub \> GitHub Repository \> Repositories and define Analysis rules (optional)
- Go to GitHub \> GitHub Repository \> Repository Branches and define Analysis rules (optional)
Analysis source code is executed when 'Update Source Code Analysis' button in some 'Repository Branch', get all the Analysis rules (Repository + Organization) and analyze code and generate info about it Other option to Analysis source code is in cron called 'Analyze Source Code for All Github Branches'
You can see in 'Repository Branch' / 'Code Analysis' the info obtained from analysis rules.
Data creation in Github
You have the possibility to creates two items in Github directly from Odoo
- Teams:
- Go to 'Settings' / 'Create Team in Github'.
- Set the information and click on Create in Github.
- Odoo will try to create the team. If access right and datas are correct, the creation will be done directly in Github
- Later on, a synchronization will be performed, to create the according team in the Odoo instance.
- Repositories:
- Go to 'Settings' / 'Create Team in Github'.
- Set the information and click on Create in Github.
Note
Analysis in this module is basic: for the time being, it just gives branches size.
Nevertheless, you can develop an extra Odoo Custom module to extend analysis function and get extra statistics, depending on your needs.
In that way, you can see the module github_connector_odoo, if your repositories contain Odoo modules.
Reporting
This module provides several reports
Branches by Serie
Sizes by Serie
Repository branch analysis rule
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.