| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/module-composition-analysis |
| GIT | |
| GIT | https://github.com/OCA/module-composition-analysis.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/module-composition-analysis/tree/18.0/odoo_repository |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | Sébastien Alix, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/module-composition-analysis |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/queue: - queue_job OCA/server-tools: - base_time_window odoo/odoo: - base_sparse_field - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
gitpython odoo-addons-parser pyyaml requests cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Base module to host data collected from Odoo repositories. It allows you to: - declare the Odoo versions (last 3 versions by default) - declare repositories containing modules (Odoo repositories included by default, and OCA ones are synced automatically) - scan these repositories to collect modules informations per Odoo version |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
authentication_token_view_form |
authentication.token.form | authentication.token | form | New |
authentication_token_view_search |
authentication.token.search | authentication.token | search | New |
authentication_token_view_tree |
authentication.token.tree | authentication.token | list | New |
odoo_author_view_form |
odoo.author.form | odoo.author | form | New |
odoo_author_view_search |
odoo.author.search | odoo.author | search | New |
odoo_author_view_tree |
odoo.author.tree | odoo.author | list | New |
odoo_branch_view_form |
odoo.branch.form | odoo.branch | form | New |
odoo_branch_view_search |
odoo.branch.search | odoo.branch | search | New |
odoo_branch_view_tree |
odoo.branch.tree | odoo.branch | list | New |
odoo_license_view_search |
odoo.license.search | odoo.license | search | New |
odoo_license_view_tree |
odoo.license.tree | odoo.license | list | New |
odoo_maintainer_view_form |
odoo.maintainer.form | odoo.maintainer | form | New |
odoo_maintainer_view_search |
odoo.maintainer.search | odoo.maintainer | search | New |
odoo_maintainer_view_tree |
odoo.maintainer.tree | odoo.maintainer | list | New |
odoo_module_branch_view_form |
odoo.module.branch.form | odoo.module.branch | form | New |
odoo_module_branch_view_graph |
odoo.module.branch.graph | odoo.module.branch | graph | New |
odoo_module_branch_view_pivot |
odoo.module.branch.pivot | odoo.module.branch | pivot | New |
odoo_module_branch_view_search |
odoo.module.branch.search | odoo.module.branch | search | New |
odoo_module_branch_view_tree |
odoo.module.branch.tree | odoo.module.branch | list | New |
odoo_module_branch_view_tree_recursive_dependencies |
odoo.module.branch.tree.recursive_dependencies | odoo.module.branch | list | Inherits odoo_module_branch_view_tree |
odoo_module_category_view_search |
odoo.module.category.search | odoo.module.category | search | New |
odoo_module_category_view_tree |
odoo.module.category.tree | odoo.module.category | list | New |
odoo_module_dev_status_view_search |
odoo.module.dev.status.search | odoo.module.dev.status | search | New |
odoo_module_dev_status_view_tree |
odoo.module.dev.status.tree | odoo.module.dev.status | list | New |
odoo_module_view_form |
odoo.module.form | odoo.module | form | New |
odoo_module_view_search |
odoo.module.search | odoo.module | search | New |
odoo_module_view_tree |
odoo.module.tree | odoo.module | list | New |
odoo_python_dependency_view_search |
odoo.python.dependency.search | odoo.python.dependency | search | New |
odoo_python_dependency_view_tree |
odoo.python.dependency.tree | odoo.python.dependency | list | New |
odoo_repository_addons_path_view_form |
odoo.repository.addons_path.form | odoo.repository.addons_path | form | New |
odoo_repository_addons_path_view_tree |
odoo.repository.addons_path.tree | odoo.repository.addons_path | list | New |
odoo_repository_branch_view_form |
odoo.repository.branch.form | odoo.repository.branch | form | New |
odoo_repository_branch_view_search |
odoo.repository.branch.search | odoo.repository.branch | search | New |
odoo_repository_branch_view_tree |
odoo.repository.branch.tree | odoo.repository.branch | list | New |
odoo_repository_org_view_form |
odoo.repository.org.form | odoo.repository.org | form | New |
odoo_repository_org_view_search |
odoo.repository.org.search | odoo.repository.org | search | New |
odoo_repository_org_view_tree |
odoo.repository.org.tree | odoo.repository.org | list | New |
odoo_repository_view_form |
odoo.repository.form | odoo.repository | form | New |
odoo_repository_view_search |
odoo.repository.search | odoo.repository | search | New |
odoo_repository_view_tree |
odoo.repository.tree | odoo.repository | list | New |
res_config_settings_view_form |
res.config.settings.form.inherit | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
ssh_key_view_form |
ssh.key.form | ssh.key | form | New |
ssh_key_view_search |
ssh.key.search | ssh.key | search | New |
ssh_key_view_tree |
ssh.key.tree | ssh.key | list | New |
name
Char
required=True
token
Char
required=True
No public methods.
name
Char
index=True
required=True
No public methods.
active
Boolean
default=True
name
Char
help='An Odoo version is also used as an Odoo branch name in generic repositories (Odoo, OCA...).'
index=True
required=True
string='Version'
next_id
Many2one → odoo.branch
comodel_name='odoo.branch'
compute='_compute_next_and_previous'
previous_id
Many2one → odoo.branch
comodel_name='odoo.branch'
compute='_compute_next_and_previous'
repository_branch_ids
One2many → odoo.repository.branch
comodel_name='odoo.repository.branch'
inverse_name='branch_id'
readonly=True
string='Repositories'
sequence
Integer
action_force_scan(self)
action_scan(self, force=False)
create(self, vals_list)
write(self, values)
name
Char
index=True
required=True
No public methods.
github_url
Char
compute='_compute_github_url'
string='GitHub URL'
module_branch_ids
Many2many → odoo.module.branch
column1='maintainer_id'
column2='module_branch_id'
comodel_name='odoo.module.branch'
relation='module_branch_maintainer_rel'
string='Maintainers'
name
Char
index=True
required=True
No public methods.
name
Char
required=True
No public methods.
blacklisted
Boolean
help="Blacklisted modules won't be scanned."
readonly=True
module_branch_ids
One2many → odoo.module.branch
comodel_name='odoo.module.branch'
inverse_name='module_id'
readonly=True
string='Modules'
name
Char
help='Technical Name'
index=True
required=True
No public methods.
addons_path
Char
help='Technical field. Where the module is located in the repository.'
application
Boolean
default=False
author_ids
Many2many → odoo.author
comodel_name='odoo.author'
string='Authors'
auto_install
Boolean
default=False
string='Auto-Install'
branch_id
Many2one → odoo.branch
comodel_name='odoo.branch'
index=True
ondelete='cascade'
required=True
string='Odoo Version'
branch_name
Char
index=True
related='branch_id.name'
store=True
string='Branch Name'
branch_sequence
Integer
index=True
related='branch_id.sequence'
store=True
string='Branch Sequence'
category_id
Many2one → odoo.module.category
comodel_name='odoo.module.category'
index=True
ondelete='restrict'
string='Category'
dependency_ids
Many2many → odoo.module.branch
column1='module_branch_id'
column2='dependency_id'
comodel_name='odoo.module.branch'
relation='module_branch_dependency_rel'
string='Dependencies'
development_status_id
Many2one → odoo.module.dev.status
comodel_name='odoo.module.dev.status'
index=True
ondelete='restrict'
string='Develoment Status'
external_dependencies
Serialized
full_path
Char
compute='_compute_full_path'
global_dependency_level
Integer
compute='_compute_dependency_level'
help='Dependency level including all standard Odoo modules.'
recursive=True
store=True
string='Global Dep. Level'
installable
Boolean
default=True
is_community
Boolean
default=False
help='Is this module a contribution of the community?'
string='Community?'
is_enterprise
Boolean
default=False
help='Is this module designed for Odoo Enterprise only?'
string='Enterprise?'
is_standard
Boolean
default=False
help='Is this module part of Odoo standard?'
string='Standard?'
last_scanned_commit
Char
license_id
Many2one → odoo.license
comodel_name='odoo.license'
index=True
ondelete='restrict'
string='License'
maintainer_ids
Many2many → odoo.maintainer
column1='module_branch_id'
column2='maintainer_id'
comodel_name='odoo.maintainer'
relation='module_branch_maintainer_rel'
string='Maintainers'
module_id
Many2one → odoo.module
comodel_name='odoo.module'
index=True
ondelete='restrict'
required=True
string='Technical name'
module_name
Char
index=True
related='module_id.name'
store=True
string='Module Technical Name'
name
Char
compute='_compute_name'
index=True
store=True
string='Techname'
non_std_dependency_level
Integer
compute='_compute_dependency_level'
help='Dependency level excluding all standard Odoo modules.'
recursive=True
store=True
string='Non-Std Dep. Level'
org_id
Many2one
related='repository_branch_id.repository_id.org_id'
store=True
string='Organization'
pr_url
Char
string='PR URL'
python_dependency_ids
Many2many → odoo.python.dependency
comodel_name='odoo.python.dependency'
string='Python Dependencies'
removed
Boolean
repository_branch_id
Many2one → odoo.repository.branch
comodel_name='odoo.repository.branch'
index=True
ondelete='set null'
string='Repository Branch'
repository_id
Many2one
index=True
precompute=True
related='repository_branch_id.repository_id'
store=True
string='Repository'
repository_sequence
Integer
index=True
related='repository_id.sequence'
store=True
reverse_dependency_ids
Many2many → odoo.module.branch
column1='dependency_id'
column2='module_branch_id'
comodel_name='odoo.module.branch'
relation='module_branch_dependency_rel'
string='Reverse Dependencies'
sloc_css
Integer
help='CSS source lines of code'
args: 'CSS'
sloc_js
Integer
help='JavaScript source lines of code'
args: 'JS'
sloc_python
Integer
help='Python source lines of code'
args: 'Python'
sloc_xml
Integer
help='XML source lines of code'
args: 'XML'
specific
Boolean
help='Module specific to a project repository.It cannot be used across different projects.'
summary
Char
index=True
title
Char
help='Descriptive name'
index=True
url
Char
compute='_compute_url'
args: 'URL'
version
Char
version_ids
One2many → odoo.module.branch.version
comodel_name='odoo.module.branch.version'
inverse_name='module_branch_id'
string='Versions'
action_find_pr_url(self)
init(self)
open_recursive_dependencies(self)
push_scanned_data(self, repo_branch_id, module, data)
branch_id
Many2one
related='module_branch_id.branch_id'
store=True
branch_sequence
Integer
related='branch_id.sequence'
store=True
string='Branch Sequence'
commit
Char
has_migration_script
Boolean
default=False
manifest_value
Char
help='Technical field to host the manifest value.'
required=True
migration_script_url
Char
compute='_compute_migration_script_url'
string='Migration Script'
module_branch_id
Many2one → odoo.module.branch
comodel_name='odoo.module.branch'
index=True
ondelete='cascade'
required=True
string='Module'
module_id
Many2one
index=True
related='module_branch_id.module_id'
store=True
string='Module '
module_name
Char
index=True
related='module_branch_id.module_name'
store=True
string='Module Technical Name'
name
Char
required=True
sequence
Integer
create(self, vals_list)
write(self, values)
name
Char
index=True
required=True
No public methods.
name
Char
index=True
required=True
No public methods.
name
Char
index=True
required=True
No public methods.
active
Boolean
default=True
active
Boolean
default=True
addons_path_ids
Many2many → odoo.repository.addons_path
comodel_name='odoo.repository.addons_path'
help='Relative path of folders in this repository hosting Odoo modules'
string='Addons Path'
branch_ids
One2many → odoo.repository.branch
comodel_name='odoo.repository.branch'
inverse_name='repository_id'
string='Branches'
clone_name
Char
help='Force the name of the cloned repository (folder on disk). If not set, the name of the repository will be used.'
clone_url
Char
help='Used to clone the repository.'
string='Clone URL'
display_name
Char
compute='_compute_display_name'
store=True
manual_branches
Boolean
help='By default repository branches follows the configured Odoo versions (e.g: 17.0, 18.0...). Enable this option to configure your own branches.'
string='Configure branches manually'
module_ids
One2many → odoo.module.branch
comodel_name='odoo.module.branch'
inverse_name='repository_id'
readonly=True
string='Modules'
name
Char
index=True
required=True
org_id
Many2one → odoo.repository.org
comodel_name='odoo.repository.org'
index=True
ondelete='cascade'
required=True
string='Organization'
repo_type
Selection
selection=[('github', 'GitHub'), ('gitlab', 'GitLab')]
repo_url
Char
help='Web access to this repository.'
required=True
string='Web URL'
scan_weekday_ids
Many2many → time.weekday
comodel_name='time.weekday'
help='Limit scanning of this repository by the scheduled action to certain days only. If not defined, the scan will happen every day.'
string='Scanning days'
sequence
Integer
default=100
specific
Boolean
help='Host specific modules (that are not generic). Used for project repositories.'
ssh_key_id
Many2one → ssh.key
comodel_name='ssh.key'
help='SSH key used to clone/fetch this repository.'
ondelete='restrict'
string='SSH Key'
to_scan
Boolean
default=True
help='Scan this repository to collect data.'
token_id
Many2one → authentication.token
comodel_name='authentication.token'
help='Token used to clone/fetch this repository.'
ondelete='restrict'
string='Token'
action_force_scan(self, branch_ids=None, raise_exc=True)
action_scan(self, branch_ids=None, force=False, raise_exc=True)
cron_fetch_data(self, branches=None, force=False)
cron_scanner(self, branches=None, force=False)
cron_sync_oca_repositories(self)
default_get(self, fields_list)
open_modules(self)
unlink(self)
is_community
Boolean
default=False
help='Does this folder contain Odoo generic community modules?\n(from OCA, a contributor or your organization)'
string='Community Contribution?'
is_enterprise
Boolean
default=False
help='Does this folder contain Enterprise modules?\n(from Odoo S.A., a contributor or your organization)'
string='Enterprise?'
is_standard
Boolean
default=False
help='Does this folder contain modules from Odoo S.A.?'
string='Standard?'
relative_path
Char
required=True
No public methods.
active
Boolean
compute='_compute_active'
store=True
branch_id
Many2one → odoo.branch
comodel_name='odoo.branch'
index=True
ondelete='cascade'
required=True
string='Odoo Version'
cloned_branch
Char
help="Force the branch to clone (optional). Used on repositories with 'Configure branches manually' option enabled."
last_scanned_commit
Char
readonly=True
manual_branches
Boolean
related='repository_id.manual_branches'
store=True
module_ids
One2many → odoo.module.branch
comodel_name='odoo.module.branch'
inverse_name='repository_branch_id'
readonly=True
string='Modules'
name
Char
compute='_compute_name'
index=True
store=True
repository_id
Many2one → odoo.repository
comodel_name='odoo.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
specific
Boolean
related='repository_id.specific'
store=True
action_force_scan(self, raise_exc=True)
action_scan(self, force=False, raise_exc=True)
github_url
Char
compute='_compute_github_url'
string='GitHub URL'
name
Char
index=True
required=True
No public methods.
config_odoo_repository_default_token_id
Many2one → authentication.token
comodel_name='authentication.token'
help='Default token used to clone repositories and authenticate on API like GitHub.'
string='Default Authentication Token'
config_odoo_repository_workaround_fs_errors
Boolean
help="Fix file system permissions when cloning repositories. Errors could be triggered on some file systems when git tries to execute 'chown' commands on its internal configuration files. This option will workaround this issue."
string='Workaround FS errors'
No public methods.
config_odoo_repository_default_token_id
Many2one
readonly=False
related='company_id.config_odoo_repository_default_token_id'
config_odoo_repository_main_node_url
Char
config_parameter='odoo_repository_main_node_url'
string='Main Node'
config_odoo_repository_oca_blacklist
Char
config_parameter='odoo_repository.oca_repo_blacklist'
help='Comma-separated list of OCA repositories to skip during synchronization. Example: OCB,OpenUpgrade'
string='OCA Repository Blacklist'
config_odoo_repository_storage_path
Char
config_parameter='odoo_repository_storage_path'
string='Storage local path'
config_odoo_repository_workaround_fs_errors
Boolean
readonly=False
related='company_id.config_odoo_repository_workaround_fs_errors'
No public methods.
name
Char
required=True
private_key
Text
help='SSH private key without passphrase.'
required=True
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/module-composition-analysis |
| GIT | |
| GIT | https://github.com/OCA/module-composition-analysis.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/module-composition-analysis/tree/16.0/odoo_repository |
| VERSION | |
| VERSION | 1.5.5 |
| CATEGORY | |
| CATEGORY | Tools |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp |
| COMMITTERS | |
| COMMITTERS | GitHub, Sébastien Alix, Weblate, OCA-git-bot, hparfr, Tom, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/module-composition-analysis |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:12:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component OCA/queue: - queue_job OCA/server-tools: - base_time_window odoo/odoo: - base_sparse_field - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
gitpython odoo-addons-parser pyyaml requests cachetools |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Base module to host data collected from Odoo repositories. It allows you to: - declare the Odoo versions (last 3 versions by default) - declare repositories containing modules (Odoo repositories included by default, and OCA ones are synced automatically) - scan these repositories to collect modules informations per Odoo version |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
authentication_token_view_form |
authentication.token.form | authentication.token | form | New |
authentication_token_view_search |
authentication.token.search | authentication.token | search | New |
authentication_token_view_tree |
authentication.token.tree | authentication.token | tree | New |
odoo_author_view_form |
odoo.author.form | odoo.author | form | New |
odoo_author_view_search |
odoo.author.search | odoo.author | search | New |
odoo_author_view_tree |
odoo.author.tree | odoo.author | tree | New |
odoo_branch_view_form |
odoo.branch.form | odoo.branch | form | New |
odoo_branch_view_search |
odoo.branch.search | odoo.branch | search | New |
odoo_branch_view_tree |
odoo.branch.tree | odoo.branch | tree | New |
odoo_license_view_search |
odoo.license.search | odoo.license | search | New |
odoo_license_view_tree |
odoo.license.tree | odoo.license | tree | New |
odoo_maintainer_view_form |
odoo.maintainer.form | odoo.maintainer | form | New |
odoo_maintainer_view_search |
odoo.maintainer.search | odoo.maintainer | search | New |
odoo_maintainer_view_tree |
odoo.maintainer.tree | odoo.maintainer | tree | New |
odoo_module_branch_view_form |
odoo.module.branch.form | odoo.module.branch | form | New |
odoo_module_branch_view_graph |
odoo.module.branch.graph | odoo.module.branch | graph | New |
odoo_module_branch_view_pivot |
odoo.module.branch.pivot | odoo.module.branch | pivot | New |
odoo_module_branch_view_search |
odoo.module.branch.search | odoo.module.branch | search | New |
odoo_module_branch_view_tree |
odoo.module.branch.tree | odoo.module.branch | tree | New |
odoo_module_branch_view_tree_recursive_dependencies |
odoo.module.branch.tree.recursive_dependencies | odoo.module.branch | tree | Inherits odoo_module_branch_view_tree |
odoo_module_category_view_search |
odoo.module.category.search | odoo.module.category | search | New |
odoo_module_category_view_tree |
odoo.module.category.tree | odoo.module.category | tree | New |
odoo_module_dev_status_view_search |
odoo.module.dev.status.search | odoo.module.dev.status | search | New |
odoo_module_dev_status_view_tree |
odoo.module.dev.status.tree | odoo.module.dev.status | tree | New |
odoo_module_view_form |
odoo.module.form | odoo.module | form | New |
odoo_module_view_search |
odoo.module.search | odoo.module | search | New |
odoo_module_view_tree |
odoo.module.tree | odoo.module | tree | New |
odoo_python_dependency_view_search |
odoo.python.dependency.search | odoo.python.dependency | search | New |
odoo_python_dependency_view_tree |
odoo.python.dependency.tree | odoo.python.dependency | tree | New |
odoo_repository_addons_path_view_form |
odoo.repository.addons_path.form | odoo.repository.addons_path | form | New |
odoo_repository_addons_path_view_tree |
odoo.repository.addons_path.tree | odoo.repository.addons_path | tree | New |
odoo_repository_branch_view_form |
odoo.repository.branch.form | odoo.repository.branch | form | New |
odoo_repository_branch_view_search |
odoo.repository.branch.search | odoo.repository.branch | search | New |
odoo_repository_branch_view_tree |
odoo.repository.branch.tree | odoo.repository.branch | tree | New |
odoo_repository_org_view_form |
odoo.repository.org.form | odoo.repository.org | form | New |
odoo_repository_org_view_search |
odoo.repository.org.search | odoo.repository.org | search | New |
odoo_repository_org_view_tree |
odoo.repository.org.tree | odoo.repository.org | tree | New |
odoo_repository_view_form |
odoo.repository.form | odoo.repository | form | New |
odoo_repository_view_search |
odoo.repository.search | odoo.repository | search | New |
odoo_repository_view_tree |
odoo.repository.tree | odoo.repository | tree | New |
res_config_settings_view_form |
res.config.settings.form.inherit | res.config.settings | xpath | Inherits base_setup.res_config_settings_view_form |
ssh_key_view_form |
ssh.key.form | ssh.key | form | New |
ssh_key_view_search |
ssh.key.search | ssh.key | search | New |
ssh_key_view_tree |
ssh.key.tree | ssh.key | tree | New |
name
Char
required=True
token
Char
required=True
No public methods.
name
Char
index=True
required=True
No public methods.
active
Boolean
default=True
name
Char
help='An Odoo version is also used as an Odoo branch name in generic repositories (Odoo, OCA...).'
index=True
required=True
string='Version'
next_id
Many2one → odoo.branch
comodel_name='odoo.branch'
compute='_compute_next_id'
repository_branch_ids
One2many → odoo.repository.branch
comodel_name='odoo.repository.branch'
inverse_name='branch_id'
readonly=True
string='Repositories'
sequence
Integer
action_force_scan(self)
action_scan(self, force=False)
create(self, vals_list)
write(self, values)
name
Char
index=True
required=True
No public methods.
github_url
Char
compute='_compute_github_url'
string='GitHub URL'
module_branch_ids
Many2many → odoo.module.branch
column1='maintainer_id'
column2='module_branch_id'
comodel_name='odoo.module.branch'
relation='module_branch_maintainer_rel'
string='Maintainers'
name
Char
index=True
required=True
No public methods.
name
Char
required=True
No public methods.
blacklisted
Boolean
help="Blacklisted modules won't be scanned."
readonly=True
module_branch_ids
One2many → odoo.module.branch
comodel_name='odoo.module.branch'
inverse_name='module_id'
readonly=True
string='Modules'
name
Char
help='Technical Name'
index=True
required=True
No public methods.
addons_path
Char
help='Technical field. Where the module is located in the repository.'
application
Boolean
default=False
author_ids
Many2many → odoo.author
comodel_name='odoo.author'
string='Authors'
auto_install
Boolean
default=False
string='Auto-Install'
branch_id
Many2one → odoo.branch
comodel_name='odoo.branch'
index=True
ondelete='cascade'
required=True
string='Odoo Version'
branch_name
Char
index=True
related='branch_id.name'
store=True
string='Branch Name'
branch_sequence
Integer
index=True
related='branch_id.sequence'
store=True
string='Branch Sequence'
category_id
Many2one → odoo.module.category
comodel_name='odoo.module.category'
index=True
ondelete='restrict'
string='Category'
dependency_ids
Many2many → odoo.module.branch
column1='module_branch_id'
column2='dependency_id'
comodel_name='odoo.module.branch'
relation='module_branch_dependency_rel'
string='Dependencies'
development_status_id
Many2one → odoo.module.dev.status
comodel_name='odoo.module.dev.status'
index=True
ondelete='restrict'
string='Develoment Status'
external_dependencies
Serialized
full_path
Char
compute='_compute_full_path'
global_dependency_level
Integer
compute='_compute_dependency_level'
help='Dependency level including all standard Odoo modules.'
recursive=True
store=True
string='Global Dep. Level'
installable
Boolean
default=True
is_community
Boolean
default=False
help='Is this module a contribution of the community?'
string='Community?'
is_enterprise
Boolean
default=False
help='Is this module designed for Odoo Enterprise only?'
string='Enterprise?'
is_standard
Boolean
default=False
help='Is this module part of Odoo standard?'
string='Standard?'
last_scanned_commit
Char
license_id
Many2one → odoo.license
comodel_name='odoo.license'
index=True
ondelete='restrict'
string='License'
maintainer_ids
Many2many → odoo.maintainer
column1='module_branch_id'
column2='maintainer_id'
comodel_name='odoo.maintainer'
relation='module_branch_maintainer_rel'
string='Maintainers'
module_id
Many2one → odoo.module
comodel_name='odoo.module'
index=True
ondelete='restrict'
required=True
string='Technical name'
module_name
Char
index=True
related='module_id.name'
store=True
string='Module Technical Name'
name
Char
compute='_compute_name'
index=True
store=True
string='Techname'
non_std_dependency_level
Integer
compute='_compute_dependency_level'
help='Dependency level excluding all standard Odoo modules.'
recursive=True
store=True
string='Non-Std Dep. Level'
org_id
Many2one
related='repository_branch_id.repository_id.org_id'
store=True
string='Organization'
pr_url
Char
string='PR URL'
python_dependency_ids
Many2many → odoo.python.dependency
comodel_name='odoo.python.dependency'
string='Python Dependencies'
removed
Boolean
repository_branch_id
Many2one → odoo.repository.branch
comodel_name='odoo.repository.branch'
index=True
ondelete='set null'
string='Repository Branch'
repository_id
Many2one
index=True
precompute=True
related='repository_branch_id.repository_id'
store=True
string='Repository'
repository_sequence
Integer
index=True
related='repository_id.sequence'
store=True
reverse_dependency_ids
Many2many → odoo.module.branch
column1='dependency_id'
column2='module_branch_id'
comodel_name='odoo.module.branch'
relation='module_branch_dependency_rel'
string='Reverse Dependencies'
sloc_css
Integer
help='CSS source lines of code'
args: 'CSS'
sloc_js
Integer
help='JavaScript source lines of code'
args: 'JS'
sloc_python
Integer
help='Python source lines of code'
args: 'Python'
sloc_xml
Integer
help='XML source lines of code'
args: 'XML'
specific
Boolean
help='Module specific to a project repository.It cannot be used across different projects.'
summary
Char
index=True
title
Char
help='Descriptive name'
index=True
url
Char
compute='_compute_url'
args: 'URL'
version
Char
version_ids
One2many → odoo.module.branch.version
comodel_name='odoo.module.branch.version'
inverse_name='module_branch_id'
string='Versions'
action_find_pr_url(self)
init(self)
open_recursive_dependencies(self)
push_scanned_data(self, repo_branch_id, module, data)
branch_id
Many2one
related='module_branch_id.branch_id'
store=True
branch_sequence
Integer
related='branch_id.sequence'
store=True
string='Branch Sequence'
commit
Char
has_migration_script
Boolean
default=False
manifest_value
Char
help='Technical field to host the manifest value.'
required=True
migration_script_url
Char
compute='_compute_migration_script_url'
string='Migration Script'
module_branch_id
Many2one → odoo.module.branch
comodel_name='odoo.module.branch'
index=True
ondelete='cascade'
required=True
string='Module'
module_id
Many2one
index=True
related='module_branch_id.module_id'
store=True
string='Module'
module_name
Char
index=True
related='module_branch_id.module_name'
store=True
string='Module Technical Name'
name
Char
required=True
sequence
Integer
create(self, vals_list)
write(self, values)
name
Char
index=True
required=True
No public methods.
name
Char
index=True
required=True
No public methods.
name
Char
index=True
required=True
No public methods.
active
Boolean
default=True
active
Boolean
default=True
addons_path_ids
Many2many → odoo.repository.addons_path
comodel_name='odoo.repository.addons_path'
help='Relative path of folders in this repository hosting Odoo modules'
string='Addons Path'
branch_ids
One2many → odoo.repository.branch
comodel_name='odoo.repository.branch'
inverse_name='repository_id'
string='Branches'
clone_name
Char
help='Force the name of the cloned repository (folder on disk). If not set, the name of the repository will be used.'
clone_url
Char
help='Used to clone the repository.'
string='Clone URL'
display_name
Char
compute='_compute_display_name'
store=True
manual_branches
Boolean
help='By default repository branches follows the configured Odoo versions (e.g: 17.0, 18.0...). Enable this option to configure your own branches.'
string='Configure branches manually'
module_ids
One2many → odoo.module.branch
comodel_name='odoo.module.branch'
inverse_name='repository_id'
readonly=True
string='Modules'
name
Char
index=True
required=True
org_id
Many2one → odoo.repository.org
comodel_name='odoo.repository.org'
index=True
ondelete='cascade'
required=True
string='Organization'
repo_type
Selection
selection=[('github', 'GitHub'), ('gitlab', 'GitLab')]
repo_url
Char
help='Web access to this repository.'
required=True
string='Web URL'
scan_weekday_ids
Many2many → time.weekday
comodel_name='time.weekday'
help='Limit scanning of this repository by the scheduled action to certain days only. If not defined, the scan will happen every day.'
string='Scanning days'
sequence
Integer
default=100
specific
Boolean
help='Host specific modules (that are not generic). Used for project repositories.'
ssh_key_id
Many2one → ssh.key
comodel_name='ssh.key'
help='SSH key used to clone/fetch this repository.'
ondelete='restrict'
string='SSH Key'
to_scan
Boolean
default=True
help='Scan this repository to collect data.'
token_id
Many2one → authentication.token
comodel_name='authentication.token'
help='Token used to clone/fetch this repository.'
ondelete='restrict'
string='Token'
action_force_scan(self, branch_ids=None, raise_exc=True)
action_scan(self, branch_ids=None, force=False, raise_exc=True)
cron_fetch_data(self, branches=None, force=False)
cron_scanner(self, branches=None, force=False)
cron_sync_oca_repositories(self)
default_get(self, fields_list)
open_modules(self)
unlink(self)
is_community
Boolean
default=False
help='Does this folder contain Odoo generic community modules?\n(from OCA, a contributor or your organization)'
string='Community Contribution?'
is_enterprise
Boolean
default=False
help='Does this folder contain Enterprise modules?\n(from Odoo S.A., a contributor or your organization)'
string='Enterprise?'
is_standard
Boolean
default=False
help='Does this folder contain modules from Odoo S.A.?'
string='Standard?'
relative_path
Char
required=True
No public methods.
active
Boolean
compute='_compute_active'
store=True
branch_id
Many2one → odoo.branch
comodel_name='odoo.branch'
index=True
ondelete='cascade'
required=True
string='Odoo Version'
cloned_branch
Char
help="Force the branch to clone (optional). Used on repositories with 'Configure branches manually' option enabled."
last_scanned_commit
Char
readonly=True
manual_branches
Boolean
related='repository_id.manual_branches'
store=True
module_ids
One2many → odoo.module.branch
comodel_name='odoo.module.branch'
inverse_name='repository_branch_id'
readonly=True
string='Modules'
name
Char
compute='_compute_name'
index=True
store=True
repository_id
Many2one → odoo.repository
comodel_name='odoo.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
specific
Boolean
related='repository_id.specific'
store=True
action_force_scan(self, raise_exc=True)
action_scan(self, force=False, raise_exc=True)
github_url
Char
compute='_compute_github_url'
string='GitHub URL'
name
Char
index=True
required=True
No public methods.
config_odoo_repository_default_token_id
Many2one → authentication.token
comodel_name='authentication.token'
help='Default token used to clone repositories and authenticate on API like GitHub.'
string='Default token'
config_odoo_repository_workaround_fs_errors
Boolean
help="Fix file system permissions when cloning repositories. Errors could be triggered on some file systems when git tries to execute 'chown' commands on its internal configuration files. This option will workaround this issue."
string='Workaround FS errors'
No public methods.
config_odoo_repository_default_token_id
Many2one
readonly=False
related='company_id.config_odoo_repository_default_token_id'
config_odoo_repository_main_node_url
Char
config_parameter='odoo_repository_main_node_url'
string='Endpoint URL'
config_odoo_repository_oca_blacklist
Char
config_parameter='odoo_repository.oca_repo_blacklist'
help='Comma-separated list of OCA repositories to skip during synchronization. Example: OCB,OpenUpgrade'
string='OCA Repository Blacklist'
config_odoo_repository_storage_path
Char
config_parameter='odoo_repository_storage_path'
string='Storage local path'
config_odoo_repository_workaround_fs_errors
Boolean
readonly=False
related='company_id.config_odoo_repository_workaround_fs_errors'
No public methods.
name
Char
required=True
private_key
Text
help='SSH private key without passphrase.'
required=True
No public methods.