mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
78 lines
1.8 KiB
Python
78 lines
1.8 KiB
Python
|
|
"""
|
|||
|
|
仓库管理工具的配置模块
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from dataclasses import dataclass, field
|
|||
|
|
from pathlib import Path
|
|||
|
|
|
|||
|
|
from zhenxun.configs.path_config import TEMP_PATH
|
|||
|
|
|
|||
|
|
LOG_COMMAND = "RepoUtils"
|
|||
|
|
|
|||
|
|
|
|||
|
|
@dataclass
|
|||
|
|
class GithubConfig:
|
|||
|
|
"""GitHub配置"""
|
|||
|
|
|
|||
|
|
# API超时时间(秒)
|
|||
|
|
api_timeout: int = 30
|
|||
|
|
# 下载超时时间(秒)
|
|||
|
|
download_timeout: int = 60
|
|||
|
|
# 下载重试次数
|
|||
|
|
download_retry: int = 3
|
|||
|
|
# 代理配置
|
|||
|
|
proxy: str | None = None
|
|||
|
|
|
|||
|
|
|
|||
|
|
@dataclass
|
|||
|
|
class AliyunCodeupConfig:
|
|||
|
|
"""阿里云CodeUp配置"""
|
|||
|
|
|
|||
|
|
# 访问密钥ID
|
|||
|
|
access_key_id: str = "LTAI5tNmf7KaTAuhcvRobAQs"
|
|||
|
|
# 访问密钥密钥
|
|||
|
|
access_key_secret: str = "NmJ3d2VNRU1MREY0T1RtRnBqMlFqdlBxN3pMUk1j"
|
|||
|
|
# 组织ID
|
|||
|
|
organization_id: str = "67a361cf556e6cdab537117a"
|
|||
|
|
# 组织名称
|
|||
|
|
organization_name: str = "zhenxun-org"
|
|||
|
|
# RDC Access Token
|
|||
|
|
rdc_access_token_encrypted: str = (
|
|||
|
|
"cHQtYXp0allnQWpub0FYZWpqZm1RWGtneHk0XzBlMmYzZTZmLWQwOWItNDE4Mi1iZWUx"
|
|||
|
|
"LTQ1ZTFkYjI0NGRlMg=="
|
|||
|
|
)
|
|||
|
|
# 区域
|
|||
|
|
region: str = "cn-hangzhou"
|
|||
|
|
# 端点
|
|||
|
|
endpoint: str = "devops.cn-hangzhou.aliyuncs.com"
|
|||
|
|
# 下载重试次数
|
|||
|
|
download_retry: int = 3
|
|||
|
|
|
|||
|
|
|
|||
|
|
@dataclass
|
|||
|
|
class RepoConfig:
|
|||
|
|
"""仓库管理工具配置"""
|
|||
|
|
|
|||
|
|
# 缓存目录
|
|||
|
|
cache_dir: Path = TEMP_PATH / "repo_cache"
|
|||
|
|
|
|||
|
|
# GitHub配置
|
|||
|
|
github: GithubConfig = field(default_factory=GithubConfig)
|
|||
|
|
|
|||
|
|
# 阿里云CodeUp配置
|
|||
|
|
aliyun_codeup: AliyunCodeupConfig = field(default_factory=AliyunCodeupConfig)
|
|||
|
|
|
|||
|
|
# 单例实例
|
|||
|
|
_instance = None
|
|||
|
|
|
|||
|
|
@classmethod
|
|||
|
|
def get_instance(cls) -> "RepoConfig":
|
|||
|
|
"""获取单例实例"""
|
|||
|
|
if cls._instance is None:
|
|||
|
|
cls._instance = cls()
|
|||
|
|
return cls._instance
|
|||
|
|
|
|||
|
|
def ensure_dirs(self):
|
|||
|
|
"""确保目录存在"""
|
|||
|
|
self.cache_dir.mkdir(parents=True, exist_ok=True)
|