diff --git a/docs/en/_toc.yaml b/docs/en/_toc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..62a570e471eae607b3e74005e25631165b1d8bc7 --- /dev/null +++ b/docs/en/_toc.yaml @@ -0,0 +1,10 @@ +label: oeGitExt User Guide +isManual: true +description: Use oeGitExt to perform CLI-based Gitee operations. +sections: + - label: User Guide + href: ./index.md + - label: Installation and Uninstallation Guide + href: ./install/installation-and-uninstallation-guide.md + - label: Usage + href: ./manual/usage.md diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000000000000000000000000000000000000..af96c0cb3ea9de1dbfbe977e325a07e619122f0d --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,10 @@ +# oeGitExt User Guide + +## Overview + +oeGitExt enables CLI-based access to manage your Gitee repositories, issues, and pull requests (PRs), including those in the `openeuler` and `src-openeuler` projects. This guide covers installation, uninstallation, and usage instructions. + +This document is intended for Gitee users who should have the following knowledge or skills: + +- Basic understanding of Git and Gitee +- Basic Linux CLI proficiency diff --git a/docs/en/install/installation-and-uninstallation-guide.md b/docs/en/install/installation-and-uninstallation-guide.md new file mode 100644 index 0000000000000000000000000000000000000000..eb20c4078e5ea508aeadb098a0e90027b2e78225 --- /dev/null +++ b/docs/en/install/installation-and-uninstallation-guide.md @@ -0,0 +1,31 @@ +# Installation and Uninstallation Guide + +## System Requirements + +- OS: openEuler 25.03/24.03-LTS-SP2 + +## Installation + +```bash +sudo dnf clean all +``` + +```bash +sudo dnf makecache +``` + +```bash +sudo dnf install oegitext +``` + +## Uninstallation + +```bash +sudo dnf remove oegitext +``` + +Then, remove the configuration file. + +```bash +rm ~/.oegitext +``` diff --git a/docs/en/manual/usage.md b/docs/en/manual/usage.md new file mode 100644 index 0000000000000000000000000000000000000000..38d5e15a3a54470753b9f24433b5fb7d011c9039 --- /dev/null +++ b/docs/en/manual/usage.md @@ -0,0 +1,279 @@ +# Usage + +## 1. Setting Up the Gitee Access Token + +Create a [Gitee personal access token](https://gitee.com/profile/personal_access_tokens) with `user_info`, `projects`, `pull_requests`, and `issues` permissions, then configure the token. + +```bash +oegitext config -token ${access_token} +``` + +## 2. Showing Repository Information + +View command help: + +```bash +oegitext show proj -h +``` + +Command syntax: + +```text +oegitext show proj [OPTIONS] +Available options: + -h/--help Show this help. + -create Show projects created by me. + -p/--pretty Formatted output + -j/--json JSON output + -s/--sort Sort by: created/updated + -d/--direction Sort order: asc/desc + -c/--columns Select output columns. +``` + +### Listing Accessible Projects + +```bash +oegitext show proj +oegitext show proj -p # Formatted output +oegitext show proj -c state,url # Filter specific columns. +oegitext show proj -c state,url -p +``` + +### Listing Projects Created by Me + +```bash +oegitext show proj -create # Formatted output +oegitext show proj -create -p # Show only the state and url columns. +oegitext show proj -create -c state,url +``` + +## 3. Showing Issue Information + +```bash +oegitext show issue -h +``` + +```text +oegitext show issue [-h] [-oe] [-filter {all,assigned,created}] [-p] [-j] [-s {created,updated}] [-d {desc,asc}] + [-c COLUMNS] [-state {all,open,closed,progressing,rejected}] +Available options: + -h, --help Show this help. + -oe only show issues in openEuler enterprise + -filter filter issue: all/assigned/created + -p, --pretty Formatted output + -j, --json JSON output + -s, --sort Sort by: created/updated + -d, --direction Sort order: asc/desc + -c, --columns Select output columns + -state issue state +``` + +### Listing Issues Assigned to Me + +```bash +oegitext show issue # Formatted output +oegitext show issue -p # Show only the state and url columns. +oegitext show issue -c state,url +``` + +### Listing Issues Created by Me + +```bash +oegitext show issue -filter created # Formatted output +oegitext show issue -filter created -p # Show only the state and url columns. +oegitext show issue -filter created -c state,url +``` + +## 4. Showing PR Information + +```bash +oegitext show pr -h +``` + +```text +oegitext show pr [-h] [-oe] [-name REPO_NAME] [-category {all,author,assignee,tester}] [-state {all,open,closed,merged}] [-p] [-j] + [-c COLUMNS] +Available options: + -h, --help Show this help + -oe only show pr in openEuler enterprise + -name repo name (path/name) + -category owner catetory (all,author,assignee,tester) + -state PR state + -only Show PRs created by me + -p, --pretty Formatted output + -j, --json JSON output + -c, --columns Select output columns. +``` + +### Listing PRs of a Repository + +```bash +oegitext show pr -name src-openeuler/vscode # Formatted output +oegitext show pr -name src-openeuler/vscode -p # Show only the state and url columns. +oegitext show pr -name src-openeuler/vscode -c state,url +``` + +## 5. Showing openEuler Repository Information + +```bash +oegitext show repo -h +``` + +```text +oegitext show repo [-h] [-owner {openeuler,src-openeuler}] [-p] [-j] [-c COLUMNS] +Available options: + -h, --help Show this help. + -owner Repository owner (openeuler or src-openeuler, defaulting to openeuler) + -p, --pretty Formatted output + -j, --json JSON output + -c, --columns Select output columns. +``` + +## 6. Forking a Repository + +```bash +oegitext fork -h +``` + +```text +oegitext fork [-h] -user USER -repo REPO [-org ORG] [-name NAME] [-path PATH] [-show] +Available options: + -h, --help Show this help. + -user USER Namespace path (organization/enterprise/personal path) + -repo REPO Repository path + -org ORG Full organization namespace path (default: forks to personal namespace) + -name NAME Forked repository name (default: same as source) + -path PATH Forked repository path (default: same as source) + -show Display request result. +``` + +## 7. Handling Issues + +```bash +oegitext issue -h +``` + +```text +oegitext issue [-h] -cmd {create,update,close,open,get} [-user USER] [-repo REPO] [-title TITLE] [-number NUMBER] + [-body BODY] [-show] +Available options: + -h, --help Show this help. + -cmd Issue operation command + -user USER Issue namespace path (organization/enterprise/personal path) + -repo REPO Repository path + -title TITLE Issue title + -number NUMBER Issue number + -body BODY Issue content + -show Display request result. +``` + +### Getting Repository Issues + +```text +oegitext issue -cmd get -user USER -repo REPO -number NUMBER [-show] +``` + +### Creating an Issue + +```text +oegitext issue -cmd create -user USER -repo REPO -title TITLE [-body BODY] [-show] +``` + +### Updating an Issue + +```text +oegitext issue -cmd update -user USER -repo REPO -title TITLE -number NUMBER [-body BODY] [-show] +``` + +### Closing an Issue + +```text +oegitext issue -cmd close -user USER -repo REPO -number NUMBER [-show] +``` + +### Reopening an Issue + +```text +oegitext issue -cmd open -user USER -repo REPO -number NUMBER [-show] +``` + +## 8. Handling PRs + +```bash +oegitext pull -h +``` + +```text +oegitext pull [-h] -cmd {create,update,close,open,review,test,merge,get} [-user USER] [-repo REPO] [-title TITLE] + [-head HEAD] [-base BASE] [-number NUMBER] [-body BODY] [-state STATE] [-show] +Available options: + -h, --help Show this help. + -cmd PR operation command: create, update, close, open, review, test, merge, get + -user USER PR namespace path (organization/enterprise/personal path) + -repo REPO Repository path + -title TITLE PR title + -head HEAD Source branch (format: branch or path_with_namespace:branch) + -base BASE Target branch name + -number NUMBER PR number + -body PR content + -state STATE PR state + -show Display request result. + +``` + +### Getting PR Information + +```text +oegitext pull -cmd get -user USER -repo REPO -number NUMBER [-show] +``` + +### Creating a PR + +```text +oegitext pull -cmd create -user USER -repo REPO -title TITLE -head HEAD -base BASE [-body BODY] [-show] +Available options: + -head HEAD: Pull Request 提交的源分支。格式:branch (master) 或者:path_with_namespace:branch (oschina/gitee:master) + -base BASE: Pull Request 提交目标分支的名称 +``` + +### Updating a PR + +```text +oegitext pull -cmd update -user USER -repo REPO -number NUMBER -body BODY [-show] +``` + +### Closing a PR + +```text +oegitext pull -cmd close -user USER -repo REPO -number NUMBER [-show] +``` + +### Reopening a PR + +```text +oegitext pull -cmd open -user USER -repo REPO -number NUMBER [-show] +``` + +### Reviewing a PR + +```text +oegitext pull -cmd review -user USER -repo REPO -number NUMBER -state {pass,reset} [-show] +Available options: + -state pass: Force review approval. + reset: Reset review status. +``` + +### Testing a PR + +```text +oegitext pull -cmd test -user USER -repo REPO -number NUMBER -state {pass,reset} [-show] +Available options: + -state pass: Force test approval. + reset: Reset test status. +``` + +### Merging a PR + +```text +oegitext pull -cmd merge -user USER -repo REPO -number NUMBER [-show] +``` diff --git a/docs/zh/_toc.yaml b/docs/zh/_toc.yaml new file mode 100644 index 0000000000000000000000000000000000000000..80d5b0f75f35deffc2a2fb951c31f0e2eea667b3 --- /dev/null +++ b/docs/zh/_toc.yaml @@ -0,0 +1,12 @@ +label: oeGitExt用户指南 +isManual: true +description: oeGitExt使用命令行的方式Gitee +sections: + - label: 用户指南 + href: ./index.md + - label: 安装卸载指导 + href: ./install/installation-and-uninstallation-guide.md + - label: 使用指导 + href: ./manual/usage.md + - label: oeGitExt MCP Server使用指导 + href: ./manual/mcp.md diff --git a/docs/zh/index.md b/docs/zh/index.md new file mode 100644 index 0000000000000000000000000000000000000000..ddeca6dad496acc9fea25ba84926437b1f07c97a --- /dev/null +++ b/docs/zh/index.md @@ -0,0 +1,10 @@ +# oeGitExt用户指南 + +## 简介 + +oeGitExt使用命令行的方式查看用户在Gitee的仓库、issue、pull requests、openeuler和src-openeuler中仓库信息,处理用户pull requests和issue。本文档简要介绍oeGitExt安装卸载及使用指导。 + +本文档适用于Gitee用户。用户需要具备如下经验或能力: + +- 具备git及Gitee基础知识 +- 了解Linux命令行的基本使用方法 diff --git a/docs/zh/install/installation-and-uninstallation-guide.md b/docs/zh/install/installation-and-uninstallation-guide.md new file mode 100644 index 0000000000000000000000000000000000000000..468762662d4bca1cddd58d6165b9201d5e56335d --- /dev/null +++ b/docs/zh/install/installation-and-uninstallation-guide.md @@ -0,0 +1,31 @@ +# 安装卸载指导 + +## 环境要求 + +- 操作系统:openEuler 25.03/24.03-LTS-SP2 + +## 安装 + +```bash +sudo dnf clean all +``` + +```bash +sudo dnf makecache +``` + +```bash +sudo dnf install oegitext +``` + +## 卸载 + +```bash +sudo dnf remove oegitext +``` + +然后使用以下命令删除配置文件。 + +```bash +rm ~/.oegitext +``` diff --git a/docs/zh/manual/img/approve.png b/docs/zh/manual/img/approve.png new file mode 100644 index 0000000000000000000000000000000000000000..0940d991d9c90321dbbe7873ec9d15401f6a4962 Binary files /dev/null and b/docs/zh/manual/img/approve.png differ diff --git a/docs/zh/manual/img/done.png b/docs/zh/manual/img/done.png new file mode 100644 index 0000000000000000000000000000000000000000..5e068c3a8de3b818815e5778fa858cf1ffd14b14 Binary files /dev/null and b/docs/zh/manual/img/done.png differ diff --git a/docs/zh/manual/img/input.png b/docs/zh/manual/img/input.png new file mode 100644 index 0000000000000000000000000000000000000000..bb0c5d20c9977000c48f1ed46aeac4b0c26a042f Binary files /dev/null and b/docs/zh/manual/img/input.png differ diff --git a/docs/zh/manual/img/mcp-servers.png b/docs/zh/manual/img/mcp-servers.png new file mode 100644 index 0000000000000000000000000000000000000000..81bdc6161b0b374f4cda4c72797ff9120ea874cf Binary files /dev/null and b/docs/zh/manual/img/mcp-servers.png differ diff --git a/docs/zh/manual/img/oegitext-mcp.png b/docs/zh/manual/img/oegitext-mcp.png new file mode 100644 index 0000000000000000000000000000000000000000..77858d5d002f93a5563ac8f69abadcbe44a4d171 Binary files /dev/null and b/docs/zh/manual/img/oegitext-mcp.png differ diff --git a/docs/zh/manual/img/roo-code.png b/docs/zh/manual/img/roo-code.png new file mode 100644 index 0000000000000000000000000000000000000000..8161f4181095ea95b1bf431c590b8e469d69a4bb Binary files /dev/null and b/docs/zh/manual/img/roo-code.png differ diff --git a/docs/zh/manual/mcp.md b/docs/zh/manual/mcp.md new file mode 100644 index 0000000000000000000000000000000000000000..706a565472a5baeb3c18f33f7cd3b4c0aa8958cb --- /dev/null +++ b/docs/zh/manual/mcp.md @@ -0,0 +1,44 @@ +# oeGitExt MCP Server使用指导 + + +## System Requirements + +- 带桌面的openEuler 24.03-LTS-SP2 +- oegitext已安装,并能够正常使用 +- roo-code已安装,安装及配置可参考[教程](https://gitee.com/src-openeuler/roo-code/blob/openEuler-24.03-LTS-SP2/docs/zh/index.md) + +### 1. 安装mcp-servers-oeGitExt工具包 + +```bash +sudo yum clean all && sudo yum makecache && sudo yum install -y mcp-servers-oeGitExt +``` + +### 2. 使用自然语言查询issue + +#### 在vscodium中,左侧工具栏点击roo-code图标: + +![roo-code](./img/roo-code.png) + +#### 点击MCP Servers图标可查看到oeGitExt_mcp: + +![roo-code](./img/mcp-servers.png) + +#### 点击oeGitExt_mcp左侧的>可查看oeGitExt_mcp详细信息: + +![roo-code](./img/oegitext-mcp.png) + +#### 点击完成,返回对话框,在底部输入栏输入如下信息: + +```text +查看我在openeuler社区的issue +``` + +![roo-code](./img/input.png) + +#### 按下Enter键或点击发送,稍等一下,roo-code会要求用户批准使用工具 + +![roo-code](./img/approve.png) + +#### 点击批准,之后roo-code会显示查询结果: + +![roo-code](./img/done.png) diff --git a/docs/zh/manual/usage.md b/docs/zh/manual/usage.md new file mode 100644 index 0000000000000000000000000000000000000000..9d29c503bef44e5a542e658a011edc28bc23d512 --- /dev/null +++ b/docs/zh/manual/usage.md @@ -0,0 +1,286 @@ +# 使用指导 + +## 1. 配置gitee私人令牌 + +oeGitExt使用之前,需要配置[gitee私人令牌](https://gitee.com/profile/personal_access_tokens),该令牌需具有user_info、projects、pull_requests和issues权限。 + +```bash +oegitext config -token ${access_token} +``` + +## 2. 显示仓库信息 + +```bash +oegitext show proj -h +``` + +```text +oegitext show proj [-h] [-create] [-p] [-j] [-s {full_name,created,updated,pushd}] [-d {,desc,asc}] [-c COLUMNS] +参数说明: + -h, --help 显示帮助信息 + -create 仅显示我创建的工程 + -p, --pretty 以pretty格式显示结果 + -j, --json 以json格式显示结果 + -s, --sort 排序依据: 创建时间(created),更新时间(updated) + -d, --direction 排序方式,升序(asc),降序(desc) + -c, --columns 仅显示指定列 +``` + +### 显示我的项目 + +```bash +oegitext show proj +# 以pretty格式显示 +oegitext show proj -p +# 仅显示项目的state和url列 +oegitext show proj -c state,url +# 以pretty格式显示 +oegitext show proj -c state,url -p +``` + +### 显示我创建的项目 + +```bash +oegitext show proj -create +# 以pretty格式显示 +oegitext show proj -create -p +# 仅显示项目的state和url列 +oegitext show proj -create -c state,url +``` + +## 3. 显示issue + +```bash +oegitext show issue -h +``` + +```text +oegitext show issue [-h] [-oe] [-filter {all,assigned,created}] [-p] [-j] [-s {created,updated}] [-d {desc,asc}] + [-c COLUMNS] [-state {all,open,closed,progressing,rejected}] +参数说明: + -h, --help 显示帮助信息 + -oe 仅显示openEuler企业仓的issue + -filter 过滤issue,我创建的(created),我负责的(assigned)或者所有(all) + -p, --pretty 以pretty格式显示结果 + -j, --json 以json格式显示结果 + -s, --sort 排序依据: 创建时间(created),更新时间(updated) + -d, --direction 排序方式,升序(asc),降序(desc) + -c, --columns 仅显示指定列 + -state 显示issue状态,所有/打开/关闭/处理中/拒绝 +``` + +### 显示我负责的issues + +```bash +oegitext show issue +# 以pretty格式显示 +oegitext show issue -p +# 仅显示state和url列 +oegitext show issue -c state,url +``` + +### 显示我创建的issues + +```bash +oegitext show issue -filter created +# 以pretty格式显示 +oegitext show issue -filter created -p +# 仅显示state和url列 +oegitext show issue -filter created -c state,url +``` + +## 4. Show pull request + +```bash +oegitext show pr -h +``` + +```text +oegitext show pr [-h] [-oe] [-name REPO_NAME] [-category {all,author,assignee,tester}] [-state {all,open,closed,merged}] [-p] [-j] + [-c COLUMNS] +参数说明: + -h, --help 显示帮助信息 + -oe 仅显示openEuler企业仓的PR + -name pr路径,owner/name + -category 用户类型,所有/创建者/评审者/测试者 + -state 显示pr状态,所有/打开/关闭/已合并 + -only 仅显示我创建的PR + -p, --pretty 以pretty格式显示结果 + -j, --json 以json格式显示结果 + -c, --columns 仅显示指定列 +``` + +### 显示仓库的PR + +```bash +oegitext show pr -name src-openeuler/vscode +# 以pretty格式显示 +oegitext show pr -name src-openeuler/vscode -p +# 仅显示其中的state和url列 +oegitext show pr -name src-openeuler/vscode -c state,url +``` + +## 5. 显示openEuler仓库信息 + +```bash +oegitext show repo -h +``` + +```text +oegitext show repo [-h] [-owner {openeuler,src-openeuler}] [-p] [-j] [-c COLUMNS] +参数说明: + -h, --help 显示帮助信息 + -owner 仓库所有者(openeuler或者src-openeuler),默认openeuler + -p, --pretty 以pretty格式显示结果 + -j, --json 以json格式显示结果 + -c, --columns 仅显示指定列 +``` + +## 6. fork仓库 + +```bash +oegitext fork -h +``` + +```text +oegitext fork [-h] -user USER -repo REPO [-org ORG] [-name NAME] [-path PATH] [-show] +参数说明: + -h, --help 显示帮助信息 + -user USER 仓库所属空间地址(企业、组织或个人的地址path) + -repo REPO 仓库路径(path) + -org ORG 组织空间完整地址,不填写默认Fork到用户个人空间地址 + -name NAME fork 后仓库名称。默认: 源仓库名称 + -path PATH fork 后仓库地址。默认: 源仓库地址 + -show 显示requests结果 +``` + +## 7. 处理issue + +```bash +oegitext issue -h +``` + +```text +oegitext issue [-h] -cmd {create,update,close,open,get} [-user USER] [-repo REPO] [-title TITLE] [-number NUMBER] + [-body BODY] [-show] +参数说明: + -h, --help 显示帮助信息 + -cmd 处理issue命令 + -user USER issue所属空间地址(企业、组织或个人的地址path) + -repo REPO 仓库路径(path) + -title TITLE title + -number NUMBER issue number + -body BODY issue body + -show 显示requests结果 +``` + +### 获取仓库issue + +```text +oegitext issue -cmd get -user USER -repo REPO -number NUMBER [-show] +``` + +### 创建issue + +```text +oegitext issue -cmd create -user USER -repo REPO -title TITLE [-body BODY] [-show] +``` + +### 更新issue + +```text +oegitext issue -cmd update -user USER -repo REPO -title TITLE -number NUMBER [-body BODY] [-show] +``` + +### 关闭issue + +```text +oegitext issue -cmd close -user USER -repo REPO -number NUMBER [-show] +``` + +### 打开issue + +```text +oegitext issue -cmd open -user USER -repo REPO -number NUMBER [-show] +``` + +## 8. 处理PR + +```bash +oegitext pull -h +``` + +```text +oegitext pull [-h] -cmd {create,update,close,open,review,test,merge,get} [-user USER] [-repo REPO] [-title TITLE] + [-head HEAD] [-base BASE] [-number NUMBER] [-body BODY] [-state STATE] [-show] +参数说明: + -h, --help 显示帮助信息 + -cmd 处理PR命令, create,update,close,open,review,test,merge,get + -user USER PR所属空间地址(企业、组织或个人的地址path) + -repo REPO 仓库路径(path) + -title TITLE title + -head HEAD PR提交的源分支。格式:branch (master) 或者:path_with_namespace:branch (oschina/gitee:master) + -base BASE RP提交目标分支的名称 + -number NUMBER number + -body RP内容 + -state STATE state + -show 显示requests结果 + +``` + +### 获取PR信息 + +```text +oegitext pull -cmd get -user USER -repo REPO -number NUMBER [-show] +``` + +### 创建PR + +```text +oegitext pull -cmd create -user USER -repo REPO -title TITLE -head HEAD -base BASE [-body BODY] [-show] +参数说明: + -head HEAD: Pull Request 提交的源分支。格式:branch (master) 或者:path_with_namespace:branch (oschina/gitee:master) + -base BASE: Pull Request 提交目标分支的名称 +``` + +### 更新PR + +```text +oegitext pull -cmd update -user USER -repo REPO -number NUMBER -body BODY [-show] +``` + +### 关闭PR + +```text +oegitext pull -cmd close -user USER -repo REPO -number NUMBER [-show] +``` + +### 打开PR + +```text +oegitext pull -cmd open -user USER -repo REPO -number NUMBER [-show] +``` + +### review PR + +```text +oegitext pull -cmd review -user USER -repo REPO -number NUMBER -state {pass,reset} [-show] +参数说明: + -state pass: 强制review通过 + reset: 重置review状态 +``` + +### test PR + +```text +oegitext pull -cmd test -user USER -repo REPO -number NUMBER -state {pass,reset} [-show] +参数说明: + -state pass: 强制测试通过 + reset: 重置测试状态 +``` + +### merge PR + +```text +oegitext pull -cmd merge -user USER -repo REPO -number NUMBER [-show] +``` diff --git a/oeGitExt-0.0.1.tar.gz b/oeGitExt-0.0.1.tar.gz deleted file mode 100644 index 50d1639e10dd2ec4ec0631c0fdd4b0e5e767ffac..0000000000000000000000000000000000000000 Binary files a/oeGitExt-0.0.1.tar.gz and /dev/null differ diff --git a/oeGitExt-0.0.2.tar.gz b/oeGitExt-0.0.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c45045f898c60827282f0599d642d89464c6baab Binary files /dev/null and b/oeGitExt-0.0.2.tar.gz differ diff --git a/oeGitExt.spec b/oeGitExt.spec index d2dd6affc74b2829a8ac046b8bd173fc957be9b8..12ce5f66fe8771d9c5f94955442e1bd56d5a0714 100644 --- a/oeGitExt.spec +++ b/oeGitExt.spec @@ -1,8 +1,8 @@ %define debug_package %{nil} Name: oegitext -Version: 0.0.1 -Release: 4 +Version: 0.0.2 +Release: 1 License: MulanPSL-2.0 Group: Development/Tools Summary: oeGitExt is used to help developers leverage the openEuler community infrastructure. @@ -49,6 +49,9 @@ ln -sf %{_datadir}/%{name}/_internal/src %{_datadir}/%{name}/src %changelog +* Fri May 30 2025 wangkui - 0.0.2-1 +- add docs + * Thu May 15 2025 Liu Wang <1823363429@qq.com> - 0.0.1-4 - update release to 0.0.1-4