Github Connector - Odoo

github_connector_odoo
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/18.0/github_connector_odoo
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, Carlos Lopez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/interface-github
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pathspec
GitPython
PyGithub
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES cloc
DESCRIPTION
DESCRIPTION
This module was written to extend the functionality of 'Github
Connector' Module if your repositories contain Odoo Modules.

It extends 'Analysis' features to parse code files (readme / manifest
files) and add new models and menus.

![menu](static/description/menu.png)

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
action_odoo_module_version_rule_info_report_graph odoo.module.version.rule.info.report graph New
action_odoo_module_version_rule_info_report_pivot odoo.module.version.rule.info.report pivot New
odoo_module_version_rule_info_tree odoo.module.version.rule.info list New
view_github_analysis_rule_form github.analysis.rule field Inherits github_connector.view_github_analysis_rule_form
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author list New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin list New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python list New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license list New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module list New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version list New
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • action_open(self)

New fields (2)
  • has_odoo_addons Boolean
    string='Has odoo addons?'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' string='Manifest keys'
Public methods (0)

No public methods.

New fields (3)
  • default_author_text Char
  • runbot_parse_url Char
    string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (5)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/'
  • module_version_analysis_rule_info_ids Many2many → odoo.module.version.rule.info
    column1='repository_branch_id' column2='module_version_id' comodel_name='odoo.module.version.rule.info' compute='_compute_module_version_analysis_rule_info_ids' readonly=True relation='rule_info_module_version_rel' string='Analysis Rule Info ids (module version)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, directory)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True
  • description Text
  • image Binary
    attachment=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
  • website Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (14)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    attachment=True compute='_compute_image' store=True string='Icon Image'
  • maintainers Char
    compute='_compute_maintainers' store=True string='Maintainers (Manifest)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, technical_name)
    @api.model

New fields (35)
  • analysis_rule_info_ids One2many → odoo.module.version.rule.info
    comodel_name='odoo.module.version.rule.info' inverse_name='module_version_id' readonly=True string='Analysis Rule Info ids'
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    attachment=True readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • maintainers Char
    readonly=True string='Maintainers (Manifest)'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' compute='_compute_manifest_key_ids' store=True string='Manifest keys'
  • manifest_keys Char
    readonly=True string='Manifest keys (Manifest)'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)

New fields (2)
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' ondelete='cascade' string='Module Version'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' string='Repository Branch'
Public methods (0)

No public methods.

New fields (11)
  • analysis_rule_id Many2one → github.analysis.rule
    comodel_name='github.analysis.rule' string='Analysis Rule id'
  • code_count Integer
  • documentation_count Integer
  • empty_count Integer
  • group_id Many2one → github.analysis.rule.group
    comodel_name='github.analysis.rule.group' string='Group id'
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • module_version_name Char
    string='Module Version name'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' string='Organization serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
  • scanned_files Integer
  • total_count Integer
Public methods (1)
  • init(self)
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/17.0/github_connector_odoo
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/interface-github
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pathspec
GitPython
PyGithub
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES cloc
DESCRIPTION
DESCRIPTION
This module was written to extend the functionality of 'Github
Connector' Module if your repositories contain Odoo Modules.

It extends 'Analysis' features to parse code files (readme / manifest
files) and add new models and menus.

![menu](static/description/menu.png)

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
action_odoo_module_version_rule_info_report_graph odoo.module.version.rule.info.report graph New
action_odoo_module_version_rule_info_report_pivot odoo.module.version.rule.info.report pivot New
odoo_module_version_rule_info_tree odoo.module.version.rule.info tree New
view_github_analysis_rule_form github.analysis.rule field Inherits github_connector.view_github_analysis_rule_form
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • action_open(self)

New fields (2)
  • has_odoo_addons Boolean
    string='Has odoo addons?'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' string='Manifest keys'
Public methods (0)

No public methods.

