UniGo网站
UniGo是一个快速、灵活的企业级Golang CLI模板,灵感来自UniRTM和helloworld。它为在Go中构建现代命令行应用程序提供了坚实的基础,具有美观的终端输出、结构化日志记录、内置缓存和全面的CI/CD管道。
🌟特性
- 现代CLI架构:使用Go 1.24+和Cobra构建,提供结构化和可扩展的命令行应用程序框架。
- 美丽的输出:利用
pterm用于丰富、多彩和交互式的终端输出。 - 结构化的日志:内置对Go标准的支持
slog用于高性能结构化日志的包。 - 健壮的工具:包括内置命令,如
doctor,self-update,cache,config,license. - 质量三重保证: 100%的代码纯度通过IDE检查、预提交钩子和GitHub Actions集成质量门强制执行。
- 跨平台的准备:在macOS、Linux和Windows上无缝运行。
️建筑与设计
概述
当开始新的Go CLI项目时,UniGo被设计用来解决样板问题。它标准化了开发环境、体系结构模式和开箱即用的自动化管道。
核心组件
- CLI框架:利用
spf13/cobra和spf13/viper强大的命令解析和配置管理。 - UI &日志:综合
pterm用于UI组件和slog用于结构化事件日志记录。 - 数据库和缓存: sqlite支持(通过
modernc.org/sqlite)本地缓存和事务性数据存储。 - 任务编排:配置有
UniRTM用于管理本地开发工作流(检测、测试、验证)。
📖使用指南
先决条件
- 运行时: Go(>= 1.24)。
- Git:需要全局安装git。
- UniRTM:任务执行和编排所需。
安装
通过NPM:
npm install -g @snowdreamtech/unigo
通过PyPI:
pip install snowdreamtech-unigo
快速入门
- 安装UniRTM:确保
unirtm安装在您的系统上。 - 初始化:
unirtm run setup(引导核心依赖项和钩子)。 - 安装:
unirtm run install(安装项目依赖项)。 - 验证:
unirtm run verify(确保一切都是绿色的)。 - 构建:
go build -o unigo main.go
可用命令
unigo version:打印版本号unigo doctor:检查系统健康并诊断问题unigo self-update:升级到最新版本unigo cache:管理本地缓存unigo config:管理配置unigo license:管理版权许可头文件
推荐操作指南
用于检查表
- 运行
unirtm run verify确保所有质量检验关都是绿色的(运行格式化程序、检查程序、测试和安全审计)。 - 确保
CHANGELOG.md是更新。
故障排除
- 问题:
unirtm run verify由于测试错误而失败。- 解决方案确保你的代码通过所有Go语言的单元测试。unix强制执行严格的覆盖和竞争条件检查。
- 问题:预提交钩子失败。
- 解决方案钩子通常会自动修复问题(比如格式)。保存修改后的文件并再次提交。
🔒安全注意事项
安全模型
- 审计日志记录:在此期间执行所有关键操作和安全扫描
verify使用以下工具完成任务trivy,gitleaks,govulncheck. - 依赖关系管理:由Dependabot提供支持,以确保所有依赖项保持最新和安全。
🧑💻开发指南
本地开发设置
git clone https://github.com/snowdreamtech/UniGo.git
cd UniGo
unirtm run setup
unirtm run install
🚀代理使用场景
这个 GITHUB_PROXY (默认值: https://gh-proxy.sn0wdr1am.com/)针对特定的网络加速场景进行了优化。对于不受支持的协议(如Git)误用它将导致错误。
| 场景 | 支持吗? | 示例/说明 |
|---|---|---|
| 发布文件 | ✅是的 | .../releases/download/v1.0/tool.zip |
| 源档案 | ✅是的 | .../archive/master.zip 或者 .tar.gz |
| 直接文件链接 | ✅是的 | .../blob/master/filename |
| Git克隆 | ❌ 否 | 做。 不 使用 git clone 或者 insteadOf 配置。 |
| 项目文件夹 | ❌ 否 | 不支持通过代理浏览/克隆。 |
[!重要的) 为了防止破坏工具链(如
unirtm),该模板通过该代理显式禁用Git重定向。它仅用于脚本中的直接HTTP下载。
📄许可证
本项目在 MIT许可证. 版权所有(c) 2026-至今 SnowdreamTech Inc .) 看到 许可证 文件以获取完整的许可文本。