From 15a3cf3ace7a1abd4577cd40f2450774dbeb92d8 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Nov 30 2017 17:03:29 +0000 Subject: Add ACL for mass rebuilding Signed-off-by: Patrick Uiterwijk --- diff --git a/dist_git_auth.py b/dist_git_auth.py index ab44b49..71d9607 100644 --- a/dist_git_auth.py +++ b/dist_git_auth.py @@ -98,12 +98,18 @@ class DistGitoliteAuth(Gitolite3Auth): for repos in ['repos', 'requests/']: if repos == 'repos': + config.append('repo %s' % project.fullname) + + # Add ACL for mass rebuilds, even in PR-only + config.append(' RW = releng') + # Do not grant access to project enforcing the PR model if pr_only or (global_pr_only and not project.is_fork): continue repos = '' + else: + config.append('repo %s%s' % (repos, project.fullname)) - config.append('repo %s%s' % (repos, project.fullname)) if repos not in ['tickets/', 'requests/']: config.append(' R = @all') @@ -165,6 +171,7 @@ class DistGitoliteAuth(Gitolite3Auth): (access, werkzeug.secure_filename(project.fullname), deploykey.id)) + config.append('') return config diff --git a/dist_git_auth_tests.py b/dist_git_auth_tests.py index 157d424..a270a0c 100644 --- a/dist_git_auth_tests.py +++ b/dist_git_auth_tests.py @@ -16,6 +16,7 @@ import dist_git_auth expected = """ repo test + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -33,6 +34,7 @@ repo requests/test RWC = pingou repo test2 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -50,6 +52,7 @@ repo requests/test2 RWC = pingou repo somenamespace/test3 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -171,6 +174,7 @@ class DistGitoliteAuthTestCase(tests.Modeltests): contents = f.read() expected = '''repo test2 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -188,6 +192,7 @@ repo requests/test2 RWC = pingou repo somenamespace/test3 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -205,6 +210,7 @@ repo requests/somenamespace/test3 RWC = pingou repo test + RW = releng R = @all RWC master = foo pingou RWC master = @provenpackager @@ -283,6 +289,7 @@ repo requests/test # end of groups repo test2 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -300,6 +307,7 @@ repo requests/test2 RWC = pingou repo somenamespace/test3 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -317,6 +325,7 @@ repo requests/somenamespace/test3 RWC = pingou repo test + RW = releng R = @all RWC master = foo RWC master = @test_grp @provenpackager @@ -371,6 +380,7 @@ repo requests/test contents = f.read() expected = '''repo test + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -388,6 +398,7 @@ repo requests/test RWC = pingou repo test2 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -405,6 +416,7 @@ repo requests/test2 RWC = pingou repo somenamespace/test3 + RW = releng R = @all RWC master = pingou RWC master = @provenpackager @@ -422,6 +434,7 @@ repo requests/somenamespace/test3 RWC = pingou repo forks/pingou/test + RW = releng R = @all RW+C = pingou @@ -460,6 +473,7 @@ repo requests/forks/pingou/test with open(self.configfile, 'r') as f: contents = f.read() expected = """repo rpms/firefox + RW = releng R = @all RWC master = pingou RWC f9000 = pingou @@ -505,6 +519,7 @@ repo requests/rpms/firefox with open(self.configfile, 'r') as f: contents = f.read() expected = """repo firefox + RW = releng R = @all RWC master = pingou RWC master = @provenpackager