Skip to content

feat(agents): support gitlab repo import, gitops sync and agent market plugin distribution - #97

Merged
liuxy0551 merged 5 commits into
masterfrom
feat_gitlab_plugin
Sep 13, 2026
Merged

feat(agents): support gitlab repo import, gitops sync and agent market plugin distribution#97
liuxy0551 merged 5 commits into
masterfrom
feat_gitlab_plugin

Conversation

@liuxy0551

Copy link
Copy Markdown
Collaborator

PR 类型

  • 新特性 (Feature)
  • 重构 (Refactor)
  • 文档更新 (Documentation)

改动内容概述

1. Agent 市场全面升级为 GitOps 驱动模式

  • 支持从指定 GitLab 仓库导入 Agent 插件(支持指定分支与分类,自动兼容从 GitLab 网页端复制的 tree/blob URL)。
  • 废弃数据库 agent_files 表存储,直接基于 Git commit hash(git rev-parse HEAD)进行版本追踪与内容哈希比对。
  • 使用原生 git archive 打包生成标准插件 ZIP 归档,供离线下载与终端一键安装。

2. 代码同步与自动保鲜机制

  • 手动同步:支持列表页【全量同步】、卡片及详情页侧边栏单个 Agent【从 Git 同步最新代码】、以及详情页 Git 仓库设置弹窗保存时同步。
  • 定时同步:新增 app/schedule/syncGitAgents.js 定时任务,默认每 5 分钟自动轮询所有已配置仓库,检测到新 commit 自动同步入库。
  • 浅克隆优化:将 Git 拉取逻辑升级为显式浅拉取 git fetch --depth 1 origin <branch> + git reset --hard FETCH_HEAD,平滑兼容跨分支切换,全程保持 depth 1 且免去异常删目录重新 clone 的问题。
  • 并发与安全:引入基于仓库名的并发锁防止 index.lock 冲突,支持 gitlabToken 认证白名单以及错误日志敏感信息自动脱敏。

3. 双端插件脚手架与客户端分发

  • 开发脚手架:新增 app/public/create-plugin.sh,可一键生成面向 Claude Code 与 Codex 的双端规范插件骨架工程。
  • 安装脚本:升级 app/public/install.sh,支持集中式 ~/.agents/agent-market 本地 Marketplace 维护、宿主 CLI 自动探测(含桌面应用)、setup.sh 环境预检及入口 Skill 调用引导。

4. 界面与文档完善

  • 详情页增加【Git 仓库设置】卡片,展示“最近刷新时间”与“最近同步代码时间”,支持可视化修改仓库与分支。
  • 列表卡片增加技能数量与默认头像兜底展示。
  • 全面更新 docs/docsify/zh-cn/guide/agent-market.mddocs/docsify/zh-cn/configuration/envConfig.md

测试验证

  • npm run lint 检查通过(0 error)。
  • npm run check-types 检查通过。
  • node --test test/*.test.js 全部 177 个测试通过。

…t plugin distribution

- 支持从 GitLab 仓库导入 Agent 插件与智能 URL 解析
- 支持全量批量同步与单个 Agent 即时代码同步
- 新增 5 分钟定时自动同步任务并支持 autoSyncInterval 配置
- 优化 git 浅克隆同步逻辑,使用 fetch --depth 1 origin branch 与 reset --hard FETCH_HEAD 平滑兼容跨分支切换
- 提供 create-plugin.sh 跨端插件脚手架与 install.sh 客户端分发脚本
- 同步更新 Agent 市场帮助文档与环境配置
# Conflicts:
#	app/service/agents.js
#	app/web/pages/agents/types.ts
#	docs/docsify/imgs/agent-detail.png
#	docs/docsify/imgs/agent-list.png
#	test/agent-market-service.test.js
- 在 normalizeGitSource 中自动补齐 HTTP/HTTPS 仓库地址的 .git 后缀,避免 GitLab 301 重定向丢失认证头
- 彻底清空 runGitCommand 中的 GIT_ASKPASS 与 SSH_ASKPASS,并注入 core.askPass= 和 credential.helper=,防止在终端唤起外部 Electron askpass 脚本卡死
- 在 resolveGitlabToken 中清理 require 缓存,支持 env.json 配置热更新
- 在 formatGitCloneError 中补充对 Access denied 与鉴权失败的错误特征捕获
- 同步更新测试用例断言
@liuxy0551
liuxy0551 merged commit 4d753d7 into master Sep 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant