import time import json from github import Github from dateutil.parser import parse from datetime import date from django.http import HttpResponse from gci.config import get_api_key from community.git import get_org_name def run(issues): issues_number_list = [] for j in issues: issue_no = j.number events = j.get_events() myevent_list = [] data = [] for i in events: myevent_list.append(str(i.event)) for i in events: if i.commit_id is not None: data.append(str(i.created_at)) for i, myevents in reversed(list(enumerate(myevent_list))): if myevents == 'unassigned': break elif myevents == 'assigned': a = events[i].created_at c = (date.fromtimestamp(time.time()) - a.date()).days if c >= 60: # for checking assigned duration mydata = list(reversed(data)) if len(mydata) != 0: commit1 = parse(mydata[0]) calculated_days = (date.fromtimestamp( time.time()) - commit1.date()).days if calculated_days >= 60: # for checking last commit update issues_number_list.append(issue_no) else: issues_number_list.append(issue_no) break return issues_number_list def inactive_issues_json(request): try: GH_TOKEN = get_api_key('GH') except Exception: return HttpResponse('[]') g1 = Github(GH_TOKEN) org_name = get_org_name() org = g1.get_organization(org_name) repo = org.get_repo(org_name) issues = repo.get_issues() issues_list = [] for myissue in issues: labels = [] for mylabel in myissue.labels: labels.append(mylabel.name) if 'status/blocked' not in labels: if myissue.state == 'open' and myissue.pull_request is None: issues_list.append(myissue) final_list = run(issues_list) return HttpResponse(json.dumps(final_list))