# GitCode CLI
基于OpenMind SDK的GitCode平台模型文件上传下载CLI工具
## 简介
GitCode CLI 是一个命令行工具,用于与GitCode平台交互,支持模型和数据集的上传、下载等操作。工具基于OpenMind Hub SDK开发,并配置为连接GitCode API端点。
## 功能特性
- 🔐 用户认证和登录管理
- 📁 支持模型和数据集仓库创建
- ⬆️ 文件和目录批量上传
- ⬇️ 仓库内容下载
- 🎨 彩色终端输出
- 📊 上传下载进度显示
- 🔧 配置文件管理
## 安装
### 从源码安装
```bash
git clone https://gitcode.com/gitcode-ai/gitcode_cli.git
cd gitcode_cli
pip install -e .
```
### 使用pip安装(如果已发布)
```bash
pip install gitcode
```
## 使用方法
### 1. 登录
首先需要登录到GitCode平台:
```bash
gitcode login
```
系统会提示输入访问令牌(从GitCode平台获取)。
### 2. 上传文件
#### 上传模型
```bash
gitcode upload ./your-model-dir --repo-id your-username/your-model-name
```
#### 上传数据集
```bash
gitcode upload ./your-dataset-dir --repo-id your-username/your-dataset-name
```
#### 上传单个文件
```bash
gitcode upload ./model.bin --repo-id your-username/your-model-name
```
### 3. 下载文件
#### 下载到当前目录
```bash
gitcode download your-username/your-model-name
```
#### 下载到指定目录
```bash
gitcode download your-username/your-model-name -d ./models/
```
### 4. 其他命令
#### 退出登录
```bash
gitcode logout
```
#### 显示配置信息
```bash
gitcode config-show
```
## 配置文件
配置文件保存在 `~/.gitcode/config.json`,包含用户认证信息和其他设置。
## API端点配置
工具已预配置为连接GitCode平台API端点:
- **API端点**:`https://api.gitcode.com`
- **环境变量**:`OPENMIND_HUB_ENDPOINT=https://api.gitcode.com`
此配置在程序启动时自动设置,用户无需手动配置。
## 错误处理
- 如果遇到网络错误,工具会自动重试
- 上传大文件时会显示进度条
- 所有操作都有详细的错误信息提示
## 支持的文件类型
- 支持所有文件类型的上传和下载
- 自动处理目录结构
- 支持大文件传输
## 开发
### 项目结构
```
gitcode/
├── __init__.py # 包初始化
├── __main__.py # 主入口
├── cli.py # CLI命令定义
├── api.py # OpenMind API客户端
├── config.py # 配置管理
├── utils.py # 工具函数
├── requirements.txt # 依赖包
├── setup.py # 包安装配置
└── README.md # 说明文档
```
### 本地开发
```bash
# 克隆项目
git clone https://gitcode.com/gitcode-ai/gitcode_cli.git
cd gitcode
# 安装依赖
pip install -r requirements.txt
# 开发模式安装
pip install -e .
# 运行测试
python -m pytest tests/
```
## 许可证
MIT License
## 贡献
欢迎提交Issue和Pull Request!
## 联系我们
- 邮箱:support@gitcode.com
- 项目地址:https://gitcode.com/gitcode-ai/gitcode_cli
- 问题报告:https://gitcode.com/gitcode-ai/gitcode_cli/issues
Raw data
{
"_id": null,
"home_page": "https://gitcode.com/gitcode-ai/gitcode_cli",
"name": "gitcode",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "openmind model dataset upload download cli",
"author": "GitCode CLI Team",
"author_email": "sa@gitcode.com",
"download_url": "https://files.pythonhosted.org/packages/67/b5/8efa12a50392cab395fcb34604637736c95ed6c363eb554eecb348e09d00/gitcode-1.1.3.tar.gz",
"platform": null,
"description": "# GitCode CLI\n\n\u57fa\u4e8eOpenMind SDK\u7684GitCode\u5e73\u53f0\u6a21\u578b\u6587\u4ef6\u4e0a\u4f20\u4e0b\u8f7dCLI\u5de5\u5177\n\n## \u7b80\u4ecb\n\nGitCode CLI \u662f\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u7528\u4e8e\u4e0eGitCode\u5e73\u53f0\u4ea4\u4e92\uff0c\u652f\u6301\u6a21\u578b\u548c\u6570\u636e\u96c6\u7684\u4e0a\u4f20\u3001\u4e0b\u8f7d\u7b49\u64cd\u4f5c\u3002\u5de5\u5177\u57fa\u4e8eOpenMind Hub SDK\u5f00\u53d1\uff0c\u5e76\u914d\u7f6e\u4e3a\u8fde\u63a5GitCode API\u7aef\u70b9\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n- \ud83d\udd10 \u7528\u6237\u8ba4\u8bc1\u548c\u767b\u5f55\u7ba1\u7406\n- \ud83d\udcc1 \u652f\u6301\u6a21\u578b\u548c\u6570\u636e\u96c6\u4ed3\u5e93\u521b\u5efa\n- \u2b06\ufe0f \u6587\u4ef6\u548c\u76ee\u5f55\u6279\u91cf\u4e0a\u4f20\n- \u2b07\ufe0f \u4ed3\u5e93\u5185\u5bb9\u4e0b\u8f7d\n- \ud83c\udfa8 \u5f69\u8272\u7ec8\u7aef\u8f93\u51fa\n- \ud83d\udcca \u4e0a\u4f20\u4e0b\u8f7d\u8fdb\u5ea6\u663e\u793a\n- \ud83d\udd27 \u914d\u7f6e\u6587\u4ef6\u7ba1\u7406\n\n## \u5b89\u88c5\n\n### \u4ece\u6e90\u7801\u5b89\u88c5\n\n```bash\ngit clone https://gitcode.com/gitcode-ai/gitcode_cli.git\ncd gitcode_cli\npip install -e .\n```\n\n### \u4f7f\u7528pip\u5b89\u88c5\uff08\u5982\u679c\u5df2\u53d1\u5e03\uff09\n\n```bash\npip install gitcode\n```\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n### 1. \u767b\u5f55\n\n\u9996\u5148\u9700\u8981\u767b\u5f55\u5230GitCode\u5e73\u53f0\uff1a\n\n```bash\ngitcode login\n```\n\n\u7cfb\u7edf\u4f1a\u63d0\u793a\u8f93\u5165\u8bbf\u95ee\u4ee4\u724c\uff08\u4eceGitCode\u5e73\u53f0\u83b7\u53d6\uff09\u3002\n\n\n\n\n### 2. \u4e0a\u4f20\u6587\u4ef6\n\n#### \u4e0a\u4f20\u6a21\u578b\n\n```bash\ngitcode upload ./your-model-dir --repo-id your-username/your-model-name\n```\n\n#### \u4e0a\u4f20\u6570\u636e\u96c6\n\n```bash\ngitcode upload ./your-dataset-dir --repo-id your-username/your-dataset-name\n```\n\n#### \u4e0a\u4f20\u5355\u4e2a\u6587\u4ef6\n\n```bash\ngitcode upload ./model.bin --repo-id your-username/your-model-name\n```\n\n### 3. \u4e0b\u8f7d\u6587\u4ef6\n\n#### \u4e0b\u8f7d\u5230\u5f53\u524d\u76ee\u5f55\n\n```bash\ngitcode download your-username/your-model-name\n```\n\n#### \u4e0b\u8f7d\u5230\u6307\u5b9a\u76ee\u5f55\n\n```bash\ngitcode download your-username/your-model-name -d ./models/\n```\n\n### 4. \u5176\u4ed6\u547d\u4ee4\n\n#### \u9000\u51fa\u767b\u5f55\n\n```bash\ngitcode logout\n```\n\n#### \u663e\u793a\u914d\u7f6e\u4fe1\u606f\n\n```bash\ngitcode config-show\n```\n\n## \u914d\u7f6e\u6587\u4ef6\n\n\u914d\u7f6e\u6587\u4ef6\u4fdd\u5b58\u5728 `~/.gitcode/config.json`\uff0c\u5305\u542b\u7528\u6237\u8ba4\u8bc1\u4fe1\u606f\u548c\u5176\u4ed6\u8bbe\u7f6e\u3002\n\n## API\u7aef\u70b9\u914d\u7f6e\n\n\u5de5\u5177\u5df2\u9884\u914d\u7f6e\u4e3a\u8fde\u63a5GitCode\u5e73\u53f0API\u7aef\u70b9\uff1a\n- **API\u7aef\u70b9**\uff1a`https://api.gitcode.com`\n- **\u73af\u5883\u53d8\u91cf**\uff1a`OPENMIND_HUB_ENDPOINT=https://api.gitcode.com`\n\n\u6b64\u914d\u7f6e\u5728\u7a0b\u5e8f\u542f\u52a8\u65f6\u81ea\u52a8\u8bbe\u7f6e\uff0c\u7528\u6237\u65e0\u9700\u624b\u52a8\u914d\u7f6e\u3002\n\n## \u9519\u8bef\u5904\u7406\n\n- \u5982\u679c\u9047\u5230\u7f51\u7edc\u9519\u8bef\uff0c\u5de5\u5177\u4f1a\u81ea\u52a8\u91cd\u8bd5\n- \u4e0a\u4f20\u5927\u6587\u4ef6\u65f6\u4f1a\u663e\u793a\u8fdb\u5ea6\u6761\n- \u6240\u6709\u64cd\u4f5c\u90fd\u6709\u8be6\u7ec6\u7684\u9519\u8bef\u4fe1\u606f\u63d0\u793a\n\n## \u652f\u6301\u7684\u6587\u4ef6\u7c7b\u578b\n\n- \u652f\u6301\u6240\u6709\u6587\u4ef6\u7c7b\u578b\u7684\u4e0a\u4f20\u548c\u4e0b\u8f7d\n- \u81ea\u52a8\u5904\u7406\u76ee\u5f55\u7ed3\u6784\n- \u652f\u6301\u5927\u6587\u4ef6\u4f20\u8f93\n\n## \u5f00\u53d1\n\n### \u9879\u76ee\u7ed3\u6784\n\n```\ngitcode/\n\u251c\u2500\u2500 __init__.py # \u5305\u521d\u59cb\u5316\n\u251c\u2500\u2500 __main__.py # \u4e3b\u5165\u53e3\n\u251c\u2500\u2500 cli.py # CLI\u547d\u4ee4\u5b9a\u4e49\n\u251c\u2500\u2500 api.py # OpenMind API\u5ba2\u6237\u7aef\n\u251c\u2500\u2500 config.py # \u914d\u7f6e\u7ba1\u7406\n\u251c\u2500\u2500 utils.py # \u5de5\u5177\u51fd\u6570\n\u251c\u2500\u2500 requirements.txt # \u4f9d\u8d56\u5305\n\u251c\u2500\u2500 setup.py # \u5305\u5b89\u88c5\u914d\u7f6e\n\u2514\u2500\u2500 README.md # \u8bf4\u660e\u6587\u6863\n```\n\n### \u672c\u5730\u5f00\u53d1\n\n```bash\n# \u514b\u9686\u9879\u76ee\ngit clone https://gitcode.com/gitcode-ai/gitcode_cli.git\ncd gitcode\n\n# \u5b89\u88c5\u4f9d\u8d56\npip install -r requirements.txt\n\n# \u5f00\u53d1\u6a21\u5f0f\u5b89\u88c5\npip install -e .\n\n# \u8fd0\u884c\u6d4b\u8bd5\npython -m pytest tests/\n```\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\n\n## \u8054\u7cfb\u6211\u4eec\n\n- \u90ae\u7bb1\uff1asupport@gitcode.com\n- \u9879\u76ee\u5730\u5740\uff1ahttps://gitcode.com/gitcode-ai/gitcode_cli\n- \u95ee\u9898\u62a5\u544a\uff1ahttps://gitcode.com/gitcode-ai/gitcode_cli/issues \n",
"bugtrack_url": null,
"license": null,
"summary": "GitCode\u6a21\u578b\u6587\u4ef6\u4e0a\u4f20\u4e0b\u8f7dCLI\u5de5\u5177",
"version": "1.1.3",
"project_urls": {
"Bug Reports": "https://gitcode.com/gitcode-ai/gitcode_cli/issues",
"Homepage": "https://gitcode.com/gitcode-ai/gitcode_cli",
"Source": "https://gitcode.com/gitcode-ai/gitcode_cli"
},
"split_keywords": [
"openmind",
"model",
"dataset",
"upload",
"download",
"cli"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "2c07e91dd05a7391fb56d74ed8822f9aca35a490fe63e648dac01ec8129817f2",
"md5": "a2deab06c478f90bc13e249ccc698169",
"sha256": "bd71400a647c629fcda8ea93869d5a735ae327c5a53c770ba44507509a739e0e"
},
"downloads": -1,
"filename": "gitcode-1.1.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a2deab06c478f90bc13e249ccc698169",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 12487,
"upload_time": "2025-07-10T12:40:58",
"upload_time_iso_8601": "2025-07-10T12:40:58.714917Z",
"url": "https://files.pythonhosted.org/packages/2c/07/e91dd05a7391fb56d74ed8822f9aca35a490fe63e648dac01ec8129817f2/gitcode-1.1.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "67b58efa12a50392cab395fcb34604637736c95ed6c363eb554eecb348e09d00",
"md5": "5bcc97d396bd4413444feea582f1c11a",
"sha256": "5e85afc7503cd7cad954ddc66bf7a79931c63b70cda26037626b7d47608bd919"
},
"downloads": -1,
"filename": "gitcode-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "5bcc97d396bd4413444feea582f1c11a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 12141,
"upload_time": "2025-07-10T12:41:00",
"upload_time_iso_8601": "2025-07-10T12:41:00.000470Z",
"url": "https://files.pythonhosted.org/packages/67/b5/8efa12a50392cab395fcb34604637736c95ed6c363eb554eecb348e09d00/gitcode-1.1.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-10 12:41:00",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "gitcode"
}