New fields (3)
  • default_author_text Char
  • runbot_parse_url Char
    string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (5)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/'
  • module_version_analysis_rule_info_ids Many2many → odoo.module.version.rule.info
    column1='repository_branch_id' column2='module_version_id' comodel_name='odoo.module.version.rule.info' compute='_compute_module_version_analysis_rule_info_ids' readonly=True relation='rule_info_module_version_rel' string='Analysis Rule Info ids (module version)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, directory)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True
  • description Text
  • image Binary
    attachment=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
  • website Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (14)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    attachment=True compute='_compute_image' store=True string='Icon Image'
  • maintainers Char
    compute='_compute_maintainers' store=True string='Maintainers (Manifest)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)

New fields (35)
  • analysis_rule_info_ids One2many → odoo.module.version.rule.info
    comodel_name='odoo.module.version.rule.info' inverse_name='module_version_id' readonly=True string='Analysis Rule Info ids'
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    attachment=True readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • maintainers Char
    readonly=True string='Maintainers (Manifest)'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' compute='_compute_manifest_key_ids' store=True string='Manifest keys'
  • manifest_keys Char
    readonly=True string='Manifest keys (Manifest)'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)

New fields (2)
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' ondelete='cascade' string='Module Version'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' string='Repository Branch'
Public methods (0)

No public methods.

New fields (11)
  • analysis_rule_id Many2one → github.analysis.rule
    comodel_name='github.analysis.rule' string='Analysis Rule id'
  • code_count Integer
  • documentation_count Integer
  • empty_count Integer
  • group_id Many2one → github.analysis.rule.group
    comodel_name='github.analysis.rule.group' string='Group id'
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • module_version_name Char
    string='Module Version name'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' string='Organization serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
  • scanned_files Integer
  • total_count Integer
Public methods (1)
  • init(self)
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/16.0/github_connector_odoo
VERSION
VERSION 1.1.2
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Carolina Fernandez
WEBSITE
WEBSITEhttps://github.com/OCA/interface-github
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:54:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pathspec
GitPython
PyGithub
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES cloc
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
action_odoo_module_version_rule_info_report_graph odoo.module.version.rule.info.report graph New
action_odoo_module_version_rule_info_report_pivot odoo.module.version.rule.info.report pivot New
odoo_module_version_rule_info_tree odoo.module.version.rule.info tree New
view_github_analysis_rule_form github.analysis.rule field Inherits github_connector.view_github_analysis_rule_form
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • action_open(self)

New fields (2)
  • has_odoo_addons Boolean
    string='Has odoo addons?'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' string='Manifest keys'
Public methods (0)

No public methods.

New fields (3)
  • default_author_text Char
  • runbot_parse_url Char
    string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (5)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/'
  • module_version_analysis_rule_info_ids Many2many → odoo.module.version.rule.info
    column1='repository_branch_id' column2='module_version_id' comodel_name='odoo.module.version.rule.info' compute='_compute_module_version_analysis_rule_info_ids' readonly=True relation='rule_info_module_version_rel' string='Analysis Rule Info ids (module version)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, directory)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True
  • description Text
  • image Binary
    attachment=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
  • website Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (14)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    attachment=True compute='_compute_image' store=True string='Icon Image'
  • maintainers Char
    compute='_compute_maintainers' store=True string='Maintainers (Manifest)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)

New fields (35)
  • analysis_rule_info_ids One2many → odoo.module.version.rule.info
    comodel_name='odoo.module.version.rule.info' inverse_name='module_version_id' readonly=True string='Analysis Rule Info ids'
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    attachment=True readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • maintainers Char
    readonly=True string='Maintainers (Manifest)'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' compute='_compute_manifest_key_ids' store=True string='Manifest keys'
  • manifest_keys Char
    readonly=True string='Manifest keys (Manifest)'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)

New fields (2)
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' ondelete='cascade' string='Module Version'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' string='Repository Branch'
Public methods (0)

No public methods.

New fields (11)
  • analysis_rule_id Many2one → github.analysis.rule
    comodel_name='github.analysis.rule' string='Analysis Rule id'
  • code_count Integer
  • documentation_count Integer
  • empty_count Integer
  • group_id Many2one → github.analysis.rule.group
    comodel_name='github.analysis.rule.group' string='Group id'
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • module_version_name Char
    string='Module Version name'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' string='Organization serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
  • scanned_files Integer
  • total_count Integer
