跳转至

仓库

仓库用于存放代码、模型、数据集等内容。通过 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