feat: bypass Cloudflare block & convert close/mark issue shell scripts to Python
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Close a Gitea issue.
|
||||
|
||||
Usage:
|
||||
close_issue.py <issue_number>
|
||||
close_issue.py --remote prgs 12
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
from gitea_auth import (
|
||||
get_auth_header, resolve_remote, add_remote_args,
|
||||
api_request, repo_api_url,
|
||||
)
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
parser = argparse.ArgumentParser(description="Close a Gitea issue.")
|
||||
add_remote_args(parser)
|
||||
parser.add_argument("issue_number", type=int, help="Issue number to close.")
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
host, org, repo = resolve_remote(args)
|
||||
|
||||
auth = get_auth_header(host)
|
||||
if not auth:
|
||||
print(f"Could not get credentials or token for {host}.", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
url = f"{repo_api_url(host, org, repo)}/issues/{args.issue_number}"
|
||||
|
||||
try:
|
||||
api_request("PATCH", url, auth, {"state": "closed"})
|
||||
print(f"#{args.issue_number} closed")
|
||||
return 0
|
||||
except RuntimeError as e:
|
||||
print(f"Error: {e}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user