Public methods (1)
  • init(self)
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/15.0/github_connector_odoo
VERSION
VERSION 2.1.1
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, Hans Henrik Gabelgaard, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/interface-github
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:44
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pathspec
GitPython
PyGithub
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES cloc
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
action_odoo_module_version_rule_info_report_graph odoo.module.version.rule.info.report graph New
action_odoo_module_version_rule_info_report_pivot odoo.module.version.rule.info.report pivot New
odoo_module_version_rule_info_tree odoo.module.version.rule.info tree New
view_github_analysis_rule_form github.analysis.rule field Inherits github_connector.view_github_analysis_rule_form
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • action_open(self)

New fields (2)
  • has_odoo_addons Boolean
    string='Has odoo addons?'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' string='Manifest keys'
Public methods (0)

No public methods.

New fields (3)
  • default_author_text Char
  • runbot_parse_url Char
    string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (5)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/'
  • module_version_analysis_rule_info_ids Many2many → odoo.module.version.rule.info
    column1='repository_branch_id' column2='module_version_id' comodel_name='odoo.module.version.rule.info' compute='_compute_module_version_analysis_rule_info_ids' readonly=True relation='rule_info_module_version_rel' string='Analysis Rule Info ids (module version)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, directory)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True
  • description Text
  • image Binary
    attachment=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True
  • website Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (14)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    attachment=True compute='_compute_image' store=True string='Icon Image'
  • maintainers Char
    compute='_compute_maintainers' store=True string='Maintainers (Manifest)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)

New fields (35)
  • analysis_rule_info_ids One2many → odoo.module.version.rule.info
    comodel_name='odoo.module.version.rule.info' inverse_name='module_version_id' readonly=True string='Analysis Rule Info ids'
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    attachment=True readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • maintainers Char
    readonly=True string='Maintainers (Manifest)'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' compute='_compute_manifest_key_ids' store=True string='Manifest keys'
  • manifest_keys Char
    readonly=True string='Manifest keys (Manifest)'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)

New fields (2)
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' ondelete='cascade' string='Module Version'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' string='Repository Branch'
Public methods (0)

No public methods.

New fields (11)
  • analysis_rule_id Many2one → github.analysis.rule
    comodel_name='github.analysis.rule' string='Analysis Rule id'
  • code_count Integer
  • documentation_count Integer
  • empty_count Integer
  • group_id Many2one → github.analysis.rule.group
    comodel_name='github.analysis.rule.group' string='Group id'
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • module_version_name Char
    string='Module Version name'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' string='Organization serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
  • scanned_files Integer
  • total_count Integer
Public methods (1)
  • init(self)
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/14.0/github_connector_odoo
VERSION
VERSION 2.1.0
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSVíctor Martínez, Ernesto Tejeda, oca-travis, Weblate, OCA-git-bot, oca-ci, Giovanni
WEBSITE
WEBSITEhttps://github.com/OCA/interface-github
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pathspec
GitPython
PyGithub
pygount
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
action_odoo_module_version_rule_info_report_graph odoo.module.version.rule.info.report graph New
action_odoo_module_version_rule_info_report_pivot odoo.module.version.rule.info.report pivot New
odoo_module_version_rule_info_tree odoo.module.version.rule.info tree New
view_github_analysis_rule_form github.analysis.rule field Inherits github_connector.view_github_analysis_rule_form
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • action_open(self)

New fields (2)
  • has_odoo_addons Boolean
    string='Has odoo addons?'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' string='Manifest keys'
Public methods (0)

No public methods.

New fields (3)
  • default_author_text Char
    string='Default Author Text'
  • runbot_parse_url Char
    string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (5)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/' string='Module Paths'
  • module_version_analysis_rule_info_ids Many2many → odoo.module.version.rule.info
    column1='repository_branch_id' column2='module_version_id' comodel_name='odoo.module.version.rule.info' compute='_compute_module_version_analysis_rule_info_ids' readonly=True relation='rule_info_module_version_rel' string='Analysis Rule Info ids (module version)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, directory)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True string='Active'
  • description Text
    string='Description'
  • image Binary
    attachment=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
  • website Char
    string='Website'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (13)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    attachment=True compute='_compute_image' store=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True string='Name'
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True string='Technical Name'
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)

