newModuleTagger: init
This commit is contained in:
parent
e9866b3b3c
commit
d546de52e0
|
@ -0,0 +1,50 @@
|
||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i python3 -p python3 gh
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
import subprocess
|
||||||
|
import json
|
||||||
|
|
||||||
|
def _gh(args: list[str]) -> str | None:
|
||||||
|
try:
|
||||||
|
return subprocess.check_output(["gh", *args], text=True)
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
JSON_FIELDS = ','.join([
|
||||||
|
"files",
|
||||||
|
"author",
|
||||||
|
"title",
|
||||||
|
"number",
|
||||||
|
"labels",
|
||||||
|
"url"
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
def print_pr(pr):
|
||||||
|
print(f'[{pr["number"]}] {pr["author"]["login"]} - {pr["title"]}')
|
||||||
|
print(pr["url"])
|
||||||
|
print(f'Files:')
|
||||||
|
for file in pr["files"]:
|
||||||
|
print(f' {file}')
|
||||||
|
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
def find_prs_without_new_module_tag():
|
||||||
|
prs = _gh(["pr", "list", "--json", JSON_FIELDS, "--limit", "1000", "--label", "8.has: module (update)"])
|
||||||
|
prs = json.loads(prs)
|
||||||
|
for pr in reversed(prs):
|
||||||
|
if any(label["name"] == "8.has: module (new)" for label in pr["labels"]):
|
||||||
|
continue
|
||||||
|
|
||||||
|
if not any(file['path'].startswith("nixos/modules/") and not Path(file['path']).exists() for file in pr['files']):
|
||||||
|
continue
|
||||||
|
|
||||||
|
print_pr(pr)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
find_prs_without_new_module_tag()
|
Loading…
Reference in New Issue