跳转至

企业 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.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 系统内部错误

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 gitcode-dev/atomgit-api-doc