New fields (34)
  • analysis_rule_info_ids One2many → odoo.module.version.rule.info
    comodel_name='odoo.module.version.rule.info' inverse_name='module_version_id' readonly=True string='Analysis Rule Info ids'
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True string='Auto Install'
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True string='Complete Name'
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    attachment=True readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' compute='_compute_manifest_key_ids' store=True string='Manifest keys'
  • manifest_keys Char
    readonly=True string='Manifest keys (Manifest)'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True string='Name'
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True string='Odoo Type'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True string='Technical Name'
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)

New fields (2)
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
Public methods (0)

No public methods.

New fields (12)
  • analysis_rule_id Many2one → github.analysis.rule
    comodel_name='github.analysis.rule' string='Analysis Rule id'
  • code_count Integer
    string='Code Count'
  • documentation_count Integer
    string='Documentation Count'
  • empty_count Integer
    string='Empty Count'
  • group_id Many2one → github.analysis.rule.group
    comodel_name='github.analysis.rule.group' string='Group id'
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • module_version_name Char
    string='Module Version name'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' string='Organization serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
  • scanned_files Integer
    string='Scanned files'
  • string_count Integer
    string='String Count'
  • total_count Integer
    string='Total Count'
Public methods (1)
  • init(self)
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/13.0/github_connector_odoo
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, Víctor Martínez, oca-travis, OCA-git-bot, Carlos Roca
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pathspec
GitPython
pygount
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (31)
XML IDNameModelTypeStatus
action_odoo_module_version_rule_info_report_graph odoo.module.version.rule.info.report graph New
action_odoo_module_version_rule_info_report_pivot odoo.module.version.rule.info.report pivot New
odoo_module_version_rule_info_tree odoo.module.version.rule.info tree New
view_github_analysis_rule_form github.analysis.rule field Inherits github_connector.view_github_analysis_rule_form
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (15)

New fields (0)

No new fields.

Public methods (1)
  • action_open(self)

New fields (2)
  • has_odoo_addons Boolean
    string='Has odoo addons?'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' string='Manifest keys'
Public methods (0)

No public methods.

New fields (3)
  • default_author_text Char
    string='Default Author Text'
  • runbot_parse_url Char
    string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (5)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/' string='Module Paths'
  • module_version_analysis_rule_info_ids Many2many → odoo.module.version.rule.info
    column1='repository_branch_id' column2='module_version_id' comodel_name='odoo.module.version.rule.info' compute='_compute_module_version_analysis_rule_info_ids' readonly=True relation='rule_info_module_version_rel' string='Analysis Rule Info ids (module version)'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, directory)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True string='Active'
  • description Text
    string='Description'
  • image Binary
    attachment=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
  • website Char
    string='Website'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (13)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    attachment=True compute='_compute_image' store=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True string='Name'
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True string='Technical Name'
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)

New fields (34)
  • analysis_rule_info_ids One2many → odoo.module.version.rule.info
    comodel_name='odoo.module.version.rule.info' inverse_name='module_version_id' ondelete='cascade' readonly=True string='Analysis Rule Info ids'
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True string='Auto Install'
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True string='Complete Name'
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    attachment=True readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' multi='lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' multi='lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • manifest_key_ids Many2many → odoo.manifest.key
    comodel_name='odoo.manifest.key' compute='_compute_manifest_key_ids' store=True string='Manifest keys'
  • manifest_keys Char
    readonly=True string='Manifest keys (Manifest)'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True string='Name'
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True string='Odoo Type'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True string='Technical Name'
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)

New fields (2)
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
Public methods (0)

No public methods.

