mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 23:45:44 +07:00
[FIX] fix codeowner
This commit is contained in:
parent
ff41311cb5
commit
1e8e059734
@ -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()
|
||||
|
||||
|
@ -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]
|
||||
|
@ -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>
|
||||
|
@ -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"/>
|
||||
|
Loading…
Reference in New Issue
Block a user