import argparse
import json
import urllib.request
import os
import sys

def add_comment(issue_number, body, repo="yangyangxie/cortex-hub"):
    token = os.getenv("GITBUCKET_TOKEN")
    if not token:
        print("Error: GITBUCKET_TOKEN environment variable not set.")
        sys.exit(1)

    url = f"https://gitbucket.jerxie.com/api/v3/repos/{repo}/issues/{issue_number}/comments"
    data = {"body": body}

    req = urllib.request.Request(url, json.dumps(data).encode("utf-8"), headers={
        "Authorization": f"token {token}",
        "Content-Type": "application/json"
    })

    try:
        with urllib.request.urlopen(req) as response:
            print(f"Comment added to Issue #{issue_number}")
    except Exception as e:
        print(f"Error adding comment: {e}")
        if hasattr(e, 'read'):
            print(e.read().decode())
        sys.exit(1)

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Add a comment to a GitBucket issue.")
    parser.add_argument("--issue", required=True, type=int, help="Issue number")
    parser.add_argument("--body", required=True, help="Comment body markdown")
    parser.add_argument("--repo", default="yangyangxie/cortex-hub", help="Repository (owner/repo)")
    
    args = parser.parse_args()
    add_comment(args.issue, args.body, args.repo)
