| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/18.0/github_connector |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | Carlos Lopez, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/interface-github |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
GitPython PyGithub pathspec |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES |
cloc |
| DESCRIPTION | |
| DESCRIPTION | This module allows you to: - Fetch into Odoo social information from Github (Organizations, Teams, Users) - Fetch into Odoo Code structure information from Github (Repositories, Branches) - Download source code from Github - Analyze repository code from rules previously created |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
action_github_repository_branch_rule_info_report_graph |
github.repository.branch.rule.info.report | graph | New | |
action_github_repository_branch_rule_info_report_pivot |
github.repository.branch.rule.info.report | pivot | New | |
view_github_analysis_rule_form |
github.analysis.rule | form | New | |
view_github_analysis_rule_group_form |
github.analysis.rule.group | form | New | |
view_github_analysis_rule_group_tree |
github.analysis.rule.group | list | New | |
view_github_analysis_rule_tree |
github.analysis.rule | list | New | |
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | list | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | list | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | list | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner.kanban | github.team.partner | kanban | New |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | list | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | list | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | list | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_name
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, gh_data=None, data=None, extra_data=None)
get_github_base_obj_for_creation(self)
get_github_connector(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
process_timezone_fields(self, res)
update_from_github(self, child_update)
group_id
Many2one → github.analysis.rule.group
comodel_name='github.analysis.rule.group'
required=True
string='Group'
name
Char
required=True
paths
Text
default='*'
help='Define with pathspec especification'
required=True
No public methods.
name
Char
required=True
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
ondelete='cascade'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Doc.'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
scanned_files
Integer
total_count
Integer
compute='_compute_total_count'
store=True
string='# Total'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
email
Char
readonly=True
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Image
readonly=True
location
Char
readonly=True
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
action_github_repository(self)
action_github_team(self)
action_res_partner(self)
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
name
Char
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
color
Integer
compute='_compute_ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization and those set here.'
string='Inhibit inherited rules'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
action_github_repository_branch(self)
action_github_team_repository_from_repository(self)
button_sync_branch(self)
create_in_github(self)
cron_update_branch_list(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
analysis_rule_info_ids
One2many → github.repository.branch.rule.info
comodel_name='github.repository.branch.rule.info'
inverse_name='repository_branch_id'
string='Analysis Rules (info)'
ci_url
Char
compute='_compute_ci_url'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
coverage_url
Char
compute='_compute_coverage_url'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization, repository and those set here.'
string='Inhibit inherited rules'
last_analyze_date
Datetime
last_download_date
Datetime
local_path
Char
compute='_compute_local_path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
set_analysis_rule_info(self)
repository_branch_id
Many2one → github.repository.branch
comodel_name='github.repository.branch'
ondelete='cascade'
string='Repository Branch'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Documentation'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
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'
repository_id
Many2one → github.repository
comodel_name='github.repository'
string='Repository'
scanned_files
Integer
total_count
Integer
string='# Total'
init(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
action_github_team_partner_from_team(self)
action_github_team_repository_from_team(self)
button_sync_member(self)
button_sync_repository(self)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
context_search_default_partner_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
context_search_default_repository_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
action_github_organization(self)
action_github_team_partner_from_partner(self)
find_related_github_object(self, obj_id=None)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_name', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=[('organization', 'Organization'), ('repository', 'Repository'), ('user', 'User')]
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/17.0/github_connector |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/interface-github |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
GitPython PyGithub pathspec |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES |
cloc |
| DESCRIPTION | |
| DESCRIPTION | This module allows you to: - Fetch into Odoo social information from Github (Organizations, Teams, Users) - Fetch into Odoo Code structure information from Github (Repositories, Branches) - Download source code from Github - Analyze repository code from rules previously created |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
action_github_repository_branch_rule_info_report_graph |
github.repository.branch.rule.info.report | graph | New | |
action_github_repository_branch_rule_info_report_pivot |
github.repository.branch.rule.info.report | pivot | New | |
view_github_analysis_rule_form |
github.analysis.rule | form | New | |
view_github_analysis_rule_group_form |
github.analysis.rule.group | form | New | |
view_github_analysis_rule_group_tree |
github.analysis.rule.group | tree | New | |
view_github_analysis_rule_tree |
github.analysis.rule | tree | New | |
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner.kanban | github.team.partner | kanban | New |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_name
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, gh_data=None, data=None, extra_data=None)
get_github_base_obj_for_creation(self)
get_github_connector(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
process_timezone_fields(self, res)
update_from_github(self, child_update)
group_id
Many2one → github.analysis.rule.group
comodel_name='github.analysis.rule.group'
required=True
string='Group'
name
Char
required=True
paths
Text
default='*'
help='Define with pathspec especification'
required=True
No public methods.
name
Char
required=True
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
ondelete='cascade'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Doc.'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
scanned_files
Integer
total_count
Integer
compute='_compute_total_count'
store=True
string='# Total'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
email
Char
readonly=True
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Image
readonly=True
location
Char
readonly=True
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
action_github_repository(self)
action_github_team(self)
action_res_partner(self)
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
name
Char
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
color
Integer
compute='_compute_ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization and those set here.'
string='Inhibit inherited rules'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
action_github_repository_branch(self)
action_github_team_repository_from_repository(self)
button_sync_branch(self)
create_in_github(self)
cron_update_branch_list(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
analysis_rule_info_ids
One2many → github.repository.branch.rule.info
comodel_name='github.repository.branch.rule.info'
inverse_name='repository_branch_id'
string='Analysis Rules (info)'
ci_url
Char
compute='_compute_ci_url'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
coverage_url
Char
compute='_compute_coverage_url'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization, repository and those set here.'
string='Inhibit inherited rules'
last_analyze_date
Datetime
last_download_date
Datetime
local_path
Char
compute='_compute_local_path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
set_analysis_rule_info(self)
repository_branch_id
Many2one → github.repository.branch
comodel_name='github.repository.branch'
ondelete='cascade'
string='Repository Branch'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Documentation'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
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'
repository_id
Many2one → github.repository
comodel_name='github.repository'
string='Repository'
scanned_files
Integer
total_count
Integer
string='# Total'
init(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
action_github_team_partner_from_team(self)
action_github_team_repository_from_team(self)
button_sync_member(self)
button_sync_repository(self)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
context_search_default_partner_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
context_search_default_repository_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
action_github_organization(self)
action_github_team_partner_from_partner(self)
find_related_github_object(self, obj_id=None)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_name', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=[('organization', 'Organization'), ('repository', 'Repository'), ('user', 'User')]
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/16.0/github_connector |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | Weblate, oca-ci, Carolina Fernandez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/interface-github |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:54:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
GitPython PyGithub pathspec |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES |
cloc |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
action_github_repository_branch_rule_info_report_graph |
github.repository.branch.rule.info.report | graph | New | |
action_github_repository_branch_rule_info_report_pivot |
github.repository.branch.rule.info.report | pivot | New | |
view_github_analysis_rule_form |
github.analysis.rule | form | New | |
view_github_analysis_rule_group_form |
github.analysis.rule.group | form | New | |
view_github_analysis_rule_group_tree |
github.analysis.rule.group | tree | New | |
view_github_analysis_rule_tree |
github.analysis.rule | tree | New | |
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner.kanban | github.team.partner | kanban | New |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_name
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, gh_data=None, data=None, extra_data=None)
get_github_base_obj_for_creation(self)
get_github_connector(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
process_timezone_fields(self, res)
update_from_github(self, child_update)
group_id
Many2one → github.analysis.rule.group
comodel_name='github.analysis.rule.group'
required=True
string='Group'
name
Char
required=True
paths
Text
default='*'
help='Define with pathspec especification'
required=True
No public methods.
name
Char
required=True
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
ondelete='cascade'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Doc.'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
scanned_files
Integer
total_count
Integer
compute='_compute_total_count'
store=True
string='# Total'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
email
Char
readonly=True
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Image
readonly=True
location
Char
readonly=True
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
action_github_repository(self)
action_github_team(self)
action_res_partner(self)
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
name
Char
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
color
Integer
compute='_compute_ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization and those set here.'
string='Inhibit inherited rules'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
action_github_repository_branch(self)
action_github_team_repository_from_repository(self)
button_sync_branch(self)
create_in_github(self)
cron_update_branch_list(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
analysis_rule_info_ids
One2many → github.repository.branch.rule.info
comodel_name='github.repository.branch.rule.info'
inverse_name='repository_branch_id'
string='Analysis Rules (info)'
ci_url
Char
compute='_compute_ci_url'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
coverage_url
Char
compute='_compute_coverage_url'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization, repository and those set here.'
string='Inhibit inherited rules'
last_analyze_date
Datetime
last_download_date
Datetime
local_path
Char
compute='_compute_local_path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
set_analysis_rule_info(self)
repository_branch_id
Many2one → github.repository.branch
comodel_name='github.repository.branch'
ondelete='cascade'
string='Repository Branch'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Documentation'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
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'
repository_id
Many2one → github.repository
comodel_name='github.repository'
string='Repository'
scanned_files
Integer
total_count
Integer
string='# Total'
init(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
action_github_team_partner_from_team(self)
action_github_team_repository_from_team(self)
button_sync_member(self)
button_sync_repository(self)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
context_search_default_partner_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
context_search_default_repository_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
action_github_organization(self)
action_github_team_partner_from_partner(self)
find_related_github_object(self, obj_id=None)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_name', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=[('organization', 'Organization'), ('repository', 'Repository'), ('user', 'User')]
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/15.0/github_connector |
| VERSION | |
| VERSION | 2.0.1 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Víctor Martínez, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/interface-github |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:44 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
GitPython PyGithub pathspec |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES |
cloc |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
action_github_repository_branch_rule_info_report_graph |
github.repository.branch.rule.info.report | graph | New | |
action_github_repository_branch_rule_info_report_pivot |
github.repository.branch.rule.info.report | pivot | New | |
view_github_analysis_rule_form |
github.analysis.rule | form | New | |
view_github_analysis_rule_group_form |
github.analysis.rule.group | form | New | |
view_github_analysis_rule_group_tree |
github.analysis.rule.group | tree | New | |
view_github_analysis_rule_tree |
github.analysis.rule | tree | New | |
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner.kanban | github.team.partner | kanban | New |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_name
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, gh_data=None, data=None, extra_data=None)
get_github_base_obj_for_creation(self)
get_github_connector(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
process_timezone_fields(self, res)
update_from_github(self, child_update)
group_id
Many2one → github.analysis.rule.group
comodel_name='github.analysis.rule.group'
required=True
string='Group'
name
Char
required=True
paths
Text
default='*'
help='Define with pathspec especification'
required=True
No public methods.
name
Char
required=True
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
ondelete='cascade'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Doc.'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
scanned_files
Integer
total_count
Integer
compute='_compute_total_count'
store=True
string='# Total'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
email
Char
readonly=True
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Image
readonly=True
location
Char
readonly=True
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
action_github_repository(self)
action_github_team(self)
action_res_partner(self)
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
name
Char
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
color
Integer
compute='_compute_ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization and those set here.'
string='Inhibit inherited rules'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
action_github_repository_branch(self)
action_github_team_repository_from_repository(self)
button_sync_branch(self)
create_in_github(self)
cron_update_branch_list(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
analysis_rule_info_ids
One2many → github.repository.branch.rule.info
comodel_name='github.repository.branch.rule.info'
inverse_name='repository_branch_id'
string='Analysis Rules (info)'
ci_url
Char
compute='_compute_ci_url'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
coverage_url
Char
compute='_compute_coverage_url'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
inhibit_inherited_rules
Boolean
default=False
help='If checked, the analysis rules to be used will be only those set here.\n If unchecked, the analysis rules to be used will be those set in the organization, repository and those set here.'
string='Inhibit inherited rules'
last_analyze_date
Datetime
last_download_date
Datetime
local_path
Char
compute='_compute_local_path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
set_analysis_rule_info(self)
repository_branch_id
Many2one → github.repository.branch
comodel_name='github.repository.branch'
ondelete='cascade'
string='Repository Branch'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Documentation'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
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'
repository_id
Many2one → github.repository
comodel_name='github.repository'
string='Repository'
scanned_files
Integer
total_count
Integer
string='# Total'
init(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
description
Char
readonly=True
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
action_github_team_partner_from_team(self)
action_github_team_repository_from_team(self)
button_sync_member(self)
button_sync_repository(self)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
context_search_default_partner_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
context_search_default_repository_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
action_github_organization(self)
action_github_team_partner_from_partner(self)
find_related_github_object(self, obj_id=None)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_name', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=[('organization', 'Organization'), ('repository', 'Repository'), ('user', 'User')]
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/14.0/github_connector |
| VERSION | |
| VERSION | 2.3.0 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | GitHub, Miquel Raïch, Víctor Martínez, Ernesto Tejeda, João Marques, oca-travis, Weblate, OCA-git-bot, Simone Rubino, Giovanni, oca-git-bot, diga |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/interface-github |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
GitPython PyGithub pathspec pygount |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
action_github_repository_branch_rule_info_report_graph |
github.repository.branch.rule.info.report | graph | New | |
action_github_repository_branch_rule_info_report_pivot |
github.repository.branch.rule.info.report | pivot | New | |
view_github_analysis_rule_form |
github.analysis.rule | form | New | |
view_github_analysis_rule_group_form |
github.analysis.rule.group | form | New | |
view_github_analysis_rule_group_tree |
github.analysis.rule.group | tree | New | |
view_github_analysis_rule_tree |
github.analysis.rule | tree | New | |
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner.kanban | github.team.partner | kanban | New |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_name
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self)
find_related_github_object(self, id=None)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, gh_data=None, data=None, extra_data=None)
get_github_base_obj_for_creation(self)
get_github_connector(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
process_timezone_fields(self, res)
update_from_github(self, child_update)
group_id
Many2one → github.analysis.rule.group
comodel_name='github.analysis.rule.group'
required=True
string='Group'
name
Char
required=True
string='Name'
paths
Text
default='*'
help='Define with pathspec especification'
required=True
string='Paths'
No public methods.
name
Char
required=True
string='Name'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Doc.'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
scanned_files
Integer
string='Scanned files'
string_count
Integer
string='# String'
total_count
Integer
compute='_compute_total_count'
store=True
string='# Total'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
string='Description'
email
Char
readonly=True
string='Email'
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Image
readonly=True
string='Image'
location
Char
readonly=True
string='Location'
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
string='Website URL'
action_github_repository(self)
action_github_team(self)
action_res_partner(self)
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
name
Char
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
string='Sequence'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
color
Integer
compute='_compute_ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
string='Is Ignored'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
string='Website'
action_github_repository_branch(self)
action_github_team_repository_from_repository(self)
button_sync_branch(self)
create_in_github(self)
cron_update_branch_list(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
analysis_rule_info_ids
One2many → github.repository.branch.rule.info
comodel_name='github.repository.branch.rule.info'
inverse_name='repository_branch_id'
string='Analysis Rules (info)'
ci_url
Char
compute='_compute_ci_url'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
string='Complete Name'
coverage_url
Char
compute='_compute_coverage_url'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
last_analyze_date
Datetime
string='Last Analyze Date'
last_download_date
Datetime
string='Last Download Date'
local_path
Char
compute='_compute_local_path'
string='Local Path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
string='State'
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
find_related_github_object(self, obj_id=None)
set_analysis_rule_info(self)
repository_branch_id
Many2one → github.repository.branch
comodel_name='github.repository.branch'
ondelete='cascade'
string='Repository Branch'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Documentation'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
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'
repository_id
Many2one → github.repository
comodel_name='github.repository'
string='Repository'
scanned_files
Integer
string='Scanned files'
string_count
Integer
string='# String'
total_count
Integer
string='# Total'
init(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
string='Privacy'
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
action_github_team_partner_from_team(self)
action_github_team_repository_from_team(self)
button_sync_member(self)
button_sync_repository(self)
create_in_github(self)
find_related_github_object(self, obj_id=None)
full_update(self)
get_conversion_dict(self)
get_github_base_obj_for_creation(self)
get_odoo_data_from_github(self, gh_data)
context_search_default_partner_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
string='Role'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
context_search_default_repository_id
Integer
compute='_compute_context_search_default'
context_search_default_team_id
Integer
compute='_compute_context_search_default'
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
string='Permission'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
action_github_organization(self)
action_github_team_partner_from_partner(self)
find_related_github_object(self, obj_id=None)
get_conversion_dict(self)
get_odoo_data_from_github(self, gh_data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_name', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=[('organization', 'Organization'), ('repository', 'Repository'), ('user', 'User')]
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/13.0/github_connector |
| VERSION | |
| VERSION | 4.0.0 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Alexandre Díaz, Víctor Martínez, Ernesto Tejeda, João Marques, oca-travis, OCA-git-bot, Carlos Roca |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:21 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
GitPython pathspec pygount |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
action_github_repository_branch_rule_info_report_graph |
github.repository.branch.rule.info.report | graph | New | |
action_github_repository_branch_rule_info_report_pivot |
github.repository.branch.rule.info.report | pivot | New | |
view_github_analysis_rule_form |
github.analysis.rule | form | New | |
view_github_analysis_rule_group_form |
github.analysis.rule.group | form | New | |
view_github_analysis_rule_group_tree |
github.analysis.rule.group | tree | New | |
view_github_analysis_rule_tree |
github.analysis.rule | tree | New | |
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner.kanban | github.team.partner | kanban | New |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_login
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self, model_obj)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, data, extra_data=None)
get_github_args_for_creation(self)
get_github_connector(self, github_type)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
github_type(self)
process_timezone_fields(self, res)
update_from_github(self, child_update)
group_id
Many2one → github.analysis.rule.group
comodel_name='github.analysis.rule.group'
required=True
string='Group'
name
Char
required=True
string='Name'
paths
Text
default='*'
help='Define with pathspec especification'
required=True
string='Paths'
No public methods.
name
Char
required=True
string='Name'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Doc.'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
scanned_files
Integer
string='Scanned files'
string_count
Integer
string='# String'
total_count
Integer
compute='_compute_total_count'
store=True
string='# Total'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
string='Description'
email
Char
readonly=True
string='Email'
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Image
readonly=True
string='Image'
location
Char
readonly=True
string='Location'
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
ondelete='cascade'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
string='Website URL'
action_github_repository(self)
action_github_team(self)
action_res_partner(self)
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, data)
name
Char
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
string='Sequence'
No public methods.
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
color
Integer
compute='_compute_ignore'
multi='ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
multi='ignore'
string='Is Ignored'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
string='Website'
action_github_repository_branch(self)
action_github_team_repository_from_repository(self)
button_sync_branch(self)
cron_update_branch_list(self)
full_update(self)
get_conversion_dict(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
analysis_rule_ids
Many2many → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rules'
analysis_rule_info_ids
One2many → github.repository.branch.rule.info
comodel_name='github.repository.branch.rule.info'
inverse_name='repository_branch_id'
string='Analysis Rules (info)'
ci_url
Char
compute='_compute_ci'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
string='Complete Name'
coverage_url
Char
compute='_compute_coverage'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
last_analyze_date
Datetime
string='Last Analyze Date'
last_download_date
Datetime
string='Last Download Date'
local_path
Char
compute='_compute_local_path'
string='Local Path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
string='State'
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
set_analysis_rule_info(self)
repository_branch_id
Many2one → github.repository.branch
comodel_name='github.repository.branch'
ondelete='cascade'
string='Repository Branch'
No public methods.
analysis_rule_id
Many2one → github.analysis.rule
comodel_name='github.analysis.rule'
string='Analysis Rule'
code_count
Integer
string='# Code'
documentation_count
Integer
string='# Documentation'
empty_count
Integer
string='# Empty'
group_id
Many2one
readonly=True
related='analysis_rule_id.group_id'
string='Group'
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'
repository_id
Many2one → github.repository
comodel_name='github.repository'
string='Repository'
scanned_files
Integer
string='Scanned files'
string_count
Integer
string='# String'
total_count
Integer
string='# Total'
init(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
string='Privacy'
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
action_github_team_partner_from_team(self)
action_github_team_repository_from_team(self)
button_sync_member(self)
button_sync_repository(self)
full_update(self)
get_conversion_dict(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
string='Role'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
string='Permission'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_ids
Many2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
action_github_organization(self)
action_github_team_partner_from_partner(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_login', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=_GITHUB_TYPE
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/12.0/github_connector |
| VERSION | |
| VERSION | 2.2.2 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Akretion, GRAP |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Hugo Adan, Víctor Martínez, Jordi Riera, Moises Lopez - https://www.vauxoo.com/, OCA-git-bot, Cristina Martin, Carlos Roca, Manuel Gómez |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:26 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
git |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | field | Inherits base.res_partner_kanban_view | |
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | field | Inherits base.view_partner_tree | |
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_download_analyze_branch_form |
Download and Analyze Source Code | wizard.download.analyze.branch | form | New |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New | |
view_wizard_update_branch_list_form |
wizard.update.branch.list | form | New | |
view_wizard_update_from_github_form |
wizard.update.from.github | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
oldname='github_id'
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_login
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self, model_obj)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, data, extra_data=None)
get_github_args_for_creation(self)
get_github_connector(self, github_type)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
github_type(self)
update_from_github(self, child_update)
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
string='Description'
email
Char
readonly=True
string='Email'
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Binary
readonly=True
string='Image'
location
Char
readonly=True
string='Location'
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
ondelete='cascade'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
string='Website URL'
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, data)
name
Char
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
string='Sequence'
No public methods.
color
Integer
compute='_compute_ignore'
multi='ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
multi='ignore'
string='Is Ignored'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
string='Website'
button_sync_branch(self)
cron_update_branch_list(self)
full_update(self)
get_conversion_dict(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
ci_url
Char
compute='_compute_ci'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
string='Complete Name'
coverage_url
Char
compute='_compute_coverage'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
last_analyze_date
Datetime
string='Last Analyze Date'
last_download_date
Datetime
string='Last Download Date'
local_path
Char
compute='_compute_local_path'
string='Local Path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
string='State'
analyze_code_one(self)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
get_github_login(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
string='Privacy'
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
button_sync_member(self)
button_sync_repository(self)
full_update(self)
get_conversion_dict(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
image_small
Binary
readonly=True
related='partner_id.image_small'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
string='Role'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
string='Permission'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_ids
Many2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
get_conversion_dict(self)
get_odoo_data_from_github(self, data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_login', '!=', False)]"
string='Team Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Team Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
analyze_source_code
Boolean
default=True
string='Analyze Source Code'
download_source_code
Boolean
default=True
string='Download Source Code'
apply(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=_GITHUB_TYPE
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
No new fields.
Public methods (1)button_update_branch_list(self)
child_update
Boolean
default=False
string='Update Child Objects'
button_update_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/11.0/github_connector |
| VERSION | |
| VERSION | 1.1.2 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, GRAP, Sylvain LE GAL |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, GRAP, Sylvain LE GAL |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Hugo Adan, Stéphane Bidoul (ACSONE), cubells, Eric @ Elico Corp |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:24:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
git |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | Inherits base.res_partner_kanban_view | ||
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | Inherits base.view_partner_tree | ||
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_download_analyze_branch_form |
Download and Analyze Source Code | wizard.download.analyze.branch | form | New |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New | |
view_wizard_update_branch_list_form |
wizard.update.branch.list | form | New | |
view_wizard_update_from_github_form |
wizard.update.from.github | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
oldname='github_id'
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_login
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self, model_obj)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_conversion_dict(self)
get_from_id_or_create(self, data, extra_data=None)
get_github_args_for_creation(self)
get_github_connector(self, github_type)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
github_type(self)
update_from_github(self, child_update)
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
string='Description'
email
Char
readonly=True
string='Email'
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\npurchase-workflow\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Binary
readonly=True
string='Image'
location
Char
readonly=True
string='Location'
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
ondelete='cascade'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
string='Website URL'
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
full_update(self)
get_conversion_dict(self)
get_odoo_data_from_github(self, data)
name
Char
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
string='Sequence'
No public methods.
color
Integer
compute='_compute_ignore'
multi='ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source will this way not be downloaded and analyzed. To ignore a repository, go to the organization and add the file 'Ignored Repositories'."
multi='ignore'
string='Is Ignored'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
string='Website'
button_sync_branch(self)
cron_update_branch_list(self)
full_update(self)
get_conversion_dict(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
ci_url
Char
compute='_compute_ci'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
string='Complete Name'
coverage_url
Char
compute='_compute_coverage'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
last_analyze_date
Datetime
string='Last Analyze Date'
last_download_date
Datetime
string='Last Download Date'
local_path
Char
compute='_compute_local_path'
string='Local Path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
string='State'
analyze_code_one(self, branch)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
string='Privacy'
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
button_sync_member(self)
button_sync_repository(self)
full_update(self)
get_conversion_dict(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
image_small
Binary
readonly=True
related='partner_id.image_small'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
string='Role'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
string='Permission'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
github_team_ids
Many2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if this account is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
get_conversion_dict(self)
get_odoo_data_from_github(self, data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_login', '!=', False)]"
string='Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
analyze_source_code
Boolean
default=True
string='Analyze Source Code'
download_source_code
Boolean
default=True
string='Download Source Code'
apply(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=_GITHUB_TYPE
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
No new fields.
Public methods (1)button_update_branch_list(self)
child_update
Boolean
default=False
string='Update Child Objects'
button_update_from_github(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/interface-git |
| GIT | |
| GIT | https://github.com/OCA/interface-git.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/interface-git/tree/10.0/github_connector |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Connector |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion, GRAP, Sylvain LE GAL |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion, GRAP, Sylvain LE GAL |
| COMMITTERS | |
| COMMITTERS | Holger Brunn, Sylvain LE GAL, GitHub, Stéphane Bidoul (ACSONE), Roel Adriaans, Moises Lopez - https://www.vauxoo.com/ |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:20:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - web_kanban - web |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
git |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_github_branch_by_serie_graph |
github.repository.branch | graph | New | |
view_github_organization_form |
github.organization | form | New | |
view_github_organization_kanban |
github.organization | kanban | New | |
view_github_organization_search |
github.organization | search | New | |
view_github_organization_tree |
github.organization | tree | New | |
view_github_repository_branch_form |
github.repository.branch | form | New | |
view_github_repository_branch_kanban |
github.repository.branch | kanban | New | |
view_github_repository_branch_search |
github.repository.branch | search | New | |
view_github_repository_branch_tree |
github.repository.branch | tree | New | |
view_github_repository_form |
github.repository | form | New | |
view_github_repository_kanban |
github.repository | kanban | New | |
view_github_repository_search |
github.repository | search | New | |
view_github_repository_tree |
github.repository | tree | New | |
view_github_size_by_serie_graph |
github.repository.branch | graph | New | |
view_github_team_form |
github.team | form | New | |
view_github_team_kanban |
github.team | kanban | New | |
view_github_team_partner_form |
github.team.partner | form | New | |
view_github_team_partner_from_partner_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_from_team_kanban |
github.team.partner | kanban | New | |
view_github_team_partner_search |
github.team.partner | search | New | |
view_github_team_partner_tree |
github.team.partner | tree | New | |
view_github_team_permission_form |
github.team.repository | form | New | |
view_github_team_repository_from_repository_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_from_team_kanban |
github.team.repository | kanban | New | |
view_github_team_repository_search |
github.team.repository | search | New | |
view_github_team_repository_tree |
github.team.repository | tree | New | |
view_github_team_search |
github.team | search | New | |
view_github_team_tree |
github.team | tree | New | |
view_res_partner_form |
res.partner | div | Inherits base.view_partner_form | |
view_res_partner_kanban |
res.partner | Inherits base.res_partner_kanban_view | ||
view_res_partner_search |
res.partner | filter | Inherits base.view_res_partner_filter | |
view_res_partner_tree |
res.partner | Inherits base.view_partner_tree | ||
view_wizard_create_repository_form |
wizard.create.repository | form | New | |
view_wizard_create_team_form |
wizard.create.team | form | New | |
view_wizard_download_analyze_branch_form |
Download and Analyze Source Code | wizard.download.analyze.branch | form | New |
view_wizard_load_github_model_form |
wizard.load.github.model | form | New | |
view_wizard_update_branch_list_form |
wizard.update.branch.list | form | New | |
view_wizard_update_from_github_form |
wizard.update.from.github | form | New |
No HTTP endpoints found for this module.
github_create_date
Datetime
readonly=True
string='Create Date on Github'
github_id_external
Char
index=True
oldname='github_id'
readonly=True
string='Github Id'
github_last_sync_date
Datetime
readonly=True
string='Last Sync Date with Github'
github_login
Char
index=True
readonly=True
string='Github Technical Name'
github_url
Char
readonly=True
string='Github URL'
github_write_date
Datetime
readonly=True
string='Last Write Date on Github'
button_update_from_github_full(self)
button_update_from_github_light(self)
create_from_name(self, name)
create_in_github(self, model_obj)
full_update(self)
get_action(self)
get_base64_image_from_github(self, url)
get_from_id_or_create(self, data, extra_data=None)
get_github_args_for_creation(self)
get_github_connector(self, github_type)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
github_login_field(self)
github_type(self)
update_from_github(self, child_update)
ci_url_pattern
Char
string='CI URL Pattern'
coverage_url_pattern
Char
string='Coverage URL Pattern'
description
Char
readonly=True
string='Description'
email
Char
readonly=True
string='Email'
ignored_repository_names
Text
help='Set here repository names you want to ignore. One repository per line. If set, the repositories will be created, but branches synchronization and source code download will be disabled. Exemple:\nodoo-community.org\nOCB\nOpenUpgrade\n'
string='Ignored Repositories'
image
Binary
readonly=True
string='Image'
location
Char
readonly=True
string='Location'
member_ids
Many2many → res.partner
column1='organization_id'
column2='partner_id'
comodel_name='res.partner'
readonly=True
relation='github_organization_partner_rel'
string='Members'
member_qty
Integer
compute='_compute_member_qty'
store=True
string='Number of Members'
name
Char
readonly=True
required=True
string='Organization Name'
organization_serie_ids
One2many → github.organization.serie
comodel_name='github.organization.serie'
inverse_name='organization_id'
string='Organization Series'
organization_serie_qty
Integer
compute='_compute_organization_serie_qty'
store=True
string='Number of Series'
repository_ids
One2many → github.repository
comodel_name='github.repository'
inverse_name='organization_id'
ondelete='cascade'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
team_ids
One2many → github.team
comodel_name='github.team'
inverse_name='organization_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website_url
Char
readonly=True
string='Website URL'
button_sync_member(self)
button_sync_repository(self)
button_sync_team(self)
cron_update_organization_team(self)
full_update(self)
get_odoo_data_from_github(self, data)
name
Char
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
ondelete='cascade'
required=True
string='Organization'
sequence
Integer
required=True
string='Sequence'
No public methods.
color
Integer
compute='_compute_ignore'
multi='ignore'
string='Color Index'
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
is_ignored
Boolean
compute='_compute_ignore'
help="If checked, the branches will not be synchronized, and the code source so will not be downloaded and analyzed. To ignore a repository, go to it organization and fill the file 'Ignored Repositories'."
multi='ignore'
string='Is Ignored'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
repository_branch_ids
One2many → github.repository.branch
comodel_name='github.repository.branch'
inverse_name='repository_id'
readonly=True
string='Branches'
repository_branch_qty
Integer
compute='_compute_repository_branch_qty'
store=True
string='Number of Branches'
team_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='repository_id'
readonly=True
string='Teams'
team_qty
Integer
compute='_compute_team_qty'
store=True
string='Number of Teams'
website
Char
readonly=True
string='Website'
button_sync_branch(self)
cron_update_branch_list(self)
full_update(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
ci_url
Char
compute='_compute_ci'
store=True
string='CI URL'
complete_name
Char
compute='_compute_complete_name'
store=True
string='Complete Name'
coverage_url
Char
compute='_compute_coverage'
store=True
string='Coverage URL'
github_url
Char
compute='_compute_github_url'
store=True
string='Github URL'
last_analyze_date
Datetime
string='Last Analyze Date'
last_download_date
Datetime
string='Last Download Date'
local_path
Char
compute='_compute_local_path'
string='Local Path'
mb_size
Float
compute='_compute_mb_size'
store=True
string='Size (Megabyte)'
name
Char
index=True
readonly=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
readonly=True
related='repository_id.organization_id'
store=True
string='Organization'
organization_serie_id
Many2one → github.organization.serie
comodel_name='github.organization.serie'
compute='_compute_organization_serie_id'
store=True
string='Organization Serie'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
sequence_serie
Integer
related='organization_serie_id.sequence'
store=True
string='Sequence Serie'
size
Integer
readonly=True
string='Size (Byte) '
state
Selection
default='to_download'
selection=_SELECTION_STATE
string='State'
analyze_code_one(self, branch)
button_analyze_code(self)
button_download_code(self)
create_or_update_from_name(self, repository_id, name)
cron_analyze_all(self)
cron_download_all(self)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
description
Char
readonly=True
string='Description'
github_url
Char
compute='_compute_github_url'
readonly=True
string='Github URL'
name
Char
index=True
readonly=True
required=True
string='Name'
organization_id
Many2one → github.organization
comodel_name='github.organization'
index=True
ondelete='cascade'
readonly=True
required=True
string='Organization'
parent_id
Many2one → github.team
comodel_name='github.team'
readonly=True
string='Parent Team'
partner_ids
One2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='team_id'
readonly=True
string='Members'
partner_qty
Integer
compute='_compute_partner_qty'
store=True
string='Number of Members'
privacy
Selection
default='secret'
help='The level of privacy this team should have. Can be one of:\n* secret - only visible to organization owners and members of this team.\n* closed - visible to all members of this organization.'
readonly=True
selection=_PRIVACY_SELECTION
string='Privacy'
repository_ids
One2many → github.team.repository
comodel_name='github.team.repository'
inverse_name='team_id'
readonly=True
string='Repositories'
repository_qty
Integer
compute='_compute_repository_qty'
store=True
string='Number of Repositories'
button_sync_member(self)
button_sync_repository(self)
full_update(self)
get_github_args_for_creation(self)
get_github_data_from_odoo(self)
get_odoo_data_from_github(self, data)
image_small
Binary
readonly=True
related='partner_id.image_small'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
ondelete='cascade'
readonly=True
required=True
string='Member'
role
Selection
readonly=True
required=True
selection=_ROLE_SELECTION
string='Role'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
permission
Selection
readonly=True
required=True
selection=_PERMISSION_SELECTION
string='Permission'
repository_id
Many2one → github.repository
comodel_name='github.repository'
index=True
ondelete='cascade'
readonly=True
required=True
string='Repository'
team_id
Many2one → github.team
comodel_name='github.team'
index=True
ondelete='cascade'
readonly=True
required=True
string='Team'
No public methods.
No new fields.
Public methods (2)add_update_from_github_action(self, model, res_id=False)
get_actions(self, action_slot, model, res_id=False)
github_team_ids
Many2many → github.team.partner
comodel_name='github.team.partner'
inverse_name='partner_id'
readonly=True
string='Teams'
github_team_qty
Integer
compute='_compute_github_team_qty'
store=True
string='Number of Teams'
is_bot_account
Boolean
help='Check this box if thisaccount is a bot or similar.'
string='Is Bot Github Account'
organization_ids
Many2many → github.organization
column1='partner_id'
column2='organization_id'
comodel_name='github.organization'
readonly=True
relation='github_organization_partner_rel'
string='Organizations'
organization_qty
Integer
compute='_compute_organization_qty'
store=True
string='Number of Organizations'
get_odoo_data_from_github(self, data)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
website
Char
readonly=False
button_create_in_github(self)
get_github_data_from_odoo(self)
description
Char
readonly=False
name
Char
readonly=False
organization_id
Many2one
readonly=False
privacy
Selection
readonly=False
wizard_partner_ids
Many2many → res.partner
comodel_name='res.partner'
domain="[('github_login', '!=', False)]"
string='Members'
wizard_repository_ids
Many2many → github.repository
comodel_name='github.repository'
string='Repositories'
button_create_in_github(self)
get_github_data_from_odoo(self)
analyze_source_code
Boolean
default=True
string='Analyze Source Code'
download_source_code
Boolean
default=True
string='Download Source Code'
apply(self)
child_update
Boolean
default=False
string='Update Child Objects'
github_type
Selection
default='organization'
required=True
selection=_GITHUB_TYPE
string='Github Type Name'
name
Char
required=True
string='Github Name'
button_create_from_github(self)
No new fields.
Public methods (1)button_update_branch_list(self)
child_update
Boolean
default=False
string='Update Child Objects'
button_update_from_github(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/interface-git |
| PULL REQUEST | |
| PULL REQUEST | [MIG] github_connector & github_connector_odoo: Migration to 19.0 (#141) |