New fields (12)
  • analysis_rule_id Many2one → github.analysis.rule
    comodel_name='github.analysis.rule' string='Analysis Rule id'
  • code_count Integer
    string='Code Count'
  • documentation_count Integer
    string='Documentation Count'
  • empty_count Integer
    string='Empty Count'
  • group_id Many2one → github.analysis.rule.group
    comodel_name='github.analysis.rule.group' string='Group id'
  • module_version_id Many2one → odoo.module.version
    comodel_name='odoo.module.version' string='Module Version'
  • module_version_name Char
    string='Module Version name'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' string='Organization serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' string='Repository Branch'
  • scanned_files Integer
    string='Scanned files'
  • string_count Integer
    string='String Count'
  • total_count Integer
    string='Total Count'
Public methods (1)
  • init(self)
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/12.0/github_connector_odoo
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, cubells, Jordi Riera, OCA-git-bot, Victor Martin, Manuel Gómez
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES git
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (10)

New fields (3)
  • default_author_text Char
    string='Default Author Text'
  • runbot_parse_url Char
    oldname='runbot_url' string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' oldname='ci_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (4)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/' string='Module Paths'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self)
  • listdir(self, dir)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True string='Active'
  • description Text
    string='Description'
  • image Binary
    string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
  • website Char
    string='Website'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (13)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' multi='description_rst' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' multi='description_rst' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    compute='_compute_image' reaonly=True store=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True string='Name'
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' multi='organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' multi='organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True string='Technical Name'
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)
    @api.multi

New fields (31)
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True string='Auto Install'
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True string='Complete Name'
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • full_module_path Char
    string='Full Local Path to the module'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' multi='lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' multi='lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True string='Name'
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True string='Odoo Type'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True string='Technical Name'
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
    @api.multi
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/11.0/github_connector_odoo
VERSION
VERSION 1.2.1
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSPedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), cubells, Eric @ Elico Corp
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:24:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES git
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (10)

New fields (3)
  • default_author_text Char
    string='Default Author Text'
  • runbot_parse_url Char
    oldname='runbot_url' string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' oldname='ci_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (4)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/' string='Module Paths'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self, branch)
    @api.model
  • listdir(self, dir)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (1)
  • name Char
Public methods (0)

No public methods.

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True string='Active'
  • description Text
    string='Description'
  • image Binary
    string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
  • website Char
    string='Website'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (13)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' multi='description_rst' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' multi='description_rst' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    compute='_compute_image' reaonly=True store=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True string='Name'
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' multi='organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' multi='organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True string='Technical Name'
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)
    @api.multi

New fields (30)
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True string='Auto Install'
  • category_id Many2one → odoo.category
    comodel_name='odoo.category' readonly=True string='Category'
  • complete_name Char
    compute='_compute_complete_name' store=True string='Complete Name'
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    readonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' multi='lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' multi='lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True string='Name'
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True string='Odoo Type'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True string='Technical Name'
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (6)
  • clean_odoo_module_version(self)
    @api.multi
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • cron_clean_odoo_module_version(self)
    @api.model
  • get_module_category(self, info)
    @api.model
    Used to search the category of the module by the data given on the manifest. :param dict info: The parsed dictionary with the manifest data. :returns: recordset of the given category if exists.
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/interface-git
GIT
GIThttps://github.com/OCA/interface-git.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/interface-git/tree/10.0/github_connector_odoo
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYConnector
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), GRAP, Sylvain LE GAL
COMMITTERS
COMMITTERSSylvain LE GAL, GitHub
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/interface-git:
    - github_connector
