| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/version-control-platform |
| GIT | |
| GIT | https://github.com/OCA/version-control-platform.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/version-control-platform/tree/18.0/vcp_management |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Dixmit |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Dixmit |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Sébastien BEAU, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/version-control-platform |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:18 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
pathspec |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES |
cloc |
| DESCRIPTION | |
| DESCRIPTION | Creates a set of modules used for handling a version control patform. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
vcp_branch_form_view |
vcp.branch | form | New | |
vcp_branch_list_view |
vcp.branch | list | New | |
vcp_comment_form_view |
vcp.comment | form | New | |
vcp_comment_list_view |
vcp.comment | list | New | |
vcp_host_form_view |
vcp.host | form | New | |
vcp_host_search_view |
vcp.host | search | New | |
vcp_host_tree_view |
vcp.host | list | New | |
vcp_organization_form_view |
vcp.organization | form | New | |
vcp_organization_search_view |
vcp.organization | search | New | |
vcp_organization_tree_view |
vcp.organization | list | New | |
vcp_partner_detail |
vcp_partner_detail | ir.ui.view | qweb | New |
vcp_platform_form_view |
vcp.platform | form | New | |
vcp_platform_search_view |
vcp.platform | search | New | |
vcp_platform_tree_view |
vcp.platform | list | New | |
vcp_repository_branch_form_view |
vcp.repository.branch | form | New | |
vcp_repository_branch_search_view |
vcp.repository.branch | search | New | |
vcp_repository_branch_tree_view |
vcp.repository.branch | list | New | |
vcp_repository_form_view |
vcp.repository | form | New | |
vcp_repository_search_view |
vcp.repository | search | New | |
vcp_repository_tree_view |
vcp.repository | list | New | |
vcp_request_form_view |
vcp.request | form | New | |
vcp_request_label_form_view |
vcp.request.label | form | New | |
vcp_request_label_search_view |
vcp.request.label | search | New | |
vcp_request_label_tree_view |
vcp.request.label | list | New | |
vcp_request_search_view |
vcp.request | search | New | |
vcp_request_tree_view |
vcp.request | list | New | |
vcp_review_form_view |
vcp.review | form | New | |
vcp_review_tree_view |
vcp.review | list | New | |
vcp_rule_form_view |
vcp.rule | form | New | |
vcp_rule_information_form_view |
vcp.rule.information | form | New | |
vcp_rule_information_list_view |
vcp.rule.information | list | New | |
vcp_rule_search_view |
vcp.rule | search | New | |
vcp_rule_tree_view |
vcp.rule | list | New | |
vcp_user_form_view |
vcp.user | form | New | |
vcp_user_search_view |
vcp.user | search | New | |
vcp_user_tree_view |
vcp.user | list | New |
image_1920
Image
compute='_compute_image_1920'
readonly=False
store=True
vcp_comments
Integer
compute='_compute_vcp_contributions'
prefetch=False
string='Comments'
vcp_created_requests
Integer
compute='_compute_vcp_contributions'
prefetch=False
string='Created Requests'
vcp_merged_requests
Integer
compute='_compute_vcp_contributions'
prefetch=False
string='Merged Requests'
vcp_organization_ids
One2many → vcp.organization
inverse_name='partner_id'
args: 'vcp.organization'
vcp_reviews
Integer
compute='_compute_vcp_contributions'
prefetch=False
string='Reviews'
vcp_user_ids
One2many → vcp.user
inverse_name='partner_id'
args: 'vcp.user'
No public methods.
name
Char
required=True
platform_id
Many2one → vcp.platform
comodel_name='vcp.platform'
readonly=True
required=True
string='Platform'
No public methods.
body
Html
readonly=True
created_at
Datetime
readonly=True
external_id
Char
index=True
readonly=True
required=True
organization_id
Many2one
readonly=True
related='request_id.organization_id'
store=True
partner_id
Many2one
readonly=True
related='user_id.partner_id'
partner_organization_id
Many2one
related='request_id.organization_id.partner_id'
string='Organization Partner'
repository_id
Many2one
readonly=True
related='request_id.repository_id'
store=True
request_id
Many2one → vcp.request
comodel_name='vcp.request'
ondelete='cascade'
readonly=True
required=True
string='Request'
updated_at
Datetime
readonly=True
user_id
Many2one → vcp.user
comodel_name='vcp.user'
readonly=True
No public methods.
active
Boolean
default=True
name
Char
required=True
type_id
Many2one → vcp.host.type
No public methods.
active
Boolean
default=True
code
Char
required=True
code_kind
Char
required=True
name
Char
required=True
No public methods.
external_id
Char
index=True
readonly=True
required=True
host_id
Many2one → vcp.host
comodel_name='vcp.host'
readonly=True
required=True
name
Char
readonly=True
required=True
partner_id
Many2one → res.partner
No public methods.
active
Boolean
default=True
branch_ids
One2many → vcp.branch
inverse_name='platform_id'
args: 'vcp.branch'
default_repository_scheduled_branch_update
Boolean
help='If checked, the cron that update repository branches will look for up to date branches, for this repository.'
default_repository_scheduled_information_update
Boolean
help='If checked, the cron that update repositories will look for up to date information, for this repository.'
description
Char
readonly=True
fetch_repository_archived
Boolean
help='If checked, all repositories will be fetched (actives and archived). Otherwise, only active repositories will be fetched'
fetch_repository_branch_pattern
Char
help='Regular Expression. If set, only branches whose names are matching the pattern will be fetched, when fetching branches of the repositories of the platform.'
fetch_repository_fork
Boolean
help='If checked, all repositories will be fetched (sources and forks). Otherwise, only sources repositories will be fetched'
host_id
Many2one → vcp.host
required=True
args: 'vcp.host'
key_ids
One2many → vcp.platform.key
comodel_name='vcp.platform.key'
inverse_name='platform_id'
string='API Keys'
kind
Char
related='host_id.type_id.code'
last_update
Datetime
readonly=True
local_path
Char
compute='_compute_local_path'
name
Char
required=True
repository_count
Integer
compute='_compute_repository_count'
store=True
repository_ids
One2many → vcp.repository
inverse_name='platform_id'
args: 'vcp.repository'
rule_ids
Many2many → vcp.rule
string='Processing Rules'
args: 'vcp.rule'
scheduled_information_update
Boolean
default=True
help='If checked, the cron that update platform informations will look for up to date information, for this platform.'
short_description
Char
readonly=True
update_interval_days
Integer
default=3
update_information(self)
name
Char
required=True
platform_id
Many2one → vcp.platform
comodel_name='vcp.platform'
ondelete='cascade'
required=True
string='Platform'
No public methods.
active
Boolean
default=True
readonly=True
branch_count
Integer
compute='_compute_branch_count'
store=True
branch_ids
One2many → vcp.repository.branch
inverse_name='repository_id'
args: 'vcp.repository.branch'
branch_update_date
Datetime
default=fields.Datetime.now
readonly=True
required=True
created_at
Datetime
readonly=True
description
Char
readonly=True
fetch_branch_pattern
Char
help='Regular Expression. If set, only branches whose names are matching the pattern will be fetched. You can define that value at platform level.'
fork_count
Integer
readonly=True
from_date
Datetime
required=True
is_fork
Boolean
help='Specify if the repo is a Source or a Fork repository'
readonly=True
last_commit_date
Datetime
readonly=True
local_path
Char
compute='_compute_local_path'
name
Char
index=True
required=True
override_parent_rules
Boolean
platform_id
Many2one → vcp.platform
comodel_name='vcp.platform'
required=True
request_count
Integer
compute='_compute_request_count'
request_ids
One2many → vcp.request
inverse_name='repository_id'
args: 'vcp.request'
rule_ids
Many2many → vcp.rule
string='Processing Rules'
args: 'vcp.rule'
scheduled_branch_update
Boolean
compute='_compute_scheduled_branch_update'
help='If checked, the cron that update repository branches will look for up to date branches, for this repository.'
readonly=False
store=True
scheduled_information_update
Boolean
compute='_compute_scheduled_information_update'
help='If checked, the cron that update repository informations will look for up to date information, for this repository. This update include the recovery of requests, comments and reviews.'
readonly=False
store=True
stargazers_count
Integer
readonly=True
test_field
Char
watchers_count
Integer
readonly=True
force_update_information(self)
update_branches(self)
update_information(self, update_interval_days=None)
branch_id
Many2one → vcp.branch
ondelete='cascade'
readonly=True
required=True
string='Branch'
args: 'vcp.branch'
last_commit
Char
readonly=True
override_parent_rules
Boolean
platform_id
Many2one
readonly=True
related='repository_id.platform_id'
repository_id
Many2one → vcp.repository
ondelete='cascade'
readonly=True
required=True
args: 'vcp.repository'
rule_failure_msg
Text
rule_ids
Many2many → vcp.rule
string='Processing Rules'
args: 'vcp.rule'
update_rule_processing_date
Datetime
default=fields.Datetime.now
required=True
process_rules(self)
additions
Integer
readonly=True
branch_id
Many2one → vcp.branch
comodel_name='vcp.branch'
ondelete='restrict'
readonly=True
closed_at
Datetime
readonly=True
comment_count
Integer
compute='_compute_comment_count'
store=True
comment_ids
One2many → vcp.comment
comodel_name='vcp.comment'
inverse_name='request_id'
readonly=True
string='Comments'
commits
Integer
readonly=True
created_at
Datetime
readonly=True
deletions
Integer
readonly=True
external_id
Char
index=True
readonly=True
string='Externa ID'
is_draft
Boolean
readonly=True
is_merged
Boolean
readonly=True
label_ids
Many2many → vcp.request.label
comodel_name='vcp.request.label'
readonly=True
string='Labels'
name
Char
readonly=True
number
Integer
readonly=True
organization_id
Many2one → vcp.organization
comodel_name='vcp.organization'
readonly=True
partner_id
Many2one
related='user_id.partner_id'
partner_organization_id
Many2one
related='organization_id.partner_id'
string='Organization Partner'
repository_id
Many2one → vcp.repository
comodel_name='vcp.repository'
ondelete='cascade'
readonly=True
review_comments
Integer
readonly=True
review_count
Integer
compute='_compute_review_count'
store=True
review_ids
One2many → vcp.review
comodel_name='vcp.review'
inverse_name='request_id'
readonly=True
string='Reviews'
state
Char
readonly=True
status
Selection
compute='_compute_status'
selection=_STATUS_SELECTION
store=True
total_comments
Integer
readonly=True
updated_at
Datetime
readonly=True
url
Char
readonly=True
user_id
Many2one → vcp.user
comodel_name='vcp.user'
readonly=True
string='Contributor'
No public methods.
color
Char
default=<expr>
name
Char
readonly=True
required=True
request_ids
Many2many → vcp.request
comodel_name='vcp.request'
readonly=True
string='Requests'
No public methods.
body
Html
readonly=True
external_id
Char
index=True
readonly=True
required=True
organization_id
Many2one
readonly=True
related='request_id.organization_id'
store=True
partner_id
Many2one
related='user_id.partner_id'
partner_organization_id
Many2one
related='request_id.organization_id.partner_id'
string='Organization Partner'
platform_id
Many2one
readonly=True
related='request_id.repository_id.platform_id'
store=True
repository_id
Many2one
readonly=True
related='request_id.repository_id'
store=True
request_id
Many2one → vcp.request
ondelete='cascade'
readonly=True
required=True
args: 'vcp.request'
state
Char
readonly=True
submitted_at
Datetime
readonly=True
user_id
Many2one → vcp.user
readonly=True
args: 'vcp.user'
No public methods.
active
Boolean
default=True
branch_pattern
Char
default='.*'
required=True
name
Char
required=True
paths
Text
default='*'
help='Define with pathspec especification'
required=True
rule_type
Selection
default='cloc'
required=True
args: [('cloc', 'Cloc Analysis')]
No public methods.
code_count
Integer
documentation_count
Integer
empty_count
Integer
res_id
Integer
required=True
res_model
Char
required=True
rule_id
Many2one → vcp.rule
required=True
args: 'vcp.rule'
scanned_files
Integer
total_count
Integer
compute='_compute_total_count'
store=True
No public methods.
local_path
Char
compute='_compute_local_path'
rule_information_ids
One2many → vcp.rule.information
domain=<expr>
inverse_name='res_id'
args: 'vcp.rule.information'
No public methods.
active
Boolean
default=True
readonly=True
avatar_url
Char
readonly=True
company
Char
readonly=True
email
Char
readonly=True
external_id
Char
index=True
readonly=True
required=True
host_id
Many2one → vcp.host
comodel_name='vcp.host'
readonly=True
required=True
name
Char
readonly=True
required=True
partner_id
Many2one → res.partner
sync_image_to_partner
Boolean
help='Use the image user as image on the partner'
user_update_date
Datetime
default=fields.Datetime.now
readonly=True
update_information(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/version-control-platform |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] vcp_management: Migration to 19.0 (#11) |