From 1e8e059734df7c61a748514014bb968a666765f4 Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Thu, 24 Nov 2022 15:14:43 +0100 Subject: [PATCH] [FIX] fix codeowner --- runbot/models/build_config.py | 3 ++- runbot/models/build_config_codeowner.py | 10 ++++++---- runbot/views/branch_views.xml | 1 + runbot/views/config_views.xml | 7 +++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/runbot/models/build_config.py b/runbot/models/build_config.py index 775e2a08..1f639397 100644 --- a/runbot/models/build_config.py +++ b/runbot/models/build_config.py @@ -138,6 +138,7 @@ class ConfigStep(models.Model): # general info name = fields.Char('Step name', required=True, tracking=True, help="Unique name for step please use trigram as postfix for custom step_ids") domain_filter = fields.Char('Domain filter', tracking=True) + job_type = fields.Selection(TYPES, default='install_odoo', required=True, tracking=True, ondelete={t[0]: 'cascade' for t in [TYPES]}) protected = fields.Boolean('Protected', default=False, tracking=True) default_sequence = fields.Integer('Sequence', default=100, tracking=True) # or run after? # or in many2many rel? @@ -244,7 +245,7 @@ class ConfigStep(models.Model): return super(ConfigStep, self).write(values) def unlink(self): - if self.protected: + if any(record.protected for record in self): raise UserError('Protected step') super(ConfigStep, self).unlink() diff --git a/runbot/models/build_config_codeowner.py b/runbot/models/build_config_codeowner.py index a3dd8c5f..735d42c2 100644 --- a/runbot/models/build_config_codeowner.py +++ b/runbot/models/build_config_codeowner.py @@ -25,7 +25,7 @@ class ConfigStep(models.Model): return pr_by_commit def _get_module(self, repo, file): - for addons_path in repo.addons_paths.split(','): + for addons_path in (repo.addons_paths or '').split(','): base_path = f'{repo.name}/{addons_path}' if file.startswith(base_path): return file.replace(base_path, '').strip('/').split('/')[0] @@ -110,7 +110,6 @@ class ConfigStep(models.Model): codeowners = build.env['runbot.codeowner'].search([('project_id', '=', bundle.project_id.id)]) regexes = self._codeowners_regexes(codeowners, build.params_id.version_id) modified_files = self._modified_files(build, pr_by_commit.keys()) - for commit_link, files in modified_files.items(): build._log('','Checking %s codeowner regexed on %s files' % (len(regexes), len(files))) @@ -118,8 +117,11 @@ class ConfigStep(models.Model): reviewer_per_file = self._reviewer_per_file(files, regexes, ownerships, commit_link.commit_id.repo_id) for file, file_reviewers in reviewer_per_file.items(): href = 'https://%s/blob/%s/%s' % (commit_link.branch_id.remote_id.base_url, commit_link.commit_id.name, file.split('/', 1)[-1]) - build._log('', 'Adding %s to reviewers for file [%s](%s)' % (', '.join(sorted(file_reviewers)), file, href), log_type='markdown') - reviewers |= file_reviewers + if file_reviewers: + build._log('', 'Adding %s to reviewers for file [%s](%s)' % (', '.join(sorted(file_reviewers)), file, href), log_type='markdown') + reviewers |= file_reviewers + else: + build._log('', 'No reviewer for file [%s](%s)' % (file, href), log_type='markdown') if reviewers: pr = pr_by_commit[commit_link] diff --git a/runbot/views/branch_views.xml b/runbot/views/branch_views.xml index 6031d793..dcecc575 100644 --- a/runbot/views/branch_views.xml +++ b/runbot/views/branch_views.xml @@ -31,6 +31,7 @@ runbot.branch + diff --git a/runbot/views/config_views.xml b/runbot/views/config_views.xml index 9deb9ddf..f470fdb4 100644 --- a/runbot/views/config_views.xml +++ b/runbot/views/config_views.xml @@ -117,6 +117,13 @@ + + + + + + +