datatracker/ietf/doc/management/commands/find_github_backup_info.py
2020-03-22 19:27:28 +00:00

31 lines
1.4 KiB
Python

# Copyright The IETF Trust 2020, All Rights Reserved
import json
from django.core.management.base import BaseCommand
from ietf.extresource.models import ExtResource
from ietf.doc.models import DocExtResource
from ietf.group.models import GroupExtResource
from ietf.person.models import PersonExtResource
class Command(BaseCommand):
help = ('Locate information about gihub repositories to backup')
def handle(self, *args, **options):
info_dict = {}
for repo in ExtResource.objects.filter(name__slug='github_repo'):
if repo not in info_dict:
info_dict[repo.value] = []
for username in DocExtResource.objects.filter(extresource__name__slug='github_username', doc__name__in=repo.docextresource_set.values_list('doc__name',flat=True).distinct()):
info_dict[repo.value].push(username.value)
for username in GroupExtResource.objects.filter(extresource__name__slug='github_username', group__acronym__in=repo.groupextresource_set.values_list('group__acronym',flat=True).distinct()):
info_dict[repo.value].push(username.value)
for username in PersonExtResource.objects.filter(extresource__name__slug='github_username', person_id__in=repo.personextresource_set.values_list('person__id',flat=True).distinct()):
info_dict[repo.value].push(username.value)
print (json.dumps(info_dict))