From 2d232348c18edbc83b9c8ac63670274e7e653d7e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sat, 7 Dec 2024 16:22:00 -0800 Subject: [PATCH 1/3] workflows/commit-access-review: Exclude users who have recently requested access Now that we are accepting commit access requests via GitHub issues, we can keep track of how has recently requested access. --- .github/workflows/commit-access-review.py | 44 +++++++++++++---------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/.github/workflows/commit-access-review.py b/.github/workflows/commit-access-review.py index 91d3a61cdcb17..cb4588670777f 100644 --- a/.github/workflows/commit-access-review.py +++ b/.github/workflows/commit-access-review.py @@ -67,39 +67,47 @@ def check_manual_requests( ) -> list[str]: """ Return a list of users who have been asked since ``start_date`` if they - want to keep their commit access. + want to keep their commit access or if they have applied for commit + access since ``start_date`` """ + query = """ - query ($query: String!) { - search(query: $query, type: ISSUE, first: 100) { + query ($query: String!, $after: String) { + search(query: $query, type: ISSUE, first: 100, after: $after) { nodes { ... on Issue { - body - comments (first: 100) { - nodes { - author { - login - } - } + author { + login } + body } } + pageInfo { + hasNextPage + endCursor + } } } """ formatted_start_date = start_date.strftime("%Y-%m-%dT%H:%M:%S") variables = { - "query": f"type:issue created:>{formatted_start_date} org:llvm repo:llvm-project label:infra:commit-access" + "query": f"type:issue created:>{formatted_start_date} org:llvm repo:llvm-project label:infra:commit-access,infra:commit-access-request" } - res_header, res_data = gh._Github__requester.graphql_query( - query=query, variables=variables - ) - data = res_data["data"] + has_next_page = True users = [] - for issue in data["search"]["nodes"]: - users.extend([user[1:] for user in re.findall("@[^ ,\n]+", issue["body"])]) - + while has_next_page: + res_header, res_data = gh._Github__requester.graphql_query( + query=query, variables=variables + ) + data = res_data["data"] + for issue in data["search"]["nodes"]: + users.extend([user[1:] for user in re.findall("@[^ ,\n]+", issue["body"])]) + if issue['author']: + users.append(issue['author']['login']) + has_next_page = data["search"]["pageInfo"]["hasNextPage"] + if has_next_page: + variables["after"] = data["search"]["pageInfo"]["endCursor"] return users From 61e49728fd0cdc898e4eaa03595f46c810241b35 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sat, 7 Dec 2024 16:31:53 -0800 Subject: [PATCH 2/3] Fix formatting --- .github/workflows/commit-access-review.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/commit-access-review.py b/.github/workflows/commit-access-review.py index cb4588670777f..c11dd4d6be72c 100644 --- a/.github/workflows/commit-access-review.py +++ b/.github/workflows/commit-access-review.py @@ -91,7 +91,7 @@ def check_manual_requests( """ formatted_start_date = start_date.strftime("%Y-%m-%dT%H:%M:%S") variables = { - "query": f"type:issue created:>{formatted_start_date} org:llvm repo:llvm-project label:infra:commit-access,infra:commit-access-request" + "query": f"type:issue created:>{formatted_start_date} org:llvm repo:llvm-project label:infra:commit-access,infra:commit-access-request" } has_next_page = True @@ -104,7 +104,7 @@ def check_manual_requests( for issue in data["search"]["nodes"]: users.extend([user[1:] for user in re.findall("@[^ ,\n]+", issue["body"])]) if issue['author']: - users.append(issue['author']['login']) + users.append(issue["author"]["login"]) has_next_page = data["search"]["pageInfo"]["hasNextPage"] if has_next_page: variables["after"] = data["search"]["pageInfo"]["endCursor"] From a14742e94d606f1bb7c519b2120af9935277ade9 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sat, 7 Dec 2024 16:39:41 -0800 Subject: [PATCH 3/3] Fix formatting --- .github/workflows/commit-access-review.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/commit-access-review.py b/.github/workflows/commit-access-review.py index c11dd4d6be72c..4f539fe98004a 100644 --- a/.github/workflows/commit-access-review.py +++ b/.github/workflows/commit-access-review.py @@ -103,7 +103,7 @@ def check_manual_requests( data = res_data["data"] for issue in data["search"]["nodes"]: users.extend([user[1:] for user in re.findall("@[^ ,\n]+", issue["body"])]) - if issue['author']: + if issue["author"]: users.append(issue["author"]["login"]) has_next_page = data["search"]["pageInfo"]["hasNextPage"] if has_next_page: