mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-11 15:00:00 +08:00
Bugfix/fix aliyun (#2036)
* 🐛 修复数据库超时问题 * 🔧 移除帮助图片清理功能. * ✨ 更新插件商店功能,允许在添加插件时指定源类型为 None。优化插件 ID 查找逻辑,增强代码可读性。新增 zhenxun/ui 模块导入。 * 🔧 优化数据访问和数据库上下文逻辑,移除不必要的全局变量和日志信息,调整日志级别为调试,提升代码可读性和性能。 * ✨ 增强插件商店功能,支持在下载文件时指定稀疏检出路径和目标目录。优化二进制文件处理逻辑,提升文件下载的准确性和效率。 * ✨ 增强阿里云和GitHub的文件管理功能,新增Git不可用异常处理,优化稀疏检出逻辑,提升代码可读性和稳定性。 * ✨ 增强插件下载功能,新增对下载结果的异常处理,确保在Git不可用时抛出相应异常信息。优化错误提示,提升用户体验。 * ✨ 增强插件商店功能,优化添加插件时的提示信息,明确区分插件模块和名称。新增 Windows 下删除只读文件的处理逻辑,提升插件管理的稳定性和用户体验。 * ✨ 优化文件内容获取逻辑,新增对非二进制文件的UTF-8解码处理,提升文件读取的稳定性和准确性。
This commit is contained in:
@@ -11,6 +11,7 @@ from aiocache import cached
|
||||
|
||||
from zhenxun.services.log import logger
|
||||
from zhenxun.utils.github_utils.models import AliyunFileInfo
|
||||
from zhenxun.utils.repo_utils.utils import prepare_aliyun_url
|
||||
|
||||
from .base_manager import BaseRepoManager
|
||||
from .config import LOG_COMMAND, RepoConfig
|
||||
@@ -445,32 +446,6 @@ class AliyunCodeupManager(BaseRepoManager):
|
||||
返回:
|
||||
RepoUpdateResult: 更新结果
|
||||
"""
|
||||
|
||||
# 定义预处理函数,构建阿里云CodeUp的URL
|
||||
def prepare_aliyun_url(repo_url: str) -> str:
|
||||
import base64
|
||||
|
||||
repo_name = repo_url.split("/tree/")[0].split("/")[-1].replace(".git", "")
|
||||
# 构建仓库URL
|
||||
# 阿里云CodeUp的仓库URL格式通常为:
|
||||
# https://codeup.aliyun.com/{organization_id}/{organization_name}/{repo_name}.git
|
||||
url = f"https://codeup.aliyun.com/{self.config.aliyun_codeup.organization_id}/{self.config.aliyun_codeup.organization_name}/{repo_name}.git"
|
||||
|
||||
# 添加访问令牌 - 使用base64解码后的令牌
|
||||
if self.config.aliyun_codeup.rdc_access_token_encrypted:
|
||||
try:
|
||||
# 解码RDC访问令牌
|
||||
token = base64.b64decode(
|
||||
self.config.aliyun_codeup.rdc_access_token_encrypted.encode()
|
||||
).decode()
|
||||
# 阿里云CodeUp使用oauth2:token的格式进行身份验证
|
||||
url = url.replace("https://", f"https://oauth2:{token}@")
|
||||
logger.debug(f"使用RDC令牌构建阿里云URL: {url.split('@')[0]}@***")
|
||||
except Exception as e:
|
||||
logger.error(f"解码RDC令牌失败: {e}")
|
||||
|
||||
return url
|
||||
|
||||
# 调用基类的update_via_git方法
|
||||
return await super().update_via_git(
|
||||
repo_url=repo_url,
|
||||
|
||||
Reference in New Issue
Block a user