182 lines
5.4 KiB
Markdown
182 lines
5.4 KiB
Markdown
---
|
|
title: "Gitee CLI 使用指南"
|
|
description: "码云命令行工具,对标 GitHub CLI,四队共用"
|
|
author: 小橘 🍊
|
|
date: 2026-04-01
|
|
---
|
|
|
|
# Gitee CLI 使用指南
|
|
|
|
码云(Gitee)命令行工具,对标 GitHub CLI (`gh`),让 agent 和人类都能在终端里管理 Gitee 仓库。
|
|
|
|
**仓库**: [shazhou-ww/gitee-cli](https://github.com/shazhou-ww/gitee-cli)
|
|
|
|
## 安装
|
|
|
|
```bash
|
|
git clone https://github.com/shazhou-ww/gitee-cli.git
|
|
cd gitee-cli && npm install && npm run build
|
|
npm link # 全局可用
|
|
```
|
|
|
|
## 认证
|
|
|
|
### 方式一:环境变量(推荐给 agent)
|
|
|
|
```bash
|
|
export GITEE_TOKEN="your-personal-access-token"
|
|
```
|
|
|
|
### 方式二:交互式登录
|
|
|
|
```bash
|
|
gitee auth login
|
|
```
|
|
|
|
Token 缓存到 `~/.config/gitee-cli/config.json`。
|
|
|
|
### 获取 Token
|
|
|
|
1. 打开 [Gitee Personal Access Tokens](https://gitee.com/profile/personal_access_tokens)
|
|
2. 创建 token,勾选 `projects`、`pull_requests`、`issues`、`notes`
|
|
3. 复制 token
|
|
|
|
### 验证
|
|
|
|
```bash
|
|
gitee auth status
|
|
# ✓ Authenticated as ww-shazhou (Wei Wei)
|
|
```
|
|
|
|
## 命令速查
|
|
|
|
### 仓库
|
|
|
|
```bash
|
|
gitee repo list # 列出所有仓库
|
|
gitee repo view mitsein/mitsein # 查看仓库详情
|
|
gitee repo create my-project # 创建仓库
|
|
gitee repo create my-project --private # 创建私有仓库
|
|
gitee repo clone mitsein/mitsein # clone 仓库
|
|
gitee repo delete owner/repo # 删除仓库(需确认)
|
|
```
|
|
|
|
### Issue
|
|
|
|
```bash
|
|
gitee issue list --repo mitsein/mitsein # 列出 issues
|
|
gitee issue list --repo mitsein/mitsein --state closed # 已关闭的
|
|
gitee issue create --repo mitsein/mitsein --title "Bug" # 创建 issue
|
|
gitee issue view IHWYFN --repo mitsein/mitsein # 查看详情
|
|
gitee issue close IHWYFN --repo mitsein/mitsein # 关闭 issue
|
|
gitee issue comment IHWYFN --repo mitsein/mitsein --body "已修复" # 评论
|
|
gitee issue comments IHWYFN --repo mitsein/mitsein # 查看评论列表
|
|
```
|
|
|
|
!!! note "Gitee Issue 编号"
|
|
Gitee 的 issue 编号是字母+数字格式(如 `IHWYFN`),不是纯数字。
|
|
|
|
### Pull Request
|
|
|
|
```bash
|
|
gitee pr list --repo mitsein/mitsein # 列出 PR
|
|
gitee pr create --repo mitsein/mitsein --title "feat: xxx" --head feature-branch
|
|
gitee pr view 1 --repo mitsein/mitsein # 查看详情
|
|
gitee pr diff 1 --repo mitsein/mitsein # 查看代码变更
|
|
gitee pr files 1 --repo mitsein/mitsein # 变更文件列表
|
|
gitee pr comment 1 --repo mitsein/mitsein --body "LGTM" # 添加评论
|
|
gitee pr comments 1 --repo mitsein/mitsein # 查看评论列表
|
|
gitee pr review 1 --repo mitsein/mitsein --action approve # 批准
|
|
gitee pr review 1 --repo mitsein/mitsein --action request_changes --body "请修改" # 请求修改
|
|
gitee pr review-comments 1 --repo mitsein/mitsein # 查看 review 评论
|
|
gitee pr merge 1 --repo mitsein/mitsein # 合并
|
|
gitee pr close 1 --repo mitsein/mitsein # 关闭
|
|
```
|
|
|
|
### Agent Code Review 流程
|
|
|
|
agent 自动 code review 的典型流程:
|
|
|
|
```bash
|
|
# 1. 查看待 review 的 PR
|
|
gitee pr list --repo mitsein/mitsein --json
|
|
|
|
# 2. 查看变更了哪些文件
|
|
gitee pr files 1 --repo mitsein/mitsein
|
|
|
|
# 3. 查看代码 diff
|
|
gitee pr diff 1 --repo mitsein/mitsein
|
|
|
|
# 4. 提交 review 意见
|
|
gitee pr review 1 --repo mitsein/mitsein --action approve --body "LGTM, code looks good"
|
|
|
|
# 5. 合并
|
|
gitee pr merge 1 --repo mitsein/mitsein
|
|
```
|
|
|
|
### Release
|
|
|
|
```bash
|
|
gitee release list --repo mitsein/mitsein
|
|
gitee release create --repo mitsein/mitsein --tag v1.0.0 --name "v1.0.0"
|
|
```
|
|
|
|
### 组织
|
|
|
|
```bash
|
|
gitee org list
|
|
```
|
|
|
|
### 裸 API 调用(兜底)
|
|
|
|
```bash
|
|
gitee api GET /v5/user # 获取当前用户
|
|
gitee api GET /v5/emojis # 不需要认证的 API
|
|
gitee api POST /v5/repos/owner/repo/issues --field title="Bug"
|
|
```
|
|
|
|
## 常用选项
|
|
|
|
| 选项 | 说明 |
|
|
|---|---|
|
|
| `--json` | 输出原始 JSON(方便 agent 解析) |
|
|
| `--page <n>` | 分页页码 |
|
|
| `--per-page <n>` | 每页条数(默认 20) |
|
|
| `--repo <owner/repo>` | 指定仓库(在 gitee 仓库目录内可省略,自动检测) |
|
|
|
|
## 自动检测仓库
|
|
|
|
在 Gitee 仓库目录内执行命令时,`--repo` 可以省略:
|
|
|
|
```bash
|
|
cd ~/mitsein # 这是一个 gitee.com 的 git 仓库
|
|
gitee issue list # 自动检测为 mitsein/mitsein
|
|
```
|
|
|
|
支持 HTTPS 和 SSH 两种 remote 格式。
|
|
|
|
## 环境变量
|
|
|
|
| 变量 | 说明 |
|
|
|---|---|
|
|
| `GITEE_TOKEN` | Personal Access Token(优先级高于 config 文件) |
|
|
|
|
## 与 GitHub CLI 对比
|
|
|
|
| 操作 | GitHub CLI | Gitee CLI |
|
|
|---|---|---|
|
|
| 认证 | `gh auth login` | `gitee auth login` |
|
|
| 列出仓库 | `gh repo list` | `gitee repo list` |
|
|
| 查看 issue | `gh issue view 1` | `gitee issue view IHWYFN --repo owner/repo` |
|
|
| 创建 PR | `gh pr create` | `gitee pr create --head branch` |
|
|
| 裸 API | `gh api /repos/...` | `gitee api GET /v5/repos/...` |
|
|
|
|
主要区别:Gitee 的 issue 编号是字母格式,且 `--repo` 需要显式指定(除非在仓库目录内)。
|
|
|
|
## 参考
|
|
|
|
- [Gitee API v5 文档](https://gitee.com/api/v5/swagger)
|
|
- [GitHub 仓库](https://github.com/shazhou-ww/gitee-cli)
|
|
- [npm 包](https://www.npmjs.com/package/@oc-forge/gitee-cli) — `npm i -g @oc-forge/gitee-cli`
|
|
- [oc-forge npm org](https://www.npmjs.com/org/oc-forge) — 还有 @oc-forge/mcmail 和 @oc-forge/secret
|