跳转至

设置Pull Request合并人

PUT /api/v5/repos/{owner}/{repo}/pulls/{number}/mergers

该接口用于为指定仓库中的 Pull Request 设置合并人,通过提交以逗号分隔的用户个人空间地址,可指定一个或多个合并人,操作成功后返回合并人的相关信息。

访问令牌支持说明

  • AtomGit 用户访问令牌(AtomGit user access tokens)

是否允许匿名访问

此接口不允许匿名访问

请求参数

参数名 位置 类型 必填 说明
owner path string 是 仓库所属空间地址(企业、组织或个人的地址 path)
repo path string 是 仓库路径(path)
number path string 是 第几个 PR,即本仓库 PR 的序数,对应 iid
access_token query string 是 用户授权码

Request Body:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "mergers": {
      "description": "用户的个人空间地址,以逗号分隔",
      "type": "string"
    }
  },
  "required": ["mergers"]
}

响应参数

字段 类型 必返 可为空 说明
id integer 是 否 ID
login string 是 否 账号
name string 是 否 昵称
avatar_url string 否 是 头像
object_id string 是 否 对象 ID

Note: 响应体为合并人信息对象数组,表中字段为数组中每个元素(合并人信息对象)的字段。

失败响应

该接口需要认证,且目标 Pull Request 可能不存在,可能出现以下失败响应(错误字段名以后端实际返回为准):

400 参数错误

{
  "error": "invalid_request",
  "message": "参数 mergers 不能为空",
  "field": "mergers"
}

401 未认证

{
  "error": "unauthorized",
  "message": "缺少或无效的访问令牌"
}

404 未找到

{
  "error": "not_found",
  "message": "仓库或 Pull Request 不存在"
}

HTTP 响应状态码

状态码 说明
200 成功(OK)
400 参数错误(Bad request)
401 需要认证(Requires authentication)
403 禁止访问(Forbidden)
404 未找到(Not found)
405 请求方法不支持(Method not allowed)
429 请求过于频繁(Too many requests)
500 系统内部错误(Internal server error)

请求示例

参数说明

<owner> 替换为仓库所属空间地址(企业、组织或个人的地址 path); <repo> 替换为仓库路径(path); <number> 替换为第几个 PR(即本仓库 PR 的序数,对应 iid); <token> 替换为你的 AtomGit 用户访问令牌; <user1>,<user2> 替换为合并人(用户个人空间地址,以逗号分隔)。

cURL

curl -X PUT 'https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pulls/<number>/mergers?access_token=<token>' \
  -H 'Content-Type: application/json' \
  -d '{"mergers": "<user1>,<user2>"}'

JavaScript

// 原生 fetch (Node.js 18+ / 浏览器)
const response = await fetch("https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pulls/<number>/mergers?access_token=<token>", {
  method: "PUT",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    mergers: "<user1>,<user2>",
  }),
});

if (!response.ok) {
  throw new Error(`请求失败: ${response.status}`);
}

const data = await response.json();
console.log(data);

Python

import requests

resp = requests.put(
    "https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pulls/<number>/mergers",
    params={"access_token": "<token>"},
    headers={"Content-Type": "application/json"},
    json={"mergers": "<user1>,<user2>"},
    timeout=10,
)
resp.raise_for_status()

print(resp.json())

响应示例

状态码: 200

[
  {
    "id": 123,
    "login": "octocat",
    "name": "Octo Cat",
    "avatar_url": "https://api.atomgit.com/avatar.png",
    "object_id": "user-123"
  }
]

错误码

错误码 说明
400 参数错误或请求无法解析
401 未认证或凭证无效(缺少/无效的访问凭证)
403 禁止访问(无权限执行该操作)
404 仓库或 Pull Request 不存在
405 请求方法不支持
429 请求过于频繁,触发限流
500 系统内部错误

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