#!/usr/bin/env python3
"""检查指定commit的CI status状态。

用法: python3 check_ci_status.py <token> <repo> <sha> <context>
返回: 打印状态 (success/failure/pending/error)
"""

import json
import sys
import urllib.error
import urllib.request


def main():
    if len(sys.argv) != 5:
        print("pending")
        return

    token = sys.argv[1]
    repo = sys.argv[2]
    sha = sys.argv[3]
    target_context = sys.argv[4]

    api_url = f"https://git.xiaoxiajianji.com/api/v1/repos/{repo}/commits/{sha}/statuses?per_page=100"
    req = urllib.request.Request(api_url, headers={"Authorization": f"token {token}"})

    try:
        with urllib.request.urlopen(req, timeout=30) as resp:
            statuses = json.loads(resp.read().decode())
    except Exception:
        print("pending")
        return

    # API返回按时间倒序，第一个就是最新的
    for s in statuses:
        if s.get("context") == target_context:
            print(s.get("status", "pending"))
            return

    print("pending")


if __name__ == "__main__":
    main()
