gitcode


Namegitcode JSON
Version 1.1.4 PyPI version JSON
download
home_pagehttps://gitcode.com/gitcode-ai/gitcode_cli
SummaryGitCode模型文件上传下载CLI工具
upload_time2025-07-23 06:08:00
maintainerNone
docs_urlNone
authorGitCode CLI Team
requires_python>=3.8
licenseNone
keywords openmind model dataset upload download cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # GitCode CLI

基于OpenMind SDK的GitCode平台模型文件上传下载CLI工具

## 简介

GitCode CLI 是一个命令行工具,用于与GitCode平台交互,支持模型和数据集的上传、下载等操作。工具基于OpenMind Hub SDK开发,并配置为连接GitCode API端点。

## 功能特性

- 🔐 用户认证和登录管理
- 🔗 **Git集成**:自动配置Git凭证,支持标准Git命令
- 📁 支持模型和数据集仓库创建
- ⬆️ 文件和目录批量上传
- ⬇️ 仓库内容下载
- 🎨 彩色终端输出
- 📊 上传下载进度显示
- 🔧 配置文件管理

## 系统要求

- **Python 3.8+** (推荐Python 3.11+)
- 支持的操作系统:Windows, macOS, Linux

## 安装

### 从源码安装

```bash
git clone https://gitcode.com/gitcode-ai/gitcode_cli.git
cd gitcode_cli
pip install -e .
```

### 使用pip安装(如果已发布)

```bash
pip install gitcode
```

### 虚拟环境推荐

```bash
# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
source venv/bin/activate  # Linux/macOS
# 或
venv\Scripts\activate     # Windows

# 安装依赖
pip install -r requirements.txt
```

## 使用方法

### 1. 登录

首先需要登录到GitCode平台:

```bash
gitcode login
```

系统会提示输入访问令牌(从GitCode平台获取)。

**🎉 Git集成功能**:登录成功后,工具会自动配置Git凭证助手,这样你就可以直接使用标准的Git命令来操作GitCode仓库,无需再次输入token。凭证助手会自动从GitCode API获取你的真实用户名用于Git认证:

```bash
# 登录后,这些Git命令将自动使用保存的token
# 支持两种域名格式
git clone https://gitcode.com/username/repo-name.git
git clone https://hub.gitcode.com/username/repo-name.git
git push origin main
git pull origin main
```




### 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://hub.gitcode.com`
- **环境变量**:`OPENMIND_HUB_ENDPOINT=https://hub.gitcode.com`

此配置在程序启动时自动设置,用户无需手动配置。

## Git集成功能详解

### 自动配置

当你使用 `gitcode login` 登录成功后,工具会自动配置Git凭证,让你可以直接使用标准Git命令操作GitCode仓库。

### 支持的Git操作

登录后,你可以直接使用以下Git命令,无需手动输入token:

```bash
# 克隆仓库(支持两种域名格式)
git clone https://gitcode.com/username/repo-name.git
git clone https://hub.gitcode.com/username/repo-name.git

# 推送代码
git push origin main

# 拉取更新
git pull origin main

# 添加远程仓库
git remote add origin https://gitcode.com/username/repo-name.git
```

### 安全性

- 凭证配置仅对 `gitcode.com` 和 `hub.gitcode.com` 域名生效
- token 安全存储在本地配置文件中
- 不影响其他Git仓库的认证配置
- `gitcode logout` 时自动清除凭证配置

### 注意事项

- 支持的URL格式:`https://gitcode.com/...` 或 `https://hub.gitcode.com/...`
- 如果Git命令仍需要输入密码,请重新登录:`gitcode logout` 然后 `gitcode login`

## 错误处理

- 如果遇到网络错误,工具会自动重试
- 上传大文件时会显示进度条
- 所有操作都有详细的错误信息提示

## 支持的文件类型

- 支持所有文件类型的上传和下载
- 自动处理目录结构
- 支持大文件传输

## 开发

### 项目结构

```
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_cli

# 安装依赖
pip install -r requirements.txt

# 开发模式安装
pip install -e .

# 运行测试
python -m pytest tests/
```

## Python版本兼容性

本项目支持Python 3.8+版本,包括:

- ✅ Python 3.8
- ✅ Python 3.9  
- ✅ Python 3.10
- ✅ Python 3.11
- ✅ Python 3.12
- ✅ Python 3.13

### 兼容性测试

运行兼容性测试:

```bash
python test_compatibility.py
```

