#!/usr/bin/env python3
"""
ChatOps 配置管理 - 统一从环境变量读取配置，不硬编码任何敏感信息

环境变量:
  GITEA_URL              Gitea 地址 (默认 https://git.xiaoxiajianji.com)
  GITEA_REPO             仓库路径 (默认 xiaoxia/xiaoxia-saas)
  GITEA_TOKEN            Gitea API Token (优先使用)
  GITEA_USERNAME         Gitea 用户名 (密码认证时)
  GITEA_PASSWORD         Gitea 密码 (密码认证时)
  FEISHU_WEBHOOK_URL     飞书自定义机器人 webhook 地址
  FEISHU_APP_ID          飞书应用 App ID (应用机器人模式，预留)
  FEISHU_APP_SECRET      飞书应用 App Secret (应用机器人模式，预留)
  CHATOPS_NOTIFY_BRANCHES  触发通知的分支，逗号分隔 (默认 main,develop)
  CHATOPS_WEBHOOK_PORT   webhook 服务监听端口 (默认 8090)
  CHATOPS_WEBHOOK_SECRET Gitea webhook 密钥 (校验签名，可选)
"""

import os

# ── Gitea 配置 ────────────────────────────────────────
GITEA_URL = os.environ.get("GITEA_URL", "https://git.xiaoxiajianji.com").rstrip("/")
GITEA_REPO = os.environ.get("GITEA_REPO", "xiaoxia/xiaoxia-saas")
GITEA_TOKEN = os.environ.get("GITEA_TOKEN", "")
GITEA_USERNAME = os.environ.get("GITEA_USERNAME", "")
GITEA_PASSWORD = os.environ.get("GITEA_PASSWORD", "")

# ── 飞书配置 ──────────────────────────────────────────
FEISHU_WEBHOOK_URL = os.environ.get("FEISHU_WEBHOOK_URL", "")
FEISHU_APP_ID = os.environ.get("FEISHU_APP_ID", "")
FEISHU_APP_SECRET = os.environ.get("FEISHU_APP_SECRET", "")

# ── 通知配置 ──────────────────────────────────────────
NOTIFY_BRANCHES = [b.strip() for b in os.environ.get("CHATOPS_NOTIFY_BRANCHES", "main,develop").split(",") if b.strip()]

# ── Webhook 服务配置 ──────────────────────────────────
CHATOPS_WEBHOOK_PORT = int(os.environ.get("CHATOPS_WEBHOOK_PORT", "8090"))
WEBHOOK_SECRET = os.environ.get("CHATOPS_WEBHOOK_SECRET", "")

# ── 常量 ──────────────────────────────────────────────
PAGE_LIMIT = 50  # Gitea API 每页最大数量


def has_gitea_auth() -> bool:
    """检查是否配置了 Gitea 认证信息"""
    if GITEA_TOKEN:
        return True
    if GITEA_USERNAME and GITEA_PASSWORD:
        return True
    return False


def has_feishu_webhook() -> bool:
    """检查是否配置了飞书 webhook"""
    return bool(FEISHU_WEBHOOK_URL)
