Files
Gitea-Tools/close_issue.py
T

43 lines
1.0 KiB
Python
Executable File

#!/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())