feat(auth): add GitLab OAuth2 provider support (#264)
- feat(auth): add GitLab OAuth2 provider support
Add GitLab as an additional OAuth2 authentication provider alongside GitHub. This includes:
- GitLab OAuth2 client configuration with customizable base URL
- GitLabClaimsExtractor for handling GitLab-specific user claims
- Multi-provider login UI with provider-specific icons
- Updated localization to use OAuth-agnostic terminology
- JSON type annotation for IdentityBinding entity
fix(auth): restore oauth redirect and gitlab email checks
test(auth): align oauth login handler expectation
Co-authored-by: wowo-zZ zhenggui5228@126.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
SkillHub
企业级开源智能体技能注册中心 — 在组织内发布、发现和管理可复用的技能包
SkillHub 是一个自托管平台,为团队提供私有的、受治理的智能体技能共享空间。发布技能包,推送到命名空间,让其他人通过搜索发现或通过 CLI 安装。专为防火墙后的本地部署而构建,提供与公共注册中心相同的精致体验。
文档
核心特性
make dev-all命令即可在本地运行。beta、stable)和自动latest跟踪。快速开始
使用以下命令启动完整的本地环境:
默认命令会拉取
latest稳定版镜像;如果你想跟随main的最新构建,请显式传--version edge。配置公网访问地址(生产环境推荐):
--public-url参数用于设置 SkillHub 实例的公网访问地址。配置后:国内用户(阿里云镜像):
如果部署遇到问题,请清除现有的运行时目录并重试。
前置要求
访问应用
默认账户
默认执行
make dev-all时,后端以localprofile 启动。 在这个模式下,本地开发会保留下面两个模拟用户,同时默认创建一个可账号密码登录的 bootstrap 管理员:local-user— 普通用户,用于发布和命名空间操作local-admin— 超级管理员,用于审核和管理流程在本地开发中使用
X-Mock-User-Id请求头切换用户。 本地 bootstrap 管理员默认已在application-local.yml中开启:adminChangeMe!2026BOOTSTRAP_ADMIN_ENABLED=false通过
runtime.sh或compose.release.yml部署时,发布模板同样默认开启管理员, 使用相同的默认账号密码(admin/ChangeMe!2026),零配置即可登录。 生产环境请务必修改密码——validate-release-config.sh会拒绝默认值停止服务
开发
前置要求
启动开发环境
常用命令
说明:不要在
server/下直接执行./mvnw -pl skillhub-app clean test。skillhub-app依赖同仓库的 sibling modules,单独 clean 构建时会回退到本地 Maven 仓库里的旧产物并出现大量cannot find symbol/ 签名不匹配错误。需要使用-am,或者直接使用上面的make test-backend-app/make build-backend-app。项目结构
部署
使用 Docker Compose
配置参数说明
--public-url <url>--public-url https://skill.example.com--version <tag>--version v0.2.0--aliyun--aliyun--home <dir>--home /opt/skillhub--no-scanner--no-scanner使用 Kubernetes
环境变量
关键配置选项:
完整配置参考请查看
application.yml。上传白名单覆盖
技能包上传校验默认使用
SkillPackagePolicy.java中的扩展名白名单。SkillPublishProperties默认也会把这份列表作为skillhub.publish.allowed-file-extensions的值。如果需要在运行时整体替换默认白名单,可以设置:
Spring Boot 会把这个环境变量绑定到
skillhub.publish.allowed-file-extensions。一旦设置,该配置会替换默认白名单, 而不是在默认列表后追加。架构
SkillHub 采用清晰的分层架构:
关键设计决策:
详细架构文档请参阅
docs/目录。技术栈
后端
前端
基础设施
路线图
完整路线图请参阅
docs/10-delivery-roadmap.md。与智能体平台集成
SkillHub 设计为与各种智能体平台和框架无缝集成。
OpenClaw
OpenClaw 是开源的智能体技能 CLI 工具。配置它使用您的 SkillHub 端点作为注册中心:
其中
my-space--my-skill是兼容层使用的 canonical slug,SkillHub 会将其解析为 namespacemy-space和 skill slugmy-skill。📖 完整 OpenClaw 集成指南 →
AstronClaw
AstronClaw 是基于 OpenClaw 核心能力打造的云端 AI 助手,提供全天候在线服务,随时随地通过企业微信、钉钉、飞书等渠道提供服务。它内置了丰富的技能系统,您可以将其连接到自托管的 SkillHub 注册中心,支持技能市场一键安装、仓库搜索、对话自动安装,甚至管理和分发组织内部的自定义私有技能。
Loomy
Loomy 是聚焦真实办公场景的桌面端 AI 工作搭子。它深入打通本地文件和系统工具,为个人及小团队构建高效的自动化工作流。通过将 Loomy 连接到您的 SkillHub 注册中心,您可以轻松发现并安装组织内部的专属技能,从而增强本地桌面端的自动化与协同办公能力。
astron-agent
astron-agent 是科大讯飞星火智能体框架。存储在 SkillHub 中的技能可以被 astron-agent 引用和加载,实现从开发到生产的受治理、版本化的技能生命周期。
贡献
欢迎贡献。请先开启 issue 讨论您想要更改的内容。
CONTRIBUTING.mdCODE_OF_CONDUCT.md📞 支持
💬 社区讨论:GitHub Discussions
🐛 Bug 报告:Issues
👾 Discord:加入我们的服务器
👥 企业微信群:
许可证
Apache License 2.0