从零到发布:用 AI Shell 一键打造开源项目并上架华为云开发者展览馆

举报
哦啦啦啦啦 发表于 2026/08/17 10:56:43 2026/08/17
【摘要】 今天我在华为云 AI DevSpace 里,从一句需求描述出发,让 CodeArts 智能体帮我生成了一个完整的 Python 开源项目 **Cloud Environment Inspector**,推送到 GitCode,并成功发布到华为云开发者作品展览馆——全程没离开终端。---## 起点:一个朴素的需求云开发环境往往是临时的容器——你登进去,想快速知道这台机器到底什么配置:几个核?多...

今天我在华为云 AI DevSpace 里,从一句需求描述出发,让 CodeArts 智能体帮我生成了一个完整的 Python 开源项目 **Cloud Environment Inspector**,推送到 GitCode,并成功发布到华为云开发者作品展览馆——全程没离开终端。

---

## 起点:一个朴素的需求

云开发环境往往是临时的容器——你登进去,想快速知道这台机器到底什么配置:几个核?多少内存?装了哪些开发工具?网络通不通?

当然可以手动敲一堆命令:`nproc`、`free -h`、`df -h`、`cat /etc/os-release`、`python --version`、`node --version`……但每次都敲一遍,烦。

所以我想要一个工具:

- 一条命令出全部信息
- 只用 Python 标准库,零依赖,拿来就跑
- 输出好看,还能导出 JSON 和 Markdown
- 缺文件、缺命令、断网都不崩

名字想好了:**Cloud Environment Inspector**。

## 过程:CodeArts 生成代码

我在 AI DevSpace 里给 CodeArts 发了一段详细的需求描述,包括项目结构、每个模块要做什么、异常处理要求、测试要求等。

CodeArts 在沙箱里逐步创建了全部文件:

```
cloud-env-inspector/
├── cloud_env_inspector/
│   ├── __init__.py / __main__.py / cli.py / models.py
│   ├── collectors/          # cpu / memory / disk / os_info / tools / network
│   └── reporters/           # text / json_reporter / markdown
├── tests/                   # 21 个单元测试
├── README.md / LICENSE / .gitignore / setup.py / pyproject.toml
```

25 个文件,1637 行代码,**仅用 Python 标准库**。

### 验证:三个输出格式 + 21 个测试

文本报告(默认):

```
┌──────────────────────────────────────────────────────────────┐
│ Cloud Environment Inspector                                  │
│ Linux cloud development environment report                   │
└──────────────────────────────────────────────────────────────┘

Operating System
────────────────
Distribution       Huawei Cloud EulerOS 2.0 (aarch64)
Kernel             5.10.0-182.0.0.95.r3582_286.hce2.aarch64
Architecture       aarch64

CPU
───
Logical cores      8

Memory
──────
Total             14.9 GiB
Available         11.5 GiB

Development Tools
─────────────────
  ✓  python    Python 3.11.4
  ✓  node      v20.18.0
  ✓  git       git version 2.33.0
  ✓  ssh       OpenSSH_8.8p1
  ✗  docker    not installed

Network
───────
DNS google.com    yes
Latency (1.1.1.1) 176.5 ms
```

JSON 输出(`--json`)和 Markdown 输出(`--markdown`)也正常工作。

```
$ python3 -m unittest discover -s tests -v
...
Ran 21 tests in 0.009s
OK
```

**21 个测试全部通过。**

### 一个小插曲:ARM 适配

当前环境是华为云 EulerOS aarch64。ARM 架构的 `/proc/cpuinfo` 没有 `model name` 字段——x86 上有,ARM 上没有。工具按设计优雅返回 `unknown`,而不是报错。这正是"健壮的异常处理"的价值:不假设目标平台,遇到缺字段就降级。

## 推送:GitCode 持久化

AI DevSpace 是临时容器,到期即销毁。代码必须推到 Git 仓库才能持久化。

