feat: expand MCP server tools for PR and label management, add helper CLI scripts
Closes #7
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Delete a Gitea remote branch.
|
||||
|
||||
Usage:
|
||||
delete_branch.py <branch_name>
|
||||
delete_branch.py --remote prgs feat/my-feature
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
# Auto-execute using the project's local virtual environment Python
|
||||
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
venv_python = os.path.join(PROJECT_ROOT, "venv", "bin", "python3")
|
||||
if os.path.exists(venv_python) and sys.executable != venv_python:
|
||||
os.execv(venv_python, [venv_python] + sys.argv)
|
||||
|
||||
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="Delete a Gitea remote branch.")
|
||||
add_remote_args(parser)
|
||||
parser.add_argument("branch", help="Remote branch name to delete.")
|
||||
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
|
||||
|
||||
# Encode the branch name in case it contains slashes, e.g. feat/my-branch
|
||||
import urllib.parse
|
||||
encoded_branch = urllib.parse.quote(args.branch, safe="")
|
||||
url = f"{repo_api_url(host, org, repo)}/branches/{encoded_branch}"
|
||||
|
||||
try:
|
||||
api_request("DELETE", url, auth)
|
||||
print(f"Successfully deleted remote branch '{args.branch}'")
|
||||
return 0
|
||||
except Exception as e:
|
||||
print(f"Error deleting branch '{args.branch}': {e}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user