#! /usr/bin/env python3 import collections import configparser import datetime import psycopg2 config = configparser.ConfigParser() config.read('/etc/gitea/eo-custom.ini') db_connect_string = config.get('settings', 'db') conn = psycopg2.connect(db_connect_string) cursor = conn.cursor() cursor.execute( """select "user".full_name, "user".name, repository.name, issue.index, review.created_unix from review, "user", issue, repository, pull_request where "user".id = reviewer_id and review.type = 4 and review.issue_id = issue.id and issue.repo_id = repository.id and issue.index = pull_request.index and issue.is_closed = false and pull_request.issue_id = issue.id and pull_request.has_merged = false and review.id in (select max(id) from review where issue_id = issue.id and review.type in (1, 3, 4) and reviewer_id = reviewer_id and dismissed = false) order by "user".full_name, repository.name, review.created_unix """ ) print( ''' Relectures en attente - Gitea: Git with a cup of tea

Relectures demandées à :

''' ) authors = collections.defaultdict(list) for fullname, username, repository, pr, created_unix in cursor.fetchall(): authors[username].append((fullname, username, repository, pr, created_unix)) for author_key, reviews in sorted(authors.items()): fullname, username, repository, pr, created_unix = reviews[0] print(f'''

{fullname}

''') print('
    ') for review in reviews: fullname, username, repository, pr, created_unix = review print( f'''
  • {repository} #{pr} ({datetime.datetime.fromtimestamp(created_unix)})
  • ''' ) print('
') print('''
''')