企业 Pull Request列表
GET /api/v5/enterprises/*/pull_requests
该接口用于查询指定企业(空间)下的 Pull Request 列表,支持按状态、作者、目标分支、标签、时间范围等条件筛选,并可对结果进行分页与排序,返回包含标题、分支信息、标签及合并人等详情的列表数据。
访问令牌支持说明
- AtomGit 用户访问令牌(AtomGit user access tokens)
是否允许匿名访问
此接口允许匿名访问
请求参数
| 参数名 |
位置 |
类型 |
必填 |
说明 |
enterprise |
path |
string |
是 |
企业的路径(path/login) |
state |
query |
string |
否 |
Pull Request 状态。枚举:all 所有;open 开启;closed 关闭;merged 合并 |
issue_number |
query |
integer |
否 |
Issue 全局 id |
sort |
query |
string |
否 |
排序字段。枚举:created 创建时间;updated 更新时间。默认按创建时间(created) |
direction |
query |
string |
否 |
排序方向。枚举:asc 升序;desc 降序 |
page |
query |
integer |
否 |
当前的页码,默认 1 |
per_page |
query |
integer |
否 |
每页的数量,最大为 100,默认 20 |
base |
query |
string |
否 |
目标分支 |
author |
query |
string |
否 |
Pull Request 作者 |
search |
query |
string |
否 |
根据 title、description 模糊查询 |
created_after |
query |
string |
否 |
返回在指定时间之后创建的合并请求,要求时间格式为 ISO 8601,例如:2024-11-20T13:00:21+08:00 |
created_before |
query |
string |
否 |
返回在指定时间之前创建的合并请求,要求时间格式为 ISO 8601,例如:2024-11-20T13:00:21+08:00 |
updated_before |
query |
string |
否 |
返回在指定时间之前更新的合并请求,要求时间格式为 ISO 8601,例如:2024-11-20T13:00:21+08:00 |
updated_after |
query |
string |
否 |
返回在指定时间之后更新的合并请求,要求时间格式为 ISO 8601,例如:2024-11-20T13:00:21+08:00 |
labels |
query |
string |
否 |
根据指定的 label 名称进行筛选,多个使用英文逗号相隔 |
scope |
query |
string |
否 |
筛选范围。枚举:all 所有;created_by_me 我创建的;assigned_to_me 分配给我的;need_my_approve 需要我审查的;need_my_review 需要我评审的 |
响应参数
| 字段 |
类型 |
必返 |
可为空 |
说明 |
id |
integer |
是 |
否 |
Pull Request id |
title |
string |
是 |
否 |
Pull Request 标题 |
url |
string |
是 |
否 |
Pull Request 的 API 访问地址 |
html_url |
string |
是 |
否 |
Pull Request 的页面访问地址 |
number |
integer |
是 |
否 |
Pull Request 编号 |
state |
string |
是 |
否 |
Pull Request 状态 |
assignees_number |
integer |
是 |
否 |
评审人数量 |
testers_number |
integer |
是 |
否 |
测试人员数量 |
assignees |
string[] |
是 |
否 |
评审人列表 |
head |
object |
是 |
否 |
源分支信息(变更来源分支) |
base |
object |
是 |
否 |
目标分支信息 |
created_at |
string |
是 |
否 |
创建时间 |
updated_at |
string |
是 |
否 |
更新时间 |
labels |
object[] |
是 |
否 |
标签列表 |
merged_at |
string |
是 |
否 |
合并时间 |
visibility_reason |
string |
否 |
是 |
可见性。枚举:public 公开可见;other 仅项目成员可见 |
merged_by |
object |
否 |
是 |
合并人 |
head 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
head.ref |
string |
是 |
否 |
源分支名 |
head.sha |
string |
是 |
否 |
源分支最新提交的 sha |
head.repo |
object |
是 |
否 |
源分支所在仓库 |
head.repo 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
head.repo.path |
string |
是 |
否 |
仓库路径(path) |
head.repo.namespace |
object |
是 |
否 |
仓库所属命名空间 |
head.repo.assigner |
object |
是 |
否 |
仓库负责人(仓库指派者) |
head.repo.namespace 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
head.repo.namespace.path |
string |
是 |
否 |
命名空间路径(path) |
head.repo.assigner 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
head.repo.assigner.id |
string |
是 |
否 |
用户唯一标识 |
head.repo.assigner.login |
string |
是 |
否 |
用户名(登录名) |
head.repo.assigner.name |
string |
是 |
否 |
用户昵称 |
base 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
base.ref |
string |
是 |
否 |
目标分支名 |
base.sha |
string |
是 |
否 |
目标分支最新提交的 sha |
base.repo |
object |
是 |
否 |
目标分支所在仓库 |
base.repo 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
base.repo.path |
string |
是 |
否 |
仓库路径(path) |
base.repo.namespace |
object |
是 |
否 |
仓库所属命名空间 |
base.repo.namespace 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
base.repo.namespace.path |
string |
是 |
否 |
命名空间路径(path) |
labels 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
labels.id |
integer |
是 |
否 |
标签 id |
labels.name |
string |
是 |
否 |
标签名称 |
labels.color |
string |
是 |
否 |
标签颜色 |
labels.created_at |
string |
是 |
否 |
标签创建时间 |
labels.updated_at |
string |
是 |
否 |
标签更新时间 |
merged_by 对象
| 字段 |
类型 |
必返 |
可为空 |
说明 |
merged_by.id |
string |
是 |
否 |
用户唯一标识 |
merged_by.login |
string |
是 |
否 |
用户名(登录名) |
merged_by.name |
string |
是 |
否 |
用户昵称 |
merged_by.avatar_url |
string |
是 |
否 |
用户头像地址 |
merged_by.html_url |
string |
是 |
否 |
用户主页地址 |
失败响应
401 未认证
{
"error": "unauthorized",
"message": "缺少或无效的访问令牌"
}
HTTP 响应状态码
| 状态码 |
说明 |
200 |
成功(OK) |
401 |
需要认证(Requires authentication) |
403 |
禁止访问(Forbidden) |
404 |
企业或仓库不存在 |
请求示例
参数说明
<enterprise> 替换为企业路径(企业、组织或个人的地址 path);该接口允许匿名访问,也可携带 AtomGit 用户访问令牌。
cURL
curl -X GET 'https://api.atomgit.com/api/v5/enterprises/<enterprise>/pull_requests?state=open&page=1&per_page=20' \
-H 'Accept: application/json'
JavaScript
// 原生 fetch (Node.js 18+ / 浏览器)
const response = await fetch(
"https://api.atomgit.com/api/v5/enterprises/<enterprise>/pull_requests?state=open&page=1&per_page=20",
{
headers: {
"Accept": "application/json",
},
}
);
if (!response.ok) {
throw new Error(`请求失败: ${response.status}`);
}
const data = await response.json();
console.log(data);
Python
import requests
resp = requests.get(
"https://api.atomgit.com/api/v5/enterprises/<enterprise>/pull_requests",
params={"state": "open", "page": 1, "per_page": 20},
headers={
"Accept": "application/json",
},
timeout=10,
)
resp.raise_for_status()
print(resp.json())
响应示例
状态码: 200
[
{
"id": 71020,
"title": "fix: resolve login bug",
"url": "https://api.atomgit.com/api/v5/repos/test/test/1",
"html_url": "https://api.atomgit.com/test/test/1",
"number": 1,
"state": "merged",
"assignees_number": 0,
"testers_number": 0,
"assignees": [],
"head": {
"ref": "main",
"sha": "d874402d259744a00121c2cff0febc8554339aef",
"repo": {
"path": "test",
"namespace": {
"path": "repo-dev"
},
"assigner": {
"id": "uuid",
"login": "octocat",
"name": "octocat"
}
}
},
"base": {
"ref": "master",
"sha": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
"repo": {
"path": "test",
"namespace": {
"path": "repo-dev"
}
}
},
"created_at": "2024-04-15T18:33:01+08:00",
"updated_at": "2024-04-15T18:33:01+08:00",
"labels": [
{
"id": 1,
"name": "enhancement",
"color": "#0e8a16",
"created_at": "2024-04-15T18:33:01+08:00",
"updated_at": "2024-04-15T18:33:01+08:00"
}
],
"merged_at": "2024-04-15T18:33:01+08:00",
"visibility_reason": "public",
"merged_by": {
"id": "uuid",
"login": "octocat",
"name": "octocat",
"avatar_url": "https://api.atomgit.com/avatar.png",
"html_url": "https://api.atomgit.com/octocat"
}
}
]
错误码
| 错误码 |
说明 |
401 |
未认证或凭证无效(缺少/无效的访问凭证) |
403 |
禁止访问(无权限访问该企业资源) |
404 |
企业或资源不存在 |
429 |
请求过于频繁,触发限流 |
500 |
系统内部错误 |