]> git.ipfire.org Git - pbs.git/commitdiff
repos: Create a key for each repository
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2022 14:41:15 +0000 (14:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 6 Oct 2022 14:41:15 +0000 (14:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/repository.py

index c98218fc4fbfe5da9dc151c22ac6f2dfbe54066f..dbbcaa6d835352b122e72cdc5d7c5187e3b26196 100644 (file)
@@ -60,6 +60,15 @@ class Repositories(base.Object):
                # Generate a slug
                slug = self._make_slug(name, owner=owner)
 
+               # Create a key for this repository
+               if owner:
+                       key = await owner.key.generate_subkey(name)
+
+               # If this is not a personal repository,
+               # we generate a subkey for the distribution key
+               else:
+                       key = await distro.key.generate_subkey(name)
+
                repo = self._get_repository("""
                        INSERT INTO
                                repositories
@@ -67,25 +76,25 @@ class Repositories(base.Object):
                                distro_id,
                                owner_id,
                                name,
-                               slug
+                               slug,
+                               key_id
                        )
-                       VALUES
-                       (
-                               %s,
-                               %s,
-                               %s,
-                               %s
+                       VALUES (
+                               %s, %s, %s, %s, %s
                        )
                        RETURNING *""",
                        distro,
                        owner,
                        name,
                        slug,
+                       key,
                )
 
                # Populate cache
                if owner:
                        repo.owner = owner
+               if key:
+                       repo.key = key
 
                return repo