75 lines
2.0 KiB
Python
75 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
# SPDX-FileCopyrightText: 2023 Blender Authors
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
"""
|
|
# This script prints the URLs of all opened issues labeled
|
|
# "Status/Needs Information from User" by the specified user
|
|
# and last updated more than 7 days ago.
|
|
|
|
Example usage:
|
|
|
|
python ./issues_needing_info.py --username mano-wii
|
|
"""
|
|
|
|
import argparse
|
|
import datetime
|
|
from gitea_utils import gitea_json_issues_search, gitea_json_issue_events_filter, git_username_detect
|
|
|
|
|
|
def print_needing_info_urls(username, before):
|
|
|
|
print(f"Needs information from user before {before}:")
|
|
|
|
label = "Status/Needs Information from User"
|
|
issues_json = gitea_json_issues_search(type="issues",
|
|
state="open",
|
|
before=before,
|
|
labels=label,
|
|
verbose=True)
|
|
|
|
for issue in issues_json:
|
|
fullname = issue["repository"]["full_name"]
|
|
number = issue["number"]
|
|
issue_events = gitea_json_issue_events_filter(
|
|
f"{fullname}/issues/{number}",
|
|
username=username,
|
|
labels={label})
|
|
|
|
if issue_events:
|
|
print(issue["html_url"])
|
|
|
|
print("concluded")
|
|
|
|
|
|
def main() -> None:
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description="Print URL of Issues Needing Info",
|
|
epilog="This script is typically used to help triaging")
|
|
|
|
parser.add_argument(
|
|
"--username",
|
|
dest="username",
|
|
type=str,
|
|
required=False,
|
|
help="Username registred in Gitea")
|
|
|
|
args = parser.parse_args()
|
|
username = args.username
|
|
if not username:
|
|
username = git_username_detect()
|
|
if not username:
|
|
return
|
|
|
|
before_date = datetime.datetime.now() - datetime.timedelta(7)
|
|
print_needing_info_urls(username, f"{before_date.isoformat()}Z")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
# wait for input to close window
|
|
input()
|