From d2da5894f1680099fe8f3b43db291b220800d5e8 Mon Sep 17 00:00:00 2001
From: Rasmus Kaj <rasmus@krats.se>
Date: Fri, 21 Feb 2025 00:16:59 +0100
Subject: [PATCH] Initial

---
 poll.py | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100755 poll.py

diff --git a/poll.py b/poll.py
new file mode 100755
index 0000000..127c5c8
--- /dev/null
+++ b/poll.py
@@ -0,0 +1,37 @@
+#! /bin/env python3
+from requests import get, post, patch
+from os import getenv
+import logging
+
+logging.basicConfig(level=logging.INFO)
+
+fingerpass = getenv('FINGER_PW')
+
+gitauth = (getenv('GIT_USER', getenv('GIT_PW'))
+
+fingerurl = f'https://finger.stacken.kth.se/services/git/all'
+
+response = get(fingerurl, auth=('git', fingerpass))
+response.raise_for_status()
+
+for (user, passwd) in response.json().items():
+     response = post('https://git.stacken.kth.se/api/v1/admin/users',
+          data={
+              "username": user,
+              "email": f"{user}@stacken.kth.se",
+              "password": passwd,
+          },
+          auth = ('fingerpoller', gitpass)
+          )
+     if response.status_code == 422:
+         patch(f'https://git.stacken.kth.se/api/v1/admin/users/{user}',
+               data = { "password": passwd },
+               auth = gitauth
+               ).raise_for_status()
+         print(f"Updated password for {user}")
+     else:
+         response.raise_for_status()
+         print(f"Created user {user}")
+
+
+