Compare commits

..

2 commits

Author SHA1 Message Date
30e7d74bab Only apply recent changes.
New users and password changes should be applied, but updaging
all users all the time would waste processing.
2025-02-23 21:37:33 +01:00
e2edf809cb Some actual info in readme. 2025-02-23 21:20:05 +01:00
2 changed files with 12 additions and 2 deletions

View file

@ -1,2 +1,5 @@
# git-finger-poller # git-finger-poller
This things polls https://finger.stacken.kth.se/ for Stacken members
wanting an account on the git (forgejo) server and uses the forgejo
api to create users / update passwords as needed.

11
poll.py
View file

@ -1,4 +1,5 @@
#! /bin/env python3 #! /bin/env python3
from datetime import datetime, timezone, timedelta
from requests import get, post, patch from requests import get, post, patch
from os import getenv from os import getenv
import logging import logging
@ -9,9 +10,15 @@ fingerpass = getenv('FINGER_PW')
gitauth = (getenv('GIT_USER'), getenv('GIT_PW')) gitauth = (getenv('GIT_USER'), getenv('GIT_PW'))
fingerurl = f'https://finger.stacken.kth.se/services/git/all'
response = get(fingerurl, auth=('git', fingerpass)) fingerurl = f'https://finger.stacken.kth.se/services/git/all'
query = {}
if True:
since = datetime.now(timezone.utc) - timedelta(minutes=30)
query['since'] = since.strftime("%Y-%m-%dT%T%Z")
response = get(fingerurl, params=query, auth=('git', fingerpass))
response.raise_for_status() response.raise_for_status()
for (user, passwd) in response.json().items(): for (user, passwd) in response.json().items():