跳转至

获取 Pull Request设置

GET /api/v5/repos/{owner}/{repo}/pull_request_settings

该接口用于获取指定仓库的 Pull Request 设置详情,包括合并模式、评审与审批要求、Squash 合并选项、代码检视与合并行为等配置信息。

访问令牌支持说明

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

是否允许匿名访问

此接口不允许匿名访问

请求参数

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

响应参数

字段 类型 必返 可为空 说明
merge_request_setting object 是 否 Merge Request 设置详情
only_allow_merge_if_all_discussions_are_resolved boolean 是 否 评审问题全部解决才能合入
only_allow_merge_if_pipeline_succeeds boolean 是 否 是否仅在流水线成功后才允许合并
merge_method string 是 否 合并模式三选一:merge(通过 merge commit 合并)/ rebase_merge(通过 merge commit 合并,记录半线性历史)/ ff(fast-forward 合并)

merge_request_setting 对象

字段 类型 必返 可为空 说明
merge_request_setting.id integer 是 否 设置 ID
merge_request_setting.project_id integer 是 否 项目 ID
merge_request_setting.disable_merge_by_self boolean 是 否 禁止合入自己创建的合并请求
merge_request_setting.created_at string 是 是 创建时间
merge_request_setting.updated_at string 是 是 更新时间
merge_request_setting.can_force_merge boolean 是 否 允许管理员强制合入
merge_request_setting.disable_squash_merge boolean 是 否 禁止 Squash 合并
merge_request_setting.approval_required_reviewers integer 是 否 需要的评审者数量
merge_request_setting.approval_required_approvers integer 是 否 需要审批的批准者数量
merge_request_setting.add_notes_after_merged boolean 是 否 允许合并请求合并后继续做代码检视和评论
merge_request_setting.merged_commit_author string 是 否 使用 MR(合入/创建)者生成 Merge Commit:merged_by(使用 PR 合入者)/ created_by(使用 PR 创建者)
merge_request_setting.mark_auto_merged_mr_as_closed boolean 是 否 是否将自动合并的 MR 状态标记为关闭状态
merge_request_setting.delete_source_branch_when_merged boolean 是 否 合并时是否删除源分支
merge_request_setting.auto_squash_merge boolean 是 否 新建合并请求,默认开启 Squash 合并
merge_request_setting.squash_merge_with_no_merge_commit boolean 是 否 Squash 合并不产生 Merge 节点
merge_request_setting.close_issue_when_mr_merged boolean 是 否 创建 Pull Request 时默认选中“合并后关闭已关联的 Issue”
merge_request_setting.can_reopen boolean 是 否 是否可以重新打开一个已经关闭的合并请求
merge_request_setting.is_check_cla boolean 是 否 是否校验 CLA
merge_request_setting.approval_approvers object[] 是 是 项目审批人列表
merge_request_setting.approval_testers object[] 是 是 项目测试人列表
merge_request_setting.approval_required_testers integer 是 否 测试最小通过人数
merge_request_setting.is_allow_lite_merge_request boolean 是 否 是否启用轻量级 Pull Request
merge_request_setting.codeowner_merge_count boolean 是 是 codeowner 审查计数模式:true 使用合并计数(codeowner 算审查人数);false 使用单独计数(codeowner 不算审查人数)
merge_request_setting.forbidden_pr_related_issue_closed string 是 是 是否禁用“合并后关闭已关联的 Issue”选项

merge_request_setting.approval_approvers[] / merge_request_setting.approval_testers[] 对象

approval_approvers 与 approval_testers 的元素结构一致,均为用户信息对象。

字段 类型 必返 可为空 说明
approval_approvers[].id integer 是 否 用户 ID
approval_approvers[].name string 是 是 用户名
approval_approvers[].username string 是 是 登录名
approval_approvers[].iam_id string 是 是 IAM 用户 ID
approval_approvers[].state string 是 是 用户状态
approval_approvers[].avatar_url string 是 是 头像地址
approval_approvers[].name_cn string 是 是 中文名
approval_approvers[].web_url string 是 是 个人主页地址
approval_approvers[].nick_name string 是 是 昵称

失败响应

以下失败响应示例为常见形态,实际错误字段名以后端返回为准。

400 参数错误

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

401 未认证

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

HTTP 响应状态码

状态码 说明
200 成功(OK)
304 未修改(Not modified)
401 需要认证(Requires authentication)
403 禁止访问(Forbidden)

请求示例

参数说明

<owner> 替换为仓库所属空间地址(企业、组织或个人的地址 path);<repo> 替换为仓库路径(path);<token> 替换为你的 AtomGit 用户访问令牌。

cURL

curl -X GET 'https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pull_request_settings?access_token=<token>' \
  -H 'Accept: application/json'

JavaScript

// 原生 fetch (Node.js 18+ / 浏览器)
const response = await fetch(
  'https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pull_request_settings?access_token=<token>',
  {
    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/repos/<owner>/<repo>/pull_request_settings',
    params={'access_token': '<token>'},
    headers={'Accept': 'application/json'},
    timeout=10,
)
resp.raise_for_status()

print(resp.json())

响应示例

状态码: 200

{
  "merge_request_setting": {
    "id": 1431,
    "project_id": 2745002,
    "disable_merge_by_self": false,
    "created_at": "2024-03-28T10:04:13.523+08:00",
    "updated_at": "2024-11-13T21:30:45.261+08:00",
    "can_force_merge": false,
    "disable_squash_merge": true,
    "approval_required_reviewers": 0,
    "approval_required_approvers": 0,
    "add_notes_after_merged": false,
    "merged_commit_author": "merged_by",
    "mark_auto_merged_mr_as_closed": false,
    "delete_source_branch_when_merged": false,
    "auto_squash_merge": false,
    "squash_merge_with_no_merge_commit": false,
    "close_issue_when_mr_merged": false,
    "can_reopen": true,
    "is_check_cla": false,
    "approval_approvers": [],
    "approval_testers": [],
    "approval_required_testers": 0,
    "is_allow_lite_merge_request": false,
    "codeowner_merge_count": true,
    "forbidden_pr_related_issue_closed": null
  },
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "only_allow_merge_if_pipeline_succeeds": false,
  "merge_method": "merge"
}

错误码

错误码 说明
401 未认证或凭证无效(缺少/无效的访问凭证)
400 参数错误或请求无法解析
404 请求路径不存在
405 请求方法不支持
429 请求过于频繁,触发限流
500 系统内部错误

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