[sysadmin-bin] inactive-gitlab-users: Make timedelta configurable



commit 2d21eb587c4505ad270a4fbec14a7261dcca8692
Author: Bartłomiej Piotrowski <bpiotrowski gnome org>
Date:   Mon Jul 22 14:43:54 2019 +0200

    inactive-gitlab-users: Make timedelta configurable

 gitlab/inactive-gitlab-users.py | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/gitlab/inactive-gitlab-users.py b/gitlab/inactive-gitlab-users.py
old mode 100644
new mode 100755
index 088db38..e9986a6
--- a/gitlab/inactive-gitlab-users.py
+++ b/gitlab/inactive-gitlab-users.py
@@ -39,7 +39,7 @@ def check_if_spam(url):
     return surbl
 
 
-def get_inactive_users(gl):
+def get_inactive_users(gl, timedelta_unit, timedelta_value):
     trusted_domains = [
         "canonical.com",
         "debian.org",
@@ -69,6 +69,9 @@ def get_inactive_users(gl):
     users = gl.users.list(as_list=False, order_by="created_at", sort="asc")
     results = []
 
+    relativedelta_kwargs = {timedelta_unit: int(timedelta_value)}
+    timedelta = datetime.datetime.now(pytz.utc) - relativedelta(**relativedelta_kwargs)
+
     for user in users:
         attrs = user.attributes
         userdata = {field: str(attrs[field]) for field in fields}
@@ -88,8 +91,7 @@ def get_inactive_users(gl):
             user.customattributes.set("trusted", "true")
             continue
 
-        # Skip user if registered this month
-        timedelta = datetime.datetime.now(pytz.utc) - relativedelta(months=1)
+        # Skip user if registered within timedelta
         if dateparser(attrs["created_at"]) > timedelta:
             continue
 
@@ -189,7 +191,6 @@ if __name__ == "__main__":
     parser = argparse.ArgumentParser()
     subparsers = parser.add_subparsers(dest="command")
 
-    inactive = subparsers.add_parser("get-inactive", help="get inactive users")
     trust_groups = subparsers.add_parser(
         "trust-groups", help="mark users which are member of any group as trusted"
     )
@@ -197,6 +198,9 @@ if __name__ == "__main__":
         "trust-2fa", help="mark users which have two factor authenticated enabled as trusted"
     )
 
+    inactive = subparsers.add_parser("get-inactive", help="get inactive users")
+    inactive.add_argument("-t", "--timedelta", default="months:1", help="grace period for users to become 
active (unit:value)")
+
     trust = subparsers.add_parser("trust", help="mark users as trusted")
     trust.add_argument("user_id", nargs="+", help="user IDs to mark as trusted")
 
@@ -215,7 +219,8 @@ if __name__ == "__main__":
     args = parser.parse_args()
 
     if args.command == "get-inactive":
-        inactive = get_inactive_users(gl)
+        unit, value = args.timedelta.split(":")
+        inactive = get_inactive_users(gl, unit, value)
         print(json.dumps(inactive, indent=4, separators=(",", ": ")))
     elif args.command == "trust":
         for id in args.user_id:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]