mirror of
https://github.com/odoo/runbot.git
synced 2025-03-17 00:15:47 +07:00

Currently webhook secrets are configured per *project* which is an issue both because different repositories may have different administrators and thus creates safety concerns, and because multiple repositories can feed into different projects (e.g. on mergebot, odoo-dev/odoo is both an ancillary repository to the main RD project, and the main repository to the minor / legacy master-wowl project). This means it can be necessary to have multiple projects share the same secret as well, this then mandates the secret for more repositories per (1). This is a pain in the ass, so just detach secrets from projects and link them *only* to repositories, it's cleaner and easier to manage and set up progressively. This requires a lot of changes to the tests, as they all need to correctly configure the signaling. For `runbot_merge` there was *some* setup sharing already via the module-level `repo` fixtures`, those were merged into a conftest-level fixture which could handle the signaling setup. A few tests which unnecessarily set up repositories ad-hoc were also moved to the fixture. But for most of the ad-hoc setup in `runbot_merge`, as well as `forwardport` where it's all ad-hoc, events sources setup was just appended as is. This should probably be cleaned up at one point, with the various requirements collected and organised into a small set of fixtures doing the job more uniformly. Fixes #887
13 lines
383 B
Python
13 lines
383 B
Python
def migrate(cr, version):
|
|
cr.execute("""
|
|
CREATE TABLE runbot_merge_events_sources (
|
|
id serial primary key,
|
|
repository varchar not null,
|
|
secret varchar
|
|
);
|
|
INSERT INTO runbot_merge_events_sources (repository, secret)
|
|
SELECT r.name, p.secret
|
|
FROM runbot_merge_repository r
|
|
JOIN runbot_merge_project p ON p.id = r.project_id;
|
|
""")
|