[aur-dev] [PATCH 1/2] Emit warning when TUs use their supowerpowers to overwrite a pkgbase

Eli Schwartz eschwartz at archlinux.org
Fri Jul 21 04:13:39 UTC 2017


AUR_PRIVILEGED allows people with privileged AUR accounts to evade the
block on non-fast-forward commits. While valid in this case, we should
still provide a message saying that this happened, since in at least one
case ( https://aur.archlinux.org/packages/rtmidi/ ) a TU did this
without realizing there was an existing package.

Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
---

Similar to the warn_or_die function, except that doesn't take
alternative messages and there is no nice universal message here.

I think I prefer something that allows the TU to set whether they really
mean to perform a privileged TU action, since accidentally overwriting
something is kind of bad either way.
The follow-up patch implements this -- instead? alongside? Either patch
stands on its own, though I think I'd like to see both.


 aurweb/git/update.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/aurweb/git/update.py b/aurweb/git/update.py
index c9a98d0..3b9ff97 100755
--- a/aurweb/git/update.py
+++ b/aurweb/git/update.py
@@ -258,11 +258,14 @@ def main():
     conn = aurweb.db.Connection()
 
     # Detect and deny non-fast-forwards.
-    if sha1_old != "0" * 40 and not privileged:
+    if sha1_old != "0" * 40:
         walker = repo.walk(sha1_old, pygit2.GIT_SORT_TOPOLOGICAL)
         walker.hide(sha1_new)
         if next(walker, None) is not None:
-            die("denying non-fast-forward (you should pull first)")
+            if privileged:
+                warn("non-fast-forward push (are you absolutely sure you mean this?)")
+            else:
+                die("denying non-fast-forward (you should pull first)")
 
     # Prepare the walker that validates new commits.
     walker = repo.walk(sha1_new, pygit2.GIT_SORT_TOPOLOGICAL)
-- 
2.13.3


More information about the aur-dev mailing list