odoo/odoo:
    - base
    - web_kanban
    - web
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES git
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
view_github_organization_form github.organization field Inherits github_connector.view_github_organization_form
view_github_repository_branch_form github.repository.branch xpath Inherits github_connector.view_github_repository_branch_form
view_github_repository_branch_kanban github.repository.branch field Inherits github_connector.view_github_repository_branch_kanban
view_github_repository_branch_tree github.repository.branch field Inherits github_connector.view_github_repository_branch_tree
view_github_repository_form github.repository field Inherits github_connector.view_github_repository_form
view_oca_author_form odoo.author form New
view_odoo_author_search odoo.author search New
view_odoo_author_tree odoo.author tree New
view_odoo_lib_bin_form odoo.lib.bin form New
view_odoo_lib_bin_search odoo.lib.bin search New
view_odoo_lib_bin_tree odoo.lib.bin tree New
view_odoo_lib_python_form odoo.lib.python form New
view_odoo_lib_python_search odoo.lib.python search New
view_odoo_lib_python_tree odoo.lib.python tree New
view_odoo_license_form odoo.license form New
view_odoo_license_kanban odoo.license kanban New
view_odoo_license_search odoo.license search New
view_odoo_license_tree odoo.license tree New
view_odoo_module_form odoo.module form New
view_odoo_module_kanban odoo.module kanban New
view_odoo_module_search odoo.module search New
view_odoo_module_tree odoo.module tree New
view_odoo_module_version_by_serie_graph odoo.module.version graph New
view_odoo_module_version_form odoo.module.version form New
view_odoo_module_version_kanban odoo.module.version kanban New
view_odoo_module_version_search odoo.module.version search New
view_odoo_module_version_tree odoo.module.version tree New
Models touched (9)

New fields (3)
  • default_author_text Char
    string='Default Author Text'
  • runbot_parse_url Char
    oldname='runbot_url' string='URL For Runbot Ids'
  • runbot_url_pattern Char
    string='Runbot URL Pattern'
Public methods (0)

No public methods.

New fields (1)
  • runbot_id_external Integer
    compute='_compute_runbot_id_external' oldname='ci_id_external' readonly=True store=True string='ID For Runbot'
Public methods (0)

No public methods.

New fields (4)
  • module_paths Text
    help='Set here extra relative paths you want to scan to find modules. If not set, root path will be scanned. One repository per line. Example:\n./addons/\n./openerp/addons/' string='Module Paths'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='repository_branch_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' string='Number of Module Versions'
  • runbot_url Char
    compute='_compute_runbot_url' string='Runbot URL'
Public methods (2)
  • analyze_code_one(self, branch)
    @api.model
  • listdir(self, dir)

New fields (4)
  • module_ids Many2many → odoo.module
    column1='author_id' column2='module_id' comodel_name='odoo.module' readonly=True relation='github_module_author_rel' string='Modules'
  • module_qty Integer
    compute='_compute_module_qty' store=True string='Number of Modules'
  • module_version_ids Many2many → odoo.module.version
    column1='author_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='github_module_version_author_rel' string='Module Versions'
  • name Char
    index=True readonly=True store=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_bin_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_bin_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (3)
  • module_version_ids Many2many → odoo.module.version
    column1='lib_python_id' column2='module_version_id' comodel_name='odoo.module.version' readonly=True relation='module_version_lib_python_rel' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (7)
  • active Boolean
    default=True string='Active'
  • description Text
    string='Description'
  • image Binary
    string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='license_id' string='Module Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    index=True readonly=True required=True string='Name'
  • website Char
    string='Website'
Public methods (1)
  • create_if_not_exist(self, name)
    @api.model

New fields (13)
  • author_ids Many2many → odoo.author
    column1='module_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • dependence_module_version_ids Many2many → odoo.module.version
    column1='dependency_module_id' column2='module_version_id' comodel_name='odoo.module.version' relation='module_version_dependency_rel' string='Module Versions that depend on this module'
  • dependence_module_version_qty Integer
    compute='_compute_dependence_module_version_qty' store=True string='Number of Module Versions that depend on this module'
  • description_rst Char
    compute='_compute_description' multi='description_rst' readonly=True store=True string='RST Description of the last Version'
  • description_rst_html Html
    compute='_compute_description' multi='description_rst' readonly=True store=True string='HTML of the RST Description of the last Version'
  • image Binary
    compute='_compute_image' reaonly=True store=True string='Icon Image'
  • module_version_ids One2many → odoo.module.version
    comodel_name='odoo.module.version' inverse_name='module_id' readonly=True string='Versions'
  • module_version_qty Integer
    compute='_compute_module_version_qty' store=True string='Number of Module Versions'
  • name Char
    compute='_compute_name' readonly=True store=True string='Name'
  • organization_serie_ids Many2many → github.organization.serie
    column1='module_id' column2='organization_serie_id' comodel_name='github.organization.serie' compute='_compute_organization_serie' multi='organization_serie' relation='github_module_organization_serie_rel' store=True string='Series'
  • organization_serie_ids_description Char
    compute='_compute_organization_serie' multi='organization_serie' store=True string='Series (Text)'
  • technical_name Char
    index=True readonly=True required=True string='Technical Name'
Public methods (2)
  • create_if_not_exist(self, technical_name)
    @api.model
  • name_get(self)
    @api.multi

New fields (29)
  • author Char
    readonly=True string='Author (Manifest)'
  • author_ids Many2many → odoo.author
    column1='module_version_id' column2='author_id' comodel_name='odoo.author' compute='_compute_author' multi='author' relation='github_module_version_author_rel' store=True string='Authors'
  • author_ids_description Char
    compute='_compute_author' multi='author' store=True string='Authors (Text)'
  • auto_install Boolean
    readonly=True string='Auto Install'
  • complete_name Char
    compute='_compute_complete_name' store=True string='Complete Name'
  • dependency_module_ids Many2many → odoo.module
    column1='module_version_id' column2='dependency_module_id' comodel_name='odoo.module' compute='_compute_dependency_module_ids' relation='module_version_dependency_rel' store=True string='Dependencies'
  • depends Char
    readonly=True string='Dependencies (Manifest)'
  • description_rst Char
    readonly=True string='RST Description (Manifest)'
  • description_rst_html Html
    compute='_compute_description_rst_html' readonly=True store=True string='HTML the RST Description'
  • external_dependencies Char
    readonly=True string='External Dependencies (Manifest)'
  • github_url Char
    compute='_compute_github_url' readonly=True store=True string='Github URL'
  • icon Char
    readonly=True string='Icon Path (Manifest)'
  • image Binary
    reaonly=True string='Icon Image'
  • lib_bin_ids Many2many → odoo.lib.bin
    column1='module_version_id' column2='lib_bin_id' comodel_name='odoo.lib.bin' compute='_compute_lib' multi='lib' relation='module_version_lib_bin_rel' store=True string='Bin Lib Dependencies'
  • lib_bin_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Bin Lib Dependencies (Text)'
  • lib_python_ids Many2many → odoo.lib.python
    column1='module_version_id' column2='lib_python_id' comodel_name='odoo.lib.python' compute='_compute_lib' multi='lib' relation='module_version_lib_python_rel' store=True string='Python Lib Dependencies'
  • lib_python_ids_description Char
    compute='_compute_lib' multi='lib' store=True string='Python Lib Dependencies (Text)'
  • license Char
    readonly=True string='License (Manifest)'
  • license_id Many2one → odoo.license
    comodel_name='odoo.license' compute='_compute_license_id' readonly=True store=True string='License'
  • module_id Many2one → odoo.module
    auto_join=True comodel_name='odoo.module' index=True ondelete='cascade' readonly=True required=True string='Module'
  • name Char
    index=True readonly=True string='Name'
  • odoo_type Selection
    compute='_compute_odoo_type' selection=_ODOO_TYPE_SELECTION store=True string='Odoo Type'
  • organization_serie_id Many2one → github.organization.serie
    comodel_name='github.organization.serie' compute='_compute_organization_serie_id' readonly=True store=True string='Organization Serie'
  • repository_branch_id Many2one → github.repository.branch
    comodel_name='github.repository.branch' ondelete='cascade' readonly=True required=True string='Repository Branch'
  • repository_id Many2one → github.repository
    comodel_name='github.repository' readonly=True related='repository_branch_id.repository_id' store=True string='Repository'
  • summary Char
    readonly=True string='Summary (Manifest)'
  • technical_name Char
    help='Technical Name of the Module (Folder name).' index=True readonly=True string='Technical Name'
  • version Char
    readonly=True string='Version (Manifest)'
  • website Char
    readonly=True string='Website (Manifest)'
Public methods (3)
  • create_or_update_from_manifest(self, info, repository_branch, full_module_path)
    @api.model
  • manifest_2_odoo(self, info, repository_branch, module)
    @api.model
  • unlink(self)
    @api.multi