From 89fea4c8d5e9c5871624985f7dbfce4e01728915 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 3 Sep 2021 14:15:56 -0700 Subject: [PATCH 1/7] initial working version of date metrics --- .gitignore | 4 +++- github_metrics.py | 59 +++++++++++++++++++++++++++++++++++++++++++---- requirements.txt | 2 ++ 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 48c488d..fee3ba4 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,6 @@ metrics-env/ metrics-env/** output/** update_gsheet.py -*.csv \ No newline at end of file +*.csv + +.env \ No newline at end of file diff --git a/github_metrics.py b/github_metrics.py index df7442b..b213e3f 100644 --- a/github_metrics.py +++ b/github_metrics.py @@ -154,6 +154,54 @@ def export_community_engagement(directory, organization, authToken): [todaystr, organization, repo.name, repo.forks_count, repo.stargazers_count, countcommit, countcollab]) +def export_repo_metrics(directory,organization, authToken): + g = Github(authToken) + dt_today = datetime.datetime.now() + today = dt_today.date() + today = str(today).replace("-", "") + + totalrepos = 0 + allorgs = g.get_user().get_orgs() + + with open(directory + "/github_repo_metrics_" + organization + "_" + today+ ".csv", 'w', encoding='utf-8') as csvfile: + csvwriter = csv.writer(csvfile, delimiter=',') + csvwriter.writerow( + ["date", "org", "repo", "open prs", "pr avg age", "pr max age", "open issues", "issue avg age", "issue max age"]) + for orgs in allorgs: + if orgs.login == organization: + for repo in orgs.get_repos(): + if not repo.archived: + # print(f'{repo.default_branch}') + pr_open_count = 0 + pr_max_open = 0 + pr_total_open = 0 + pulls = repo.get_pulls(state='open', sort='created', base=repo.default_branch) + for pr in pulls: + pr_open_count += 1 + + # print(f'{pr.created_at}') + days_open = (dt_today - pr.created_at).days + pr_total_open += days_open + if days_open > pr_max_open: + pr_max_open = days_open + pr_avg_open = pr_total_open/pr_open_count if pr_open_count > 0 else 0 + + i_open_count = 0 + i_max_open = 0 + i_total_open = 0 + for iss in repo.get_issues(state='open'): + i_open_count += 1 + + # print(f'{pr.created_at}') + days_open = (dt_today - iss.created_at).days + i_total_open += days_open + if days_open > i_max_open: + i_max_open = days_open + i_avg_open = i_total_open/i_open_count if i_open_count > 0 else 0 + + csvwriter.writerow( + [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, i_open_count, i_avg_open, i_max_open]) + def list_unique_collaborators(directory, organization, authToken): g = Github(authToken) with open(directory + "/github_unique_collaborators_" + organization + ".csv", "w", encoding="utf-8") as csvfile: @@ -200,11 +248,12 @@ def main(): try: print("Valid token. Starting process. \n") - list_org_members(organization, authToken) - print("") - export_code_frequency(directory, organization, authToken) - print("") - export_community_engagement(directory, organization, authToken) + export_repo_metrics(directory, organization, authToken) + # list_org_members(organization, authToken) + # print("") + # export_code_frequency(directory, organization, authToken) + # print("") + # export_community_engagement(directory, organization, authToken) except Exception as e: print(e) diff --git a/requirements.txt b/requirements.txt index cfdc04d..9b77b00 100644 --- a/requirements.txt +++ b/requirements.txt @@ -51,6 +51,7 @@ oauthlib==3.1.0 opt-einsum==3.3.0 packaging==20.9 pandocfilters==1.4.3 +pandas==1.3.1 parso==0.8.2 pexpect==4.8.0 pickleshare==0.7.5 @@ -63,6 +64,7 @@ pyasn1==0.4.8 pyasn1-modules==0.2.8 pycparser==2.20 Pygments==2.8.1 +PyGithub==1.55 pyparsing==2.4.7 pyrsistent==0.17.3 python-dateutil==2.8.1 From 0665f2d5d57426a08ce07d12ba15423877cdb9d3 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 7 Sep 2021 09:45:07 -0700 Subject: [PATCH 2/7] added closed prs and avg time to close --- github_metrics.py | 54 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/github_metrics.py b/github_metrics.py index b213e3f..4bad2a5 100644 --- a/github_metrics.py +++ b/github_metrics.py @@ -166,28 +166,52 @@ def export_repo_metrics(directory,organization, authToken): with open(directory + "/github_repo_metrics_" + organization + "_" + today+ ".csv", 'w', encoding='utf-8') as csvfile: csvwriter = csv.writer(csvfile, delimiter=',') csvwriter.writerow( - ["date", "org", "repo", "open prs", "pr avg age", "pr max age", "open issues", "issue avg age", "issue max age"]) + ["date", "org", "repo", "open prs", "pr avg age", "pr max age", "newest pr created", "closed prs", "avg time to close", "open issues", "issue avg age", "issue max age", "newest issue opened"]) for orgs in allorgs: if orgs.login == organization: + print("Gathering repository metrics for", orgs.login) for repo in orgs.get_repos(): if not repo.archived: # print(f'{repo.default_branch}') pr_open_count = 0 pr_max_open = 0 - pr_total_open = 0 - pulls = repo.get_pulls(state='open', sort='created', base=repo.default_branch) + pr_max_date = datetime.datetime.min + pr_open_total_days = 0 + pr_closed_count = 0 + pr_closed_total_days = 0 + pulls = repo.get_pulls(state='all', sort='created') for pr in pulls: - pr_open_count += 1 + if pr.state == 'open': + pr_open_count += 1 - # print(f'{pr.created_at}') - days_open = (dt_today - pr.created_at).days - pr_total_open += days_open - if days_open > pr_max_open: - pr_max_open = days_open - pr_avg_open = pr_total_open/pr_open_count if pr_open_count > 0 else 0 + # print(f'{pr.created_at}') + days_open = (dt_today - pr.created_at).days + pr_open_total_days += days_open + if days_open > pr_max_open: + pr_max_open = days_open + if pr.created_at > pr_max_date: + pr_max_date = pr.created_at + else: + pr_closed_count += 1 + + # print(f'{pr.closed_at}') + # print(f'{pr.merged_at}') + closed = pr.closed_at if pr.closed_at else datetime.datetime.min + merged = pr.merged_at if pr.merged_at else datetime.datetime.min + end_date = max(closed, merged) + days_open = (end_date- pr.created_at).days + pr_closed_total_days += days_open + # if days_open > pr_max_open: + # pr_max_open = days_open + # if pr.created_at > pr_max_date: + # pr_max_date = pr.created_at + + pr_avg_open = pr_open_total_days/pr_open_count if pr_open_count > 0 else 0 + pr_avg_close_time = pr_closed_total_days/pr_closed_count if pr_closed_count > 0 else 0 i_open_count = 0 i_max_open = 0 + i_max_date = datetime.datetime.min i_total_open = 0 for iss in repo.get_issues(state='open'): i_open_count += 1 @@ -197,10 +221,14 @@ def export_repo_metrics(directory,organization, authToken): i_total_open += days_open if days_open > i_max_open: i_max_open = days_open + if iss.created_at > i_max_date: + i_max_date = iss.created_at i_avg_open = i_total_open/i_open_count if i_open_count > 0 else 0 csvwriter.writerow( - [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, i_open_count, i_avg_open, i_max_open]) + [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, pr_max_date.date(), + pr_closed_count, pr_avg_close_time, i_open_count, + i_avg_open, i_max_open, i_max_date.date()]) def list_unique_collaborators(directory, organization, authToken): g = Github(authToken) @@ -248,12 +276,14 @@ def main(): try: print("Valid token. Starting process. \n") - export_repo_metrics(directory, organization, authToken) + # print("") # list_org_members(organization, authToken) # print("") # export_code_frequency(directory, organization, authToken) # print("") # export_community_engagement(directory, organization, authToken) + print("") + export_repo_metrics(directory, organization, authToken) except Exception as e: print(e) From 319b919211f8b9136f06a57213fb927bdf7aad37 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 7 Sep 2021 12:57:30 -0700 Subject: [PATCH 3/7] added percentages in and out of org fror prs and issues --- github_metrics.py | 74 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 14 deletions(-) diff --git a/github_metrics.py b/github_metrics.py index 4bad2a5..769148f 100644 --- a/github_metrics.py +++ b/github_metrics.py @@ -166,10 +166,13 @@ def export_repo_metrics(directory,organization, authToken): with open(directory + "/github_repo_metrics_" + organization + "_" + today+ ".csv", 'w', encoding='utf-8') as csvfile: csvwriter = csv.writer(csvfile, delimiter=',') csvwriter.writerow( - ["date", "org", "repo", "open prs", "pr avg age", "pr max age", "newest pr created", "closed prs", "avg time to close", "open issues", "issue avg age", "issue max age", "newest issue opened"]) + ["date", "org", "repo", "open prs", "pr avg age", "pr max age", "newest pr created", "closed prs", "avg time to close", + "pr \% in org", "pr \% non org", "pr \% bot", + "open issues", "issue avg age", "issue max age", "newest issue opened", "issue \% in org", "issue \% non org", "issue \% bot"]) for orgs in allorgs: if orgs.login == organization: print("Gathering repository metrics for", orgs.login) + members = orgs.get_members() for repo in orgs.get_repos(): if not repo.archived: # print(f'{repo.default_branch}') @@ -179,8 +182,19 @@ def export_repo_metrics(directory,organization, authToken): pr_open_total_days = 0 pr_closed_count = 0 pr_closed_total_days = 0 + pr_in_org = 0 + pr_non_org = 0 + pr_bot = 0 pulls = repo.get_pulls(state='all', sort='created') for pr in pulls: + owner = pr.user + if owner.login and "bot" in owner.login.lower(): + pr_bot += 1 + elif owner in members: + pr_in_org += 1 + else: + pr_non_org += 1 + if pr.state == 'open': pr_open_count += 1 @@ -208,27 +222,59 @@ def export_repo_metrics(directory,organization, authToken): pr_avg_open = pr_open_total_days/pr_open_count if pr_open_count > 0 else 0 pr_avg_close_time = pr_closed_total_days/pr_closed_count if pr_closed_count > 0 else 0 + pr_pct_org = (pr_in_org/(pr_open_count + pr_closed_count)) * 100 if pr_closed_count + pr_open_count > 0 else 0 + pr_pct_non_org = (pr_non_org/(pr_open_count + pr_closed_count)) * 100 if pr_closed_count + pr_open_count > 0 else 0 + pr_pct_bot = (pr_bot/(pr_open_count + pr_closed_count)) * 100 if pr_closed_count + pr_open_count > 0 else 0 i_open_count = 0 i_max_open = 0 i_max_date = datetime.datetime.min - i_total_open = 0 - for iss in repo.get_issues(state='open'): - i_open_count += 1 + i_open_total_days = 0 + i_closed_count = 0 + i_closed_total_days = 0 + i_in_org = 0 + i_non_org = 0 + i_bot = 0 + for iss in repo.get_issues(state='all', sort='created'): + owner = iss.user + if owner.login and "bot" in owner.login.lower(): + i_bot += 1 + elif owner in members: + i_in_org += 1 + else: + i_non_org += 1 + + if iss.state == 'open': + pr_open_count += 1 + i_open_count += 1 + + # print(f'{pr.created_at}') + days_open = (dt_today - iss.created_at).days + i_open_total_days += days_open + if days_open > i_max_open: + i_max_open = days_open + if iss.created_at > i_max_date: + i_max_date = iss.created_at + else: + i_closed_count += 1 + + days_open = (iss.closed_at- iss.created_at).days + i_closed_total_days += days_open + # if days_open > pr_max_open: + # pr_max_open = days_open + # if pr.created_at > pr_max_date: + # pr_max_date = pr.created_at - # print(f'{pr.created_at}') - days_open = (dt_today - iss.created_at).days - i_total_open += days_open - if days_open > i_max_open: - i_max_open = days_open - if iss.created_at > i_max_date: - i_max_date = iss.created_at - i_avg_open = i_total_open/i_open_count if i_open_count > 0 else 0 + i_avg_open = i_open_total_days/i_open_count if i_open_count > 0 else 0 + i_avg_close_time = i_closed_total_days/i_closed_count if i_closed_count > 0 else 0 + i_pct_org = (i_in_org/(i_open_count + i_closed_count)) * 100 if i_closed_count + i_open_count > 0 else 0 + i_pct_non_org = (i_non_org/(i_open_count + i_closed_count)) * 100 if i_closed_count + i_open_count > 0 else 0 + i_pct_bot = (i_bot/(i_open_count + i_closed_count)) * 100 if i_closed_count + i_open_count > 0 else 0 csvwriter.writerow( [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, pr_max_date.date(), - pr_closed_count, pr_avg_close_time, i_open_count, - i_avg_open, i_max_open, i_max_date.date()]) + pr_closed_count, pr_avg_close_time, pr_pct_org, pr_pct_non_org, pr_pct_bot, i_open_count, + i_avg_open, i_max_open, i_max_date.date(), i_pct_org, i_pct_non_org, i_pct_bot]) def list_unique_collaborators(directory, organization, authToken): g = Github(authToken) From 38ee9b63934f28362589b96779e48cb44656fcd3 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 7 Sep 2021 13:31:54 -0700 Subject: [PATCH 4/7] output formatting for readability --- github_metrics.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/github_metrics.py b/github_metrics.py index 769148f..135d7ee 100644 --- a/github_metrics.py +++ b/github_metrics.py @@ -220,11 +220,11 @@ def export_repo_metrics(directory,organization, authToken): # if pr.created_at > pr_max_date: # pr_max_date = pr.created_at - pr_avg_open = pr_open_total_days/pr_open_count if pr_open_count > 0 else 0 - pr_avg_close_time = pr_closed_total_days/pr_closed_count if pr_closed_count > 0 else 0 - pr_pct_org = (pr_in_org/(pr_open_count + pr_closed_count)) * 100 if pr_closed_count + pr_open_count > 0 else 0 - pr_pct_non_org = (pr_non_org/(pr_open_count + pr_closed_count)) * 100 if pr_closed_count + pr_open_count > 0 else 0 - pr_pct_bot = (pr_bot/(pr_open_count + pr_closed_count)) * 100 if pr_closed_count + pr_open_count > 0 else 0 + pr_avg_open = f"{pr_open_total_days/pr_open_count:.2f}" if pr_open_count > 0 else 0 + pr_avg_close_time = f"{pr_closed_total_days/pr_closed_count:.2f}" if pr_closed_count > 0 else 0 + pr_pct_org = f"{(pr_in_org/(pr_open_count + pr_closed_count)) * 100:.2f}" if pr_closed_count + pr_open_count > 0 else 0 + pr_pct_non_org = f"{(pr_non_org/(pr_open_count + pr_closed_count)) * 100:.2f}" if pr_closed_count + pr_open_count > 0 else 0 + pr_pct_bot = f"{(pr_bot/(pr_open_count + pr_closed_count)) * 100:.2f}" if pr_closed_count + pr_open_count > 0 else 0 i_open_count = 0 i_max_open = 0 @@ -265,11 +265,11 @@ def export_repo_metrics(directory,organization, authToken): # if pr.created_at > pr_max_date: # pr_max_date = pr.created_at - i_avg_open = i_open_total_days/i_open_count if i_open_count > 0 else 0 - i_avg_close_time = i_closed_total_days/i_closed_count if i_closed_count > 0 else 0 - i_pct_org = (i_in_org/(i_open_count + i_closed_count)) * 100 if i_closed_count + i_open_count > 0 else 0 - i_pct_non_org = (i_non_org/(i_open_count + i_closed_count)) * 100 if i_closed_count + i_open_count > 0 else 0 - i_pct_bot = (i_bot/(i_open_count + i_closed_count)) * 100 if i_closed_count + i_open_count > 0 else 0 + i_avg_open = f"{i_open_total_days/i_open_count:.2f}" if i_open_count > 0 else 0 + i_avg_close_time = f"{i_closed_total_days/i_closed_count:.2f}" if i_closed_count > 0 else 0 + i_pct_org = f"{(i_in_org/(i_open_count + i_closed_count)) * 100:.2f}" if i_closed_count + i_open_count > 0 else 0 + i_pct_non_org = f"{(i_non_org/(i_open_count + i_closed_count)) * 100:.2f}" if i_closed_count + i_open_count > 0 else 0 + i_pct_bot = f"{(i_bot/(i_open_count + i_closed_count)) * 100:.2f}" if i_closed_count + i_open_count > 0 else 0 csvwriter.writerow( [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, pr_max_date.date(), From 813043bf63efc27d7e321fc7eac041e841cb1c0b Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 8 Sep 2021 08:56:42 -0700 Subject: [PATCH 5/7] remove debug code --- github_metrics.py | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/github_metrics.py b/github_metrics.py index 135d7ee..43c60dd 100644 --- a/github_metrics.py +++ b/github_metrics.py @@ -175,7 +175,6 @@ def export_repo_metrics(directory,organization, authToken): members = orgs.get_members() for repo in orgs.get_repos(): if not repo.archived: - # print(f'{repo.default_branch}') pr_open_count = 0 pr_max_open = 0 pr_max_date = datetime.datetime.min @@ -195,30 +194,26 @@ def export_repo_metrics(directory,organization, authToken): else: pr_non_org += 1 + if pr.created_at > pr_max_date: + pr_max_date = pr.created_at + if pr.state == 'open': pr_open_count += 1 - # print(f'{pr.created_at}') days_open = (dt_today - pr.created_at).days pr_open_total_days += days_open if days_open > pr_max_open: pr_max_open = days_open - if pr.created_at > pr_max_date: - pr_max_date = pr.created_at + else: pr_closed_count += 1 - # print(f'{pr.closed_at}') - # print(f'{pr.merged_at}') closed = pr.closed_at if pr.closed_at else datetime.datetime.min merged = pr.merged_at if pr.merged_at else datetime.datetime.min end_date = max(closed, merged) days_open = (end_date- pr.created_at).days pr_closed_total_days += days_open - # if days_open > pr_max_open: - # pr_max_open = days_open - # if pr.created_at > pr_max_date: - # pr_max_date = pr.created_at + pr_avg_open = f"{pr_open_total_days/pr_open_count:.2f}" if pr_open_count > 0 else 0 pr_avg_close_time = f"{pr_closed_total_days/pr_closed_count:.2f}" if pr_closed_count > 0 else 0 @@ -244,6 +239,9 @@ def export_repo_metrics(directory,organization, authToken): else: i_non_org += 1 + if iss.created_at > i_max_date: + i_max_date = iss.created_at + if iss.state == 'open': pr_open_count += 1 i_open_count += 1 @@ -253,8 +251,7 @@ def export_repo_metrics(directory,organization, authToken): i_open_total_days += days_open if days_open > i_max_open: i_max_open = days_open - if iss.created_at > i_max_date: - i_max_date = iss.created_at + else: i_closed_count += 1 @@ -322,12 +319,12 @@ def main(): try: print("Valid token. Starting process. \n") - # print("") - # list_org_members(organization, authToken) - # print("") - # export_code_frequency(directory, organization, authToken) - # print("") - # export_community_engagement(directory, organization, authToken) + print("") + list_org_members(organization, authToken) + print("") + export_code_frequency(directory, organization, authToken) + print("") + export_community_engagement(directory, organization, authToken) print("") export_repo_metrics(directory, organization, authToken) except Exception as e: From 1f82ba466ab03da008bf0a9140f69298ca7dbfd1 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 8 Sep 2021 15:00:31 -0700 Subject: [PATCH 6/7] better text for no pr/issues --- github_metrics.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/github_metrics.py b/github_metrics.py index 43c60dd..9974e32 100644 --- a/github_metrics.py +++ b/github_metrics.py @@ -213,13 +213,17 @@ def export_repo_metrics(directory,organization, authToken): end_date = max(closed, merged) days_open = (end_date- pr.created_at).days pr_closed_total_days += days_open + if days_open > pr_max_open: + pr_max_open = days_open + print(f"{repo.name} - {pulls.totalCount} - {pr_open_count}") pr_avg_open = f"{pr_open_total_days/pr_open_count:.2f}" if pr_open_count > 0 else 0 pr_avg_close_time = f"{pr_closed_total_days/pr_closed_count:.2f}" if pr_closed_count > 0 else 0 pr_pct_org = f"{(pr_in_org/(pr_open_count + pr_closed_count)) * 100:.2f}" if pr_closed_count + pr_open_count > 0 else 0 pr_pct_non_org = f"{(pr_non_org/(pr_open_count + pr_closed_count)) * 100:.2f}" if pr_closed_count + pr_open_count > 0 else 0 pr_pct_bot = f"{(pr_bot/(pr_open_count + pr_closed_count)) * 100:.2f}" if pr_closed_count + pr_open_count > 0 else 0 + pr_display_date = pr_max_date.date() if pr_max_date != datetime.datetime.min else "N/A" i_open_count = 0 i_max_open = 0 @@ -243,7 +247,6 @@ def export_repo_metrics(directory,organization, authToken): i_max_date = iss.created_at if iss.state == 'open': - pr_open_count += 1 i_open_count += 1 # print(f'{pr.created_at}') @@ -267,11 +270,12 @@ def export_repo_metrics(directory,organization, authToken): i_pct_org = f"{(i_in_org/(i_open_count + i_closed_count)) * 100:.2f}" if i_closed_count + i_open_count > 0 else 0 i_pct_non_org = f"{(i_non_org/(i_open_count + i_closed_count)) * 100:.2f}" if i_closed_count + i_open_count > 0 else 0 i_pct_bot = f"{(i_bot/(i_open_count + i_closed_count)) * 100:.2f}" if i_closed_count + i_open_count > 0 else 0 + i_display_date = i_max_date.date() if i_max_date != datetime.datetime.min else "N/A" csvwriter.writerow( - [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, pr_max_date.date(), + [todaystr, organization, repo.name, pr_open_count, pr_avg_open, pr_max_open, pr_display_date, pr_closed_count, pr_avg_close_time, pr_pct_org, pr_pct_non_org, pr_pct_bot, i_open_count, - i_avg_open, i_max_open, i_max_date.date(), i_pct_org, i_pct_non_org, i_pct_bot]) + i_avg_open, i_max_open, i_display_date, i_pct_org, i_pct_non_org, i_pct_bot]) def list_unique_collaborators(directory, organization, authToken): g = Github(authToken) From fa7ec3aa103316e3f47e61698789b99354e171a0 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 10 Jul 2024 10:51:58 -0400 Subject: [PATCH 7/7] backing up --- .gitignore | 4 +++- export_traffic.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index fee3ba4..471df9c 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,6 @@ output/** update_gsheet.py *.csv -.env \ No newline at end of file +.env + +.DS_Store diff --git a/export_traffic.py b/export_traffic.py index 4342a59..168f025 100644 --- a/export_traffic.py +++ b/export_traffic.py @@ -32,7 +32,7 @@ def test_push_access(organization, authToken): if orgs.login == organization: print("Checking push access for", orgs.name, "repositories. \n") for repo in orgs.get_repos(): - if repo.fork == False and repo.private == False: + if repo.fork == False and repo.archived == False: currentrepo = repo.name r = s.get("https://api.github.com/repos/" + organization + "/" + currentrepo + "/traffic/views") r_views = json.loads(r.text) @@ -70,7 +70,7 @@ def export_traffic(directory, organization, repos_ok, authtoken): for repo in allrepos: repo_owner = str(repo.owner) repo_owner = (repo_owner.replace('NamedUser(login="', "")).replace('")', "") - if repo.fork == False and repo.private == False and repo_owner == organization and repo.name in repos_ok: + if repo.fork == False and repo.archived == False and repo_owner == organization and repo.name in repos_ok: reposlist.append(repo.name) count=0