~edwargix/git.sr.ht

f1312c7c3bc376fde865dcf151b40007cebc5af7 — наб 4 years ago eb05fa5
Actually remove autocreated repositories periodically
1 files changed, 10 insertions(+), 3 deletions(-)

M gitsrht-periodic
M gitsrht-periodic => gitsrht-periodic +10 -3
@@ 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()