详细兼容性信息请参考 [PYTHON_COMPATIBILITY.md](PYTHON_COMPATIBILITY.md)

## 许可证

MIT License

## 贡献

欢迎提交Issue和Pull Request!

### 贡献指南

在贡献代码时,请确保:

1. 代码兼容Python 3.8+
2. 运行兼容性测试
3. 更新相关文档

## 联系我们

- 邮箱: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.8",
    "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/3b/12/5ab4724dbf09f4f8b6e986fb3b4e96f7cc429652b43c63b96014763f1479/gitcode-1.1.4.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\udd17 **Git\u96c6\u6210**\uff1a\u81ea\u52a8\u914d\u7f6eGit\u51ed\u8bc1\uff0c\u652f\u6301\u6807\u51c6Git\u547d\u4ee4\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## \u7cfb\u7edf\u8981\u6c42\n\n- **Python 3.8+** (\u63a8\u8350Python 3.11+)\n- \u652f\u6301\u7684\u64cd\u4f5c\u7cfb\u7edf\uff1aWindows, macOS, Linux\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### \u865a\u62df\u73af\u5883\u63a8\u8350\n\n```bash\n# \u521b\u5efa\u865a\u62df\u73af\u5883\npython -m venv venv\n\n# \u6fc0\u6d3b\u865a\u62df\u73af\u5883\nsource venv/bin/activate  # Linux/macOS\n# \u6216\nvenv\\Scripts\\activate     # Windows\n\n# \u5b89\u88c5\u4f9d\u8d56\npip install -r requirements.txt\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**\ud83c\udf89 Git\u96c6\u6210\u529f\u80fd**\uff1a\u767b\u5f55\u6210\u529f\u540e\uff0c\u5de5\u5177\u4f1a\u81ea\u52a8\u914d\u7f6eGit\u51ed\u8bc1\u52a9\u624b\uff0c\u8fd9\u6837\u4f60\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u6807\u51c6\u7684Git\u547d\u4ee4\u6765\u64cd\u4f5cGitCode\u4ed3\u5e93\uff0c\u65e0\u9700\u518d\u6b21\u8f93\u5165token\u3002\u51ed\u8bc1\u52a9\u624b\u4f1a\u81ea\u52a8\u4eceGitCode API\u83b7\u53d6\u4f60\u7684\u771f\u5b9e\u7528\u6237\u540d\u7528\u4e8eGit\u8ba4\u8bc1\uff1a\n\n```bash\n# \u767b\u5f55\u540e\uff0c\u8fd9\u4e9bGit\u547d\u4ee4\u5c06\u81ea\u52a8\u4f7f\u7528\u4fdd\u5b58\u7684token\n# \u652f\u6301\u4e24\u79cd\u57df\u540d\u683c\u5f0f\ngit clone https://gitcode.com/username/repo-name.git\ngit clone https://hub.gitcode.com/username/repo-name.git\ngit push origin main\ngit pull origin main\n```\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\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://hub.gitcode.com`\n- **\u73af\u5883\u53d8\u91cf**\uff1a`OPENMIND_HUB_ENDPOINT=https://hub.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## Git\u96c6\u6210\u529f\u80fd\u8be6\u89e3\n\n### \u81ea\u52a8\u914d\u7f6e\n\n\u5f53\u4f60\u4f7f\u7528 `gitcode login` \u767b\u5f55\u6210\u529f\u540e\uff0c\u5de5\u5177\u4f1a\u81ea\u52a8\u914d\u7f6eGit\u51ed\u8bc1\uff0c\u8ba9\u4f60\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u6807\u51c6Git\u547d\u4ee4\u64cd\u4f5cGitCode\u4ed3\u5e93\u3002\n\n### \u652f\u6301\u7684Git\u64cd\u4f5c\n\n\u767b\u5f55\u540e\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u4ee5\u4e0bGit\u547d\u4ee4\uff0c\u65e0\u9700\u624b\u52a8\u8f93\u5165token\uff1a\n\n```bash\n# \u514b\u9686\u4ed3\u5e93\uff08\u652f\u6301\u4e24\u79cd\u57df\u540d\u683c\u5f0f\uff09\ngit clone https://gitcode.com/username/repo-name.git\ngit clone https://hub.gitcode.com/username/repo-name.git\n\n# \u63a8\u9001\u4ee3\u7801\ngit push origin main\n\n# \u62c9\u53d6\u66f4\u65b0\ngit pull origin main\n\n# \u6dfb\u52a0\u8fdc\u7a0b\u4ed3\u5e93\ngit remote add origin https://gitcode.com/username/repo-name.git\n```\n\n### \u5b89\u5168\u6027\n\n- \u51ed\u8bc1\u914d\u7f6e\u4ec5\u5bf9 `gitcode.com` \u548c `hub.gitcode.com` \u57df\u540d\u751f\u6548\n- token \u5b89\u5168\u5b58\u50a8\u5728\u672c\u5730\u914d\u7f6e\u6587\u4ef6\u4e2d\n- \u4e0d\u5f71\u54cd\u5176\u4ed6Git\u4ed3\u5e93\u7684\u8ba4\u8bc1\u914d\u7f6e\n- `gitcode logout` \u65f6\u81ea\u52a8\u6e05\u9664\u51ed\u8bc1\u914d\u7f6e\n\n### \u6ce8\u610f\u4e8b\u9879\n\n- \u652f\u6301\u7684URL\u683c\u5f0f\uff1a`https://gitcode.com/...` \u6216 `https://hub.gitcode.com/...`\n- \u5982\u679cGit\u547d\u4ee4\u4ecd\u9700\u8981\u8f93\u5165\u5bc6\u7801\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\uff1a`gitcode logout` \u7136\u540e `gitcode login`\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_cli\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## Python\u7248\u672c\u517c\u5bb9\u6027\n\n\u672c\u9879\u76ee\u652f\u6301Python 3.8+\u7248\u672c\uff0c\u5305\u62ec\uff1a\n\n- \u2705 Python 3.8\n- \u2705 Python 3.9  \n- \u2705 Python 3.10\n- \u2705 Python 3.11\n- \u2705 Python 3.12\n- \u2705 Python 3.13\n\n### \u517c\u5bb9\u6027\u6d4b\u8bd5\n\n\u8fd0\u884c\u517c\u5bb9\u6027\u6d4b\u8bd5\uff1a\n\n```bash\npython test_compatibility.py\n```\n\n\u8be6\u7ec6\u517c\u5bb9\u6027\u4fe1\u606f\u8bf7\u53c2\u8003 [PYTHON_COMPATIBILITY.md](PYTHON_COMPATIBILITY.md)\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\n\n### \u8d21\u732e\u6307\u5357\n\n\u5728\u8d21\u732e\u4ee3\u7801\u65f6\uff0c\u8bf7\u786e\u4fdd\uff1a\n\n1. \u4ee3\u7801\u517c\u5bb9Python 3.8+\n2. \u8fd0\u884c\u517c\u5bb9\u6027\u6d4b\u8bd5\n3. \u66f4\u65b0\u76f8\u5173\u6587\u6863\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.4",
    "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": "2913cdcc404b07339286277339a037e7fc2ed840efea155cb14719ee66f1c39b",
                "md5": "68beb8a1e64a7a6f70bdc45536fd3a44",
                "sha256": "e4cc536b32e67c03e0d5b77ea8451bdcb9e4b326e0abf58a6b9a7c6a0edb9b61"
            },
            "downloads": -1,
            "filename": "gitcode-1.1.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "68beb8a1e64a7a6f70bdc45536fd3a44",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15349,
            "upload_time": "2025-07-23T06:07:58",
            "upload_time_iso_8601": "2025-07-23T06:07:58.657633Z",
            "url": "https://files.pythonhosted.org/packages/29/13/cdcc404b07339286277339a037e7fc2ed840efea155cb14719ee66f1c39b/gitcode-1.1.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3b125ab4724dbf09f4f8b6e986fb3b4e96f7cc429652b43c63b96014763f1479",
                "md5": "de1d7cd38e22a3b8d8a59df6293a7b58",
                "sha256": "0cb0d46eae891e94205ef372ec9c7e2e373e07b2eb55422dadc0ef359aa4c8c6"
            },
            "downloads": -1,
            "filename": "gitcode-1.1.4.tar.gz",
            "has_sig": false,
            "md5_digest": "de1d7cd38e22a3b8d8a59df6293a7b58",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15585,
            "upload_time": "2025-07-23T06:08:00",
            "upload_time_iso_8601": "2025-07-23T06:08:00.132009Z",
            "url": "https://files.pythonhosted.org/packages/3b/12/5ab4724dbf09f4f8b6e986fb3b4e96f7cc429652b43c63b96014763f1479/gitcode-1.1.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 06:08:00",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "gitcode"
}
        
Elapsed time: 0.63500s