仓库¶
仓库用于存放代码、模型、数据集等内容。通过 API 可以创建、更新、转移和归档仓库,读写文件,Fork 仓库并与源仓库同步,配置仓库设置与成员权限,并查看贡献者、动态和下载统计。
分支、标签、提交、Release、Webhook 有独立的分组,本页不重复列出。
对象¶
| 对象 | 说明 | 相关接口 |
|---|---|---|
| 仓库 | 名称、描述、路径、可见性、默认分支等基本信息 | 更新仓库设置 |
| 文件 | 仓库中的文件与目录,可读取、新建、更新、删除 | 获取仓库具体路径下的内容 |
| Blob | 文件内容对象,按 SHA 读取 | 获取文件Blob |
| 目录树 | 按分支、提交或树 SHA 递归获取目录结构 | 获取仓库目录Tree |
| Fork | 仓库的派生副本,可与源仓库同步 | Fork仓库 |
| 设置 | 仓库设置、Pull Request 设置、推送规则、权限模式、项目模块 | 获取仓库设置 |
| 成员与角色 | 成员权限级别与自定义角色 | 更新项目成员角色 |
| CLA | 贡献者许可协议的查看与配置 | 获取仓库CLA列表 |
| Star / Watch | 收藏与关注仓库的用户 | 列出 star 了仓库的用户 |
| 统计 | 语言分布、贡献者、贡献者统计、下载次数 | 获取仓库的语言 |
| 远程镜像 | 推送远程镜像与远程镜像配置 | 查询仓库推送远程镜像列表 |
| 许可协议 | 仓库的 LICENSE 文件与 SPDX 信息 | 获取仓库许可协议 |
标识方式¶
- 仓库用路径参数
owner和repo标识:owner是仓库所属空间地址(企业、组织或个人的 path),repo是仓库路径。 - 文件用路径参数
path标识,即文件在仓库中的路径。 - 更新文件、删除文件时需要文件当前的 Blob SHA,可通过 获取仓库具体路径下的内容 拿到。
- 归档、转移等少数接口用
org+repo或org+projects标识,路径不以/repos/开头。
常见任务¶
注意事项¶
- 归档、转移有一组接口的路径以
/org/开头,与其他/repos/{owner}/{repo}/…接口不同:归档是PUT /api/v5/org/{org}/repo/{repo}/status,转移另有POST /api/v5/org/{org}/projects/{repo}/transfer,而POST /api/v5/repos/{owner}/{repo}/transfer是另一种转移入口,调用前先确认目标空间类型。 - 「更新仓库设置」有两个不同接口,按用途区分:
PATCH /api/v5/repos/{owner}/{repo}改名称、描述、默认分支、可见性等基本信息;PUT /api/v5/repos/{owner}/{repo}/repo_settings改仓库设置项。 - 新建与更新文件时
content需使用 Base64 编码;更新和删除还要带原文件的 Blob SHA,否则会冲突。 - 上传附件(
POST /api/v5/repos/*/*/file/upload)大小上限为 20M,路径里用*占位而不是{owner}/{repo}。 - 上传图片与上传附件是两个不同接口,返回值分别用于页面插图与附件下载,别混用。
接口列表¶
本模块共 44 个接口。
| # | 接口 | 方法与路径 | 说明 |
|---|---|---|---|
| 1 | 创建仓库 | POST /api/v5/orgs/{org}/repos |
该接口用于在指定组织下创建新仓库,支持代码、模型、数据集等多种仓库类型,可设置公开或私有可见性,并支持配置默认分支、… |
| 2 | 获取仓库目录Tree | GET /api/v5/repos/{owner}/{repo}/git/trees/{sha} |
该接口用于获取指定仓库的目录文件树信息,可按分支名、提交或目录树SHA定位版本,支持递归获取子目录,并以分页方式查看… |
| 3 | 获取仓库具体路径下的内容 | GET /api/v5/repos/{owner}/{repo}/contents/{path} |
该接口用于获取仓库指定路径下的文件内容或目录条目信息,返回文件类型、大小、内容编码及 SHA 值,并提供对应的 AP… |
| 4 | 新建文件 | POST /api/v5/repos/{owner}/{repo}/contents/{path} |
该接口用于在指定仓库中新建文件,请求时需提供 base64 编码的文件内容与提交说明,并可选择指定提交分支及提交者信… |
| 5 | 更新文件 | PUT /api/v5/repos/{owner}/{repo}/contents/{path} |
该接口用于更新指定仓库中指定路径的文件内容,需提供 base64 编码的新文件内容、原文件 Blob SHA 及提交… |
| 6 | 删除文件 | DELETE /api/v5/repos/{owner}/{repo}/contents/{path} |
该接口用于删除仓库中指定分支上的文件,通过指定文件路径及其 Blob SHA 确认目标文件,删除操作将自动生成对应的… |
| 7 | 获取文件列表 | GET /api/v5/repos/{owner}/{repo}/file_list |
该接口用于获取指定仓库下的文件列表,可通过分支、标签或提交信息定位文件版本,并支持按文件名查找,响应返回仓库中所有文… |
| 8 | 获取文件Blob | GET /api/v5/repos/{owner}/{repo}/git/blobs/{sha} |
该接口用于根据指定的仓库及文件 Blob SHA 获取对应的文件 Blob 内容,返回文件的内容大小、资源访问地址、… |
| 9 | 获取仓库的语言 | GET /api/v5/repos/{owner}/{repo}/languages |
该接口用于获取指定仓库的语言分布情况,返回以语言名称为键、该语言在仓库代码中所占百分比为值的映射,帮助用户了解仓库中… |
| 10 | 获取仓库贡献者 | GET /api/v5/repos/{owner}/{repo}/contributors |
查询指定仓库的贡献者信息,返回贡献者名称、贡献次数与邮箱,支持按提交者(committers)或作者(authors… |
| 11 | 设置项目模块 | PUT /api/v5/repos/{owner}/{repo}/module/setting |
该接口用于设置指定仓库的项目模块,可分别开启或关闭 wiki、issue、安全配置、merge request、fo… |
| 12 | 更新仓库设置 | PATCH /api/v5/repos/{owner}/{repo} |
该接口用于更新指定仓库的设置,支持修改仓库名称、描述、主页地址、仓库路径、公开或私有状态、默认分支、是否启用 LFS… |
| 13 | 删除仓库 | DELETE /api/v5/repos/{owner}/{repo} |
该接口用于删除指定仓库。通过仓库所属空间地址与仓库路径定位目标仓库,删除成功后返回空对象;若仓库不存在则返回相应的错… |
| 14 | 修改项目代码审查设置 | PUT /api/v5/repos/{owner}/{repo}/reviewer |
用户调用此接口,进行修改项目代码审查设置操作. |
| 15 | 仓库归档 | PUT /api/v5/org/{org}/repo/{repo}/status |
该接口用于更新指定仓库的归档状态,通过设置仓库状态为已归档或取消归档,实现对仓库的归档与恢复管理。 |
| 16 | 转移仓 | POST /api/v5/org/{org}/projects/{repo}/transfer |
该接口用于将指定仓库转移至目标组织,从而完成仓库所属组织的变更,转移成功后仓库将归目标组织管理。 |
| 17 | 获取项目的权限模式 | GET /api/v5/repos/{owner}/{repo}/transition |
用户调用此接口,进行获取项目的权限模式操作. |
| 18 | 更新仓库的权限模式 | PUT /api/v5/repos/{owner}/{repo}/transition |
用户调用此接口,进行更新仓库的权限模式操作. |
| 19 | 设置项目推送规则 | PUT /api/v5/repos/{owner}/{repo}/push_config |
用户调用此接口,进行设置项目推送规则操作. |
| 20 | 获取项目推送规则 | GET /api/v5/repos/{owner}/{repo}/push_config |
用户调用此接口,进行获取项目推送规则操作. |
| 21 | Fork仓库 | POST /api/v5/repos/{owner}/{repo}/forks |
该接口用于将指定仓库复制(Fork)到目标空间,可指定组织空间、新仓库名称及路径,未指定时默认复制到用户个人空间并沿… |
| 22 | 查看仓库的Forks | GET /api/v5/repos/{owner}/{repo}/forks |
该接口用于查看指定仓库的所有 Fork(分叉)仓库列表,通过仓库所属空间地址和仓库路径进行查询,支持按 Fork 时… |
| 23 | 上传图片 | POST /api/v5/repos/{owner}/{repo}/img/upload |
该接口用于将图片上传至指定仓库,请求时在请求体中提交以 base64 编码的图片文件内容及文件名,上传成功后返回图片… |
| 24 | 上传文件 | POST /api/v5/repos/*/*/file/upload |
该接口用于将附件文件上传至指定仓库,文件大小限制为20M。上传成功后返回文件的相对路径与完整访问地址,用于后续访问或… |
| 25 | 列出 watch 了仓库的用户 | GET /api/v5/repos/{owner}/{repo}/subscribers |
用户调用此接口,进行列出 watch 了仓库的用户操作. |
| 26 | 列出 star 了仓库的用户 | GET /api/v5/repos/{owner}/{repo}/stargazers |
用户调用此接口,进行列出 star 了仓库的用户操作. |
| 27 | 更新仓库设置 | PUT /api/v5/repos/{owner}/{repo}/repo_settings |
用户调用此接口,进行更新仓库设置操作. |
| 28 | 获取仓库设置 | GET /api/v5/repos/{owner}/{repo}/repo_settings |
用户调用此接口,进行获取仓库设置操作. |
| 29 | 获取 Pull Request设置 | GET /api/v5/repos/{owner}/{repo}/pull_request_settings |
该接口用于获取指定仓库的 Pull Request 设置详情,包括合并模式、评审与审批要求、Squash 合并选项、… |
| 30 | 更新 Pull Request设置 | PUT /api/v5/repos/{owner}/{repo}/pull_request_settings |
该接口用于更新指定仓库的 Pull Request 设置,可配置合并方式、评审与审批人数、流水线与讨论合入条件、Sq… |
| 31 | 更新项目成员角色 | PUT /api/v5/repos/{owner}/{repo}/members/{username} |
该接口用于更新指定仓库中指定成员的角色权限,通过设置参与者、开发者、维护者或自定义角色等权限级别来调整成员在仓库中的… |
| 32 | 仓库转移 | POST /api/v5/repos/{owner}/{repo}/transfer |
用户调用此接口,进行仓库转移操作. |
| 33 | 获取项目自定义角色 | GET /api/v5/repos/{owner}/{repo}/customized_roles |
该接口用于获取指定仓库(项目)下的自定义角色列表,返回包含角色名称、权限级别、成员数量、创建时间及更新时间等信息的角… |
| 34 | 下载次数统计 | GET /api/v5/repos/{owner}/{repo}/download_statistics |
该接口用于查询指定仓库在指定时间范围内的下载次数统计,支持设置统计起止日期和排序方式,返回每日下载次数明细、统计周期… |
| 35 | 获取 raw 文件 | GET /api/v5/repos/{owner}/{repo}/raw/{path} |
用户调用此接口,进行获取 raw 文件操作. |
| 36 | 获取仓库贡献者统计信息 | GET /api/v5/repos/{owner}/{repo}/contributors/statistic |
该接口用于获取指定仓库的贡献者统计信息,返回每位贡献者的新增行数、删除行数、变更总数和提交次数等汇总数据,以及按日期… |
| 37 | 获取仓库动态 | GET /api/v5/repos/{owner}/{repo}/events |
该接口用于获取指定仓库的动态(事件)列表,支持按事件类型、触发人及日期范围进行筛选,并支持分页返回事件详情信息。 |
| 38 | 查询Fork仓同步状态 | GET /api/v5/repos/{owner}/{repo}/sync_repo |
用户调用此接口,进行查询Fork仓同步状态操作. |
| 39 | Fork仓同步源仓库 | PUT /api/v5/repos/{owner}/{repo}/sync_repo |
用户调用此接口,进行Fork仓同步源仓库操作. |
| 40 | 查询仓库推送远程镜像列表 | GET /api/v5/repos/{owner}/{repo}/push_remote_mirrors |
用户调用此接口,进行查询仓库推送远程镜像列表操作. |
| 41 | 获取仓库许可协议 | GET /api/v5/repos/{owner}/{repo}/license |
该接口用于获取指定仓库的许可协议,返回协议文件的名称、路径、大小、访问地址、文件内容及编码方式,并附带许可协议的SP… |
| 42 | 获取仓库CLA列表 | GET /api/v5/repos/{owner}/{repo}/clas |
该接口用于获取指定仓库的CLA(贡献者许可协议)列表,返回仓库已配置的贡献者许可协议信息,包含每份协议的名称及编号等… |
| 43 | 配置项目 CLA | PUT /api/v5/repos/{owner}/{repo}/cla |
该接口用于配置项目 CLA:传入 cla_id 可启用并选择指定的 CLA,不传则关闭项目 CLA 配置;同时支持设… |
| 44 | 获取仓库的远程镜像配置信息 | GET /api/v5/repos/{owner}/{repo}/repo_remote_mirror |
用户调用此接口,进行获取仓库的远程镜像配置信息操作. |
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 gitcode-dev/atomgit-api-doc