[sysadmin-bin] inactive-gitlab-users: Make timedelta configurable
- From: Bartłomiej Piotrowski <bpiotrowski src gnome org>
- To: gnome-sysadmin gnome org,commits-list gnome org
- Subject: [sysadmin-bin] inactive-gitlab-users: Make timedelta configurable
- Date: Mon, 22 Jul 2019 12:46:02 +0000 (UTC)
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]