#!/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 服务配置 ────────────────────────────────── 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)