[FIX] fix codeowner

This commit is contained in:
Xavier-Do 2022-11-24 15:14:43 +01:00 committed by Christophe Monniez
parent ff41311cb5
commit 1e8e059734
4 changed files with 16 additions and 5 deletions

View File

@ -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()

View File

@ -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]

View File

@ -31,6 +31,7 @@
<field name="model">runbot.branch</field>
<field name="arch" type="xml">
<tree string="Branches">
<field name="create_date"/>
<field name="remote_id"/>
<field name="name"/>
</tree>

View File

@ -117,6 +117,13 @@
<group string="Codeowner settings" attrs="{'invisible': [('job_type', 'not in', ('codeowner', 'python'))]}">
<field name="fallback_reviewer"/>
</group>
<group>
<field name="step_order_ids" groups="base.group_no_one" readonly="1">
<tree>
<field name="config_id" widget="Many2one" options="{'no_edit': 1}"/>
</tree>
</field>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>