VCP Management

vcp_management
REPOSITORY
REPOSITORYOCA/version-control-platform
GIT
GIThttps://github.com/OCA/version-control-platform.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/version-control-platform/tree/18.0/vcp_management
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Dixmit
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Dixmit
COMMITTERS
COMMITTERSEnric Tobella, Sébastien BEAU, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/version-control-platform
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-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.

Code Analysis

Views touched (36)
XML IDNameModelTypeStatus
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
Models touched (17)

New fields (7)
  • 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'
Public methods (0)

No public methods.

New fields (2)
  • name Char
    required=True
  • platform_id Many2one → vcp.platform
    comodel_name='vcp.platform' readonly=True required=True string='Platform'
Public methods (0)

No public methods.

New fields (10)
  • 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
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • name Char
    required=True
  • type_id Many2one → vcp.host.type
    args: 'vcp.host.type'
Public methods (0)

No public methods.

New fields (4)
  • active Boolean
    default=True
  • code Char
    required=True
  • code_kind Char
    required=True
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (4)
  • 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
    args: 'res.partner'
Public methods (0)

No public methods.

New fields (20)
  • 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
Public methods (1)
  • update_information(self)

New fields (2)
  • name Char
    required=True
  • platform_id Many2one → vcp.platform
    comodel_name='vcp.platform' ondelete='cascade' required=True string='Platform'
Public methods (0)

No public methods.

New fields (23)
  • 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
Public methods (3)
  • force_update_information(self)
  • update_branches(self)
  • update_information(self, update_interval_days=None)

New fields (8)
  • 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
Public methods (1)
  • process_rules(self)

New fields (27)
  • 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'
Public methods (0)

No public methods.

New fields (3)
  • color Char
    default=<expr>
  • name Char
    readonly=True required=True
  • request_ids Many2many → vcp.request
    comodel_name='vcp.request' readonly=True string='Requests'
Public methods (0)

No public methods.

New fields (11)
  • 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'
Public methods (0)

No public methods.

New fields (5)
  • 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')]
Public methods (0)

No public methods.

New fields (8)
  • 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
Public methods (0)

No public methods.

New fields (2)
  • local_path Char
    compute='_compute_local_path'
  • rule_information_ids One2many → vcp.rule.information
    domain=<expr> inverse_name='res_id' args: 'vcp.rule.information'
Public methods (0)

No public methods.

New fields (10)
  • 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
    args: '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
Public methods (1)
  • update_information(self)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/version-control-platform
PULL REQUEST
PULL REQUEST[19.0][MIG] vcp_management: Migration to 19.0 (#11)