@@ 1,17 1,24 @@
#!/usr/bin/env python3
from srht.config import cfg
from srht.database import DbSession
-db = DbSession(cfg("git.sr.ht", "connection-string"))
+from gitsrht.repos import GitRepoApi
from gitsrht.types import Repository, RepoVisibility
-db.init()
from datetime import datetime, timedelta
+db = DbSession(cfg("git.sr.ht", "connection-string"))
+db.init()
+repo_api = GitRepoApi()
+
def cleanup_autocreated():
due = datetime.utcnow() - timedelta(minutes=20)
repos = (Repository.query
.filter(Repository.visibility == RepoVisibility.autocreated)
.filter(Repository.created < due)).all()
- (db.session.delete(r) for r in repos)
+ for r in repos:
+ # Use session.delete()+do_delete_repo() instead of d_r(),
+ # which commits immediately
+ repo_api.do_delete_repo(r)
+ db.session.delete(r)
db.session.commit()
cleanup_autocreated()