用 `gitcode-oauth` 技能扫码登录 GitCode,初始化仓库并推送:

```bash
git init -b main
git add -A
git commit -m "Initial commit"
git remote add origin https://gitcode.com/lightyearssssr/cloud-env-inspector.git
git push -u origin main
```

代码现在在:https://gitcode.com/lightyearssssr/cloud-env-inspector

## 发布:上架华为云开发者作品展览馆

这是今天最有意思的一步。用 `publish-work-to-gallery` 技能,把作品发布到华为云高校运营平台。

整个发布流程是一条流水线:

1. **选择作品目录** — 扫描到 `/root/cloud-env-inspector/`
2. **解析 IAM Domain** — 通过 hcloud 自动获取 Domain ID,不需要手动输入
3. **Git 仓库信息** — 已推送,`gitUrl` + `gitBranch` 齐备
4. **生成作品名称** — 从 README 的 H1 提取:"Cloud Environment Inspector"
5. **生成封面图** — CLI 工具没有前端界面,用 Playwright 渲染了一个终端风格的 HTML 页面截图,深色渐变背景 + 模拟终端输出 + 标签
6. **生成简介** — "零依赖轻量级Python CLI工具,检测Linux云环境的CPU、内存、磁盘、OS、开发工具及网络状态。"(53 字符,通过 15-100 字符校验)
7. **生成详情文章** — 含系统架构图(Playwright 渲染 HTML/CSS),打包成 zip
8. **选择训练营** — 投稿到「AI素养课ClassRoom第二期 · 智慧系统」
9. **门禁复核** — 字体门禁、编码门禁、字形终检全部通过
10. **发布** — API 返回 201 Created ✅
11. **领取成长积分** — +200 积分

发布过程中踩了一个坑:**简介字数**。第一次提交的简介有 123 个字符,被服务端拒绝(`GALLERY.PARAM.INTRODUCTION_LENGTH_INVALID`,要求 15-100 字符)。缩短到 53 字符后通过。这个限制是服务端校验,技能侧的 CJK 字数检查(15-50 中文字符)是更保守的本地预检。

最终发布链接:
https://gallery.developer.huaweicloud.cn/gallery/015e8061-854a-443a-90dd-12fd5f991f78

## 复盘:几个值得记的点

### 1. AI 生成代码 + 人工验证 = 靠谱

CodeArts 生成的代码不是"看起来对"——它真的能跑,测试真的能过。但关键是验证环节:我在当前环境实际运行了三种输出格式和全部测试,确认没有问题才继续。AI 生成的代码必须验证,这一步不能省。

### 2. 临时容器 → 必须持久化

AI DevSpace 的容器有使用时长限制,到期自动回收。今天的工作能保留下来,是因为及时推送到了 GitCode。**代码不推送 = 没写过。**

### 3. 发布流程的自动化程度

`publish-work-to-gallery` 技能把发布流程编排成了一条 10 步流水线,从 Domain 解析到积分领取全自动。唯一需要人工干预的是:扫码登录 GitCode、选择训练营和作者署名。这种"把复杂流程编排成技能"的思路,比写一个巨大的脚本更可维护。

### 4. ARM 适配不是特殊需求

aarch64 是华为云的默认架构。`/proc/cpuinfo` 的差异不是边缘 case,而是常态。写工具时把"字段可能不存在"当作正常情况处理,不是防御性编程,是正确的编程。

## 成果一览

| 项目 | 链接 |
|------|------|
| GitCode 仓库 | https://gitcode.com/lightyearssssr/cloud-env-inspector |
| 作品展览馆 | https://gallery.developer.huaweicloud.cn/gallery/015e8061-854a-443a-90dd-12fd5f991f78 |
| 代码规模 | 25 文件,1637 行,21 个测试 |
| 依赖 | 零(仅 Python 标准库) |
| 成长积分 | +200 |

---

*本文由 AI DevSpace 中的工作日志整理而成。工具已开源,欢迎 clone 使用。*

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。