创建Pull Request¶
POST /api/v5/repos/{owner}/{repo}/pulls
该接口用于在指定仓库下创建 Pull Request(合并请求),可设置标题、源分支与目标分支、描述内容,并支持指定审查与测试人员、标签、里程碑、草稿状态及合并后删除源分支等选项。
访问令牌支持说明¶
- AtomGit 用户访问令牌(AtomGit user access tokens)
是否允许匿名访问¶
此接口不允许匿名访问
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
owner |
path | string | 是 | 仓库所属空间地址(企业、组织或个人的地址path) |
repo |
path | string | 是 | 仓库路径(path) |
access_token |
query | string | 是 | 用户授权码 |
Request Body:
请求体为 application/json,包含以下字段:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"description": "Pull Request标题",
"type": "string",
"maxLength": 200
},
"head": {
"description": "Pull Request提交的源分支。格式:branch;如果跨仓PR传:username:branch",
"type": "string"
},
"base": {
"description": "Pull Request提交目标分支的名称",
"type": "string"
},
"body": {
"description": "Pull Request内容",
"type": "string",
"maxLength": 65535
},
"milestone_number": {
"description": "里程碑序号(id)",
"type": "integer"
},
"labels": {
"description": "用逗号分开的标签,名称要求长度在 2-20 之间且非特殊字符。如: bug,performance",
"type": "string"
},
"assignees": {
"description": "审查人员username,可多个,半角逗号分隔,如:(username1,username2);注意:当仓库代码审查设置中已设置【指派审查人员】则此选项无效",
"type": "string"
},
"testers": {
"description": "测试人员username,可多个,半角逗号分隔,如:(username1,username2);注意:当仓库代码审查设置中已设置【指派测试人员】则此选项无效",
"type": "string"
},
"prune_source_branch": {
"description": "合并PR后是否删除源分支",
"type": "boolean",
"default": false
},
"draft": {
"description": "是否设置为草稿",
"type": "boolean",
"default": false
},
"squash": {
"description": "接受Pull Request时使用扁平化(Squash)合并",
"type": "boolean",
"default": false
},
"squash_commit_message": {
"description": "squash提交信息",
"type": "string"
},
"fork_path": {
"description": "fork项目路径【owner/repo】,跨仓PR 必填。",
"type": "string"
},
"close_related_issue": {
"description": "合并后是否关闭关联的 Issue,默认根据仓库配置设置",
"type": "boolean"
},
"inner_issue_nums": {
"description": "分号分隔的issue_iid,格式如 1;2;3 或 issue1;issue2;issue3;跨仓的 #group/project#1 或 #group/project#issue1",
"type": "string"
}
},
"required": ["title", "head", "base"]
}
响应参数¶
成功响应返回一个 Pull Request 详情对象(OpenApiPullDetailResp),字段如下:
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
id |
integer | 是 | 否 | Pull Request 的 id |
url |
string | 是 | 否 | Pull Request 的 API 地址 |
html_url |
string | 是 | 否 | Pull Request 的页面地址 |
diff_url |
string | 是 | 否 | Pull Request 的 diff 地址 |
patch_url |
string | 是 | 否 | Pull Request 的 patch 地址 |
issue_url |
string | 是 | 否 | 关联 Issue 列表地址 |
commits_url |
string | 是 | 否 | Commit 列表地址 |
review_comments_url |
string | 是 | 否 | 评审评论地址 |
review_comment_url |
string | 是 | 否 | 评审评论地址 |
comments_url |
string | 是 | 否 | 评论列表地址 |
number |
integer | 是 | 否 | PR序号(iid) |
title |
string | 是 | 否 | Pull Request 标题 |
description |
string | 是 | 否 | Pull Request 描述 |
state |
string | 是 | 否 | Pull Request 状态 |
created_at |
string | 是 | 是 | 创建时间 |
updated_at |
string | 是 | 是 | 更新时间 |
merged_by |
object | 否 | 是 | 合并人 |
merged_at |
string | 否 | 是 | 合并时间 |
closed_by |
object | 否 | 是 | 关闭人 |
closed_at |
string | 否 | 是 | 关闭时间 |
title_html |
string | 否 | 是 | 标题 HTML |
description_html |
string | 否 | 是 | 描述 HTML |
target_branch |
string | 是 | 否 | 目标分支 |
source_branch |
string | 是 | 否 | 源分支 |
squash_commit_message |
string | 否 | 是 | squash 提交信息 |
user_notes_count |
integer | 是 | 否 | 评论数 |
upvotes |
integer | 是 | 否 | 点赞数 |
downvotes |
integer | 是 | 否 | 点踩数 |
author |
object | 是 | 否 | 作者信息 |
source_project_id |
integer | 是 | 否 | 源项目 id |
target_project_id |
integer | 是 | 否 | 目标项目 id |
labels |
object[] | 是 | 是 | 标签列表 |
work_in_progress |
integer | 是 | 否 | 是否草稿 |
milestone |
object | 否 | 是 | 里程碑 |
merge_when_pipeline_succeeds |
integer | 是 | 否 | 流水线成功后自动合并 |
merge_status |
string | 是 | 否 | 合并状态 |
sha |
string | 是 | 否 | 源分支最新提交 sha |
merge_commit_sha |
string | 否 | 是 | 合并提交 sha |
discussion_locked |
boolean | 否 | 是 | 是否锁定讨论 |
should_remove_source_branch |
integer | 是 | 否 | 是否删除源分支 |
force_remove_source_branch |
integer | 是 | 否 | 是否强制删除源分支 |
allow_collaboration |
boolean | 否 | 是 | 是否允许协作者提交 |
allow_maintainer_to_push |
boolean | 否 | 是 | 是否允许维护者推送 |
web_url |
string | 是 | 否 | 页面地址 |
time_stats |
object | 是 | 否 | 时间统计 |
squash |
integer | 是 | 否 | 是否使用 squash 合并 |
merge_request_type |
string | 是 | 否 | 合并请求类型 |
has_pre_merge_ref |
integer | 是 | 否 | 是否有预合并引用 |
review_mode |
string | 是 | 否 | 评审模式 |
is_source_branch_exist |
integer | 是 | 否 | 源分支是否存在 |
approval_merge_request_reviewers |
object[] | 是 | 是 | 评审人列表 |
approval_merge_request_approvers |
object[] | 是 | 是 | 批准人列表 |
approval_merge_request_testers |
object[] | 是 | 是 | 测试人列表 |
source_project |
object | 是 | 否 | 源项目信息 |
target_project |
object | 是 | 否 | 目标项目信息 |
added_lines |
integer | 是 | 否 | 添加的行数 |
removed_lines |
integer | 是 | 否 | 移除的行数 |
subscribed |
integer | 是 | 否 | 是否订阅 |
changes_count |
string | 是 | 否 | 更改数量 |
latest_build_started_at |
string | 否 | 是 | 最新构建开始时间 |
latest_build_finished_at |
string | 否 | 是 | 最新构建结束时间 |
first_deployed_to_production_at |
string | 否 | 是 | 首次部署到生产环境时间 |
pipeline |
object | 否 | 是 | 流水线信息 |
diff_refs |
object | 是 | 否 | Diff 引用信息 |
merge_error |
string | 否 | 是 | 合并错误 |
json_merge_error |
object | 否 | 是 | JSON 合并错误 |
rebase_in_progress |
boolean | 否 | 是 | 是否正在变基 |
diverged_commits_count |
integer | 否 | 是 | 分歧提交数量 |
merge_request_assignee_list |
object[] | 是 | 是 | 负责人列表 |
merge_request_reviewer_list |
object[] | 是 | 是 | 评审人列表 |
user |
object | 是 | 否 | 当前用户信息 |
merge_request_review_count |
integer | 是 | 否 | 评审数量 |
merge_request_reviewers_count |
integer | 是 | 否 | 评审人员数量 |
notes |
integer | 是 | 否 | 评论数量 |
unresolved_discussions_count |
integer | 是 | 否 | 未解决讨论数量 |
e2e_issues |
object[] | 是 | 是 | 端到端问题列表 |
gate_check |
integer | 是 | 否 | 网关检查 |
head_pipeline_id |
integer | 否 | 是 | 头部流水线 id |
pipeline_status |
string | 是 | 否 | 流水线状态 |
codequality_status |
string | 是 | 否 | 代码质量状态 |
pipeline_status_with_code_quality |
string | 是 | 否 | 包含代码质量的流水线状态 |
from_forked_project |
boolean | 是 | 否 | 是否来自 fork 项目 |
forked_project_name |
string | 否 | 是 | 分支项目名称 |
can_delete_source_branch |
integer | 是 | 否 | 是否可以删除源分支 |
required_reviewers |
object[] | 是 | 是 | 必要的评审人员 |
omega_mode |
integer | 是 | 否 | Omega 模式 |
root_mr_locked_detail |
object | 否 | 是 | 根合并请求锁定详情 |
source_git_url |
string | 是 | 否 | 源 Git URL |
auto_merge |
object | 否 | 是 | 自动合并信息 |
author 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
author.id |
integer | 是 | 否 | 用户 id |
author.name |
string | 是 | 否 | 用户名 |
author.username |
string | 是 | 否 | 用户登录名 |
author.iam_id |
string | 是 | 否 | IAM id |
author.nick_name |
string | 是 | 否 | 昵称 |
author.state |
string | 是 | 否 | 状态 |
author.avatar_url |
string | 是 | 否 | 头像地址 |
author.avatar_path |
string | 否 | 是 | 头像路径 |
author.email |
string | 是 | 否 | 邮箱 |
author.name_cn |
string | 是 | 否 | 中文名 |
author.web_url |
string | 是 | 否 | 主页地址 |
author.tenant_name |
string | 否 | 是 | 租户名 |
author.is_member |
boolean | 否 | 是 | 是否成员 |
labels 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
labels.id |
integer | 是 | 否 | 标签 id |
labels.name |
string | 是 | 否 | 标签名称 |
labels.color |
string | 是 | 否 | 标签颜色 |
labels.created_at |
string | 是 | 否 | 标签添加时间 |
labels.updated_at |
string | 是 | 否 | 标签更新时间 |
time_stats 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
time_stats.time_estimate |
integer | 否 | 是 | 预计时间 |
time_stats.total_time_spent |
integer | 是 | 否 | 总花费时间 |
time_stats.human_time_estimate |
string | 否 | 是 | 预计时间(人类可读) |
time_stats.human_total_time_spent |
string | 否 | 是 | 总花费时间(人类可读) |
approval_merge_request_reviewers 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
approval_merge_request_reviewers.id |
integer | 是 | 否 | 用户 id |
approval_merge_request_reviewers.username |
string | 是 | 否 | 用户登录名 |
approval_merge_request_reviewers.name |
string | 是 | 否 | 用户名 |
approval_merge_request_reviewers.nick_name |
string | 否 | 是 | 昵称 |
approval_merge_request_reviewers.name_cn |
string | 是 | 否 | 中文名 |
approval_merge_request_reviewers.email |
string | 否 | 是 | 邮箱 |
approval_merge_request_reviewers.state |
string | 是 | 否 | 状态 |
approval_merge_request_reviewers.is_codeowner |
integer | 是 | 否 | 是否代码所有者 |
approval_merge_request_reviewers.updated_at |
string | 是 | 否 | 更新时间 |
approval_merge_request_reviewers.avatar_url |
string | 是 | 否 | 头像地址 |
approval_merge_request_approvers 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
approval_merge_request_approvers.id |
integer | 是 | 否 | 用户 id |
approval_merge_request_approvers.username |
string | 是 | 否 | 用户登录名 |
approval_merge_request_approvers.name |
string | 是 | 否 | 用户名 |
approval_merge_request_approvers.nick_name |
string | 否 | 是 | 昵称 |
approval_merge_request_approvers.name_cn |
string | 是 | 否 | 中文名 |
approval_merge_request_approvers.email |
string | 否 | 是 | 邮箱 |
approval_merge_request_approvers.state |
string | 是 | 否 | 状态 |
approval_merge_request_approvers.is_codeowner |
integer | 是 | 否 | 是否代码所有者 |
approval_merge_request_approvers.updated_at |
string | 是 | 否 | 更新时间 |
approval_merge_request_approvers.avatar_url |
string | 是 | 否 | 头像地址 |
approval_merge_request_testers 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
approval_merge_request_testers.id |
integer | 是 | 否 | 用户 id |
approval_merge_request_testers.username |
string | 是 | 否 | 用户登录名 |
approval_merge_request_testers.name |
string | 是 | 否 | 用户名 |
approval_merge_request_testers.nick_name |
string | 否 | 是 | 昵称 |
approval_merge_request_testers.name_cn |
string | 是 | 否 | 中文名 |
approval_merge_request_testers.email |
string | 否 | 是 | 邮箱 |
approval_merge_request_testers.state |
string | 是 | 否 | 状态 |
approval_merge_request_testers.is_codeowner |
integer | 是 | 否 | 是否代码所有者 |
approval_merge_request_testers.updated_at |
string | 是 | 否 | 更新时间 |
approval_merge_request_testers.avatar_url |
string | 是 | 否 | 头像地址 |
diff_refs 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
diff_refs.base_sha |
string | 是 | 否 | 基础提交 sha |
diff_refs.head_sha |
string | 是 | 否 | 源分支最新提交 sha |
diff_refs.start_sha |
string | 是 | 否 | 起始提交 sha |
e2e_issues 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
e2e_issues.id |
integer | 是 | 否 | 问题 id |
e2e_issues.issue_type |
integer | 是 | 否 | 问题类型 |
e2e_issues.linked_issue_type |
integer | 否 | 是 | 关联问题类型 |
e2e_issues.issue_num |
string | 是 | 否 | 问题编号 |
e2e_issues.commit_id |
string | 否 | 是 | 提交 id |
e2e_issues.merge_request_id |
integer | 是 | 否 | 合并请求 id |
e2e_issues.check_fail_reason |
string | 是 | 否 | 检查失败原因 |
e2e_issues.check_result |
integer | 是 | 否 | 检查结果 |
e2e_issues.issue_link |
string | 是 | 否 | 问题链接 |
e2e_issues.created_at |
string | 是 | 否 | 创建时间 |
e2e_issues.mks_id |
string | 否 | 是 | mks id |
e2e_issues.pbi_id |
string | 否 | 是 | pbi id |
e2e_issues.pbi_name |
string | 否 | 是 | pbi 名称 |
e2e_issues.source |
string | 否 | 是 | 来源 |
e2e_issues.issue_project_id |
integer | 是 | 否 | 问题所属项目 id |
e2e_issues.title |
string | 是 | 否 | 标题 |
e2e_issues.issue_project |
object | 否 | 是 | 问题所属项目 |
e2e_issues.auto_c_when_mr_merged |
integer | 是 | 否 | 合并时是否自动关闭 |
source_project 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
source_project.id |
integer | 是 | 否 | 项目 id |
source_project.description |
string | 是 | 否 | 项目描述 |
source_project.name |
string | 是 | 否 | 项目名称 |
source_project.name_with_namespace |
string | 是 | 否 | 带命名空间的项目名称 |
source_project.path |
string | 是 | 否 | 项目路径 |
source_project.path_with_namespace |
string | 是 | 否 | 带命名空间的项目路径 |
source_project.develop_mode |
string | 是 | 否 | 开发模式 |
source_project.created_at |
string | 是 | 否 | 创建时间 |
source_project.updated_at |
string | 是 | 否 | 更新时间 |
source_project.archived |
integer | 是 | 否 | 是否已归档 |
source_project.is_kia |
integer | 是 | 否 | 是否 KIA |
source_project.ssh_url_to_repo |
string | 是 | 否 | SSH 地址 |
source_project.http_url_to_repo |
string | 是 | 否 | HTTP 地址 |
source_project.web_url |
string | 是 | 否 | 页面地址 |
source_project.readme_url |
string | 是 | 否 | README 地址 |
source_project.product_id |
string | 是 | 否 | 产品 id |
source_project.product_name |
string | 否 | 是 | 产品名称 |
source_project.member_mgnt_mode |
integer | 是 | 否 | 成员管理模式 |
source_project.default_branch |
string | 是 | 否 | 默认分支 |
source_project.tag_list |
object[] | 是 | 是 | 标签列表 |
source_project.license_url |
string | 否 | 是 | License 地址 |
source_project.license |
object | 是 | 否 | License 信息 |
source_project.star_count |
integer | 是 | 否 | 星标数 |
source_project.forks_count |
integer | 是 | 否 | Fork 数 |
source_project.open_issues_count |
integer | 是 | 否 | 打开的 Issue 数 |
source_project.open_merge_requests_count |
integer | 是 | 否 | 打开的合并请求数 |
source_project.open_change_requests_count |
integer | 否 | 是 | 打开的变更请求数 |
source_project.watch_count |
integer | 是 | 否 | 关注数 |
source_project.last_activity_at |
string | 是 | 否 | 最后活跃时间 |
source_project.namespace |
object | 是 | 否 | 命名空间信息 |
source_project.empty_repo |
integer | 是 | 否 | 是否空仓库 |
source_project.starred |
integer | 是 | 否 | 是否已加星标 |
source_project.visibility |
string | 是 | 否 | 可见性 |
source_project.security |
string | 是 | 否 | 安全级别 |
source_project.has_updated_kia |
integer | 是 | 否 | 是否更新了 KIA |
source_project.network_type |
string | 是 | 否 | 网络类型 |
source_project.owner |
object | 否 | 是 | 所有者 |
source_project.creator |
object | 是 | 否 | 创建者 |
source_project.creator_id |
integer | 是 | 否 | 创建者 id |
source_project.forked_from_project |
object | 否 | 是 | 源 Fork 项目 |
source_project.item_type |
string | 是 | 否 | 条目类型 |
source_project.main_repository_language |
string[] | 是 | 否 | 主要编程语言 |
source_project.mirror_project_data |
object | 否 | 是 | 镜像项目数据 |
source_project.statistics |
object | 否 | 是 | 统计信息 |
source_project.branch_count |
integer | 否 | 是 | 分支数 |
source_project.tag_count |
integer | 否 | 是 | 标签数 |
source_project.member_count |
integer | 否 | 是 | 成员数 |
source_project.repo_replica_urls |
string | 否 | 是 | 仓库副本地址 |
source_project.open_external_wiki |
integer | 是 | 否 | 是否开启外部 Wiki |
source_project.release_count |
integer | 否 | 是 | 发布数 |
target_project 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
target_project.id |
integer | 是 | 否 | 项目 id |
target_project.description |
string | 是 | 否 | 项目描述 |
target_project.name |
string | 是 | 否 | 项目名称 |
target_project.name_with_namespace |
string | 是 | 否 | 带命名空间的项目名称 |
target_project.path |
string | 是 | 否 | 项目路径 |
target_project.path_with_namespace |
string | 是 | 否 | 带命名空间的项目路径 |
target_project.develop_mode |
string | 是 | 否 | 开发模式 |
target_project.created_at |
string | 是 | 否 | 创建时间 |
target_project.updated_at |
string | 是 | 否 | 更新时间 |
target_project.archived |
integer | 是 | 否 | 是否已归档 |
target_project.is_kia |
integer | 是 | 否 | 是否 KIA |
target_project.ssh_url_to_repo |
string | 是 | 否 | SSH 地址 |
target_project.http_url_to_repo |
string | 是 | 否 | HTTP 地址 |
target_project.web_url |
string | 是 | 否 | 页面地址 |
target_project.readme_url |
string | 是 | 否 | README 地址 |
target_project.product_id |
string | 是 | 否 | 产品 id |
target_project.product_name |
string | 否 | 是 | 产品名称 |
target_project.member_mgnt_mode |
integer | 是 | 否 | 成员管理模式 |
target_project.default_branch |
string | 是 | 否 | 默认分支 |
target_project.tag_list |
object[] | 是 | 是 | 标签列表 |
target_project.license_url |
string | 否 | 是 | License 地址 |
target_project.license |
object | 是 | 否 | License 信息 |
target_project.star_count |
integer | 是 | 否 | 星标数 |
target_project.forks_count |
integer | 是 | 否 | Fork 数 |
target_project.open_issues_count |
integer | 是 | 否 | 打开的 Issue 数 |
target_project.open_merge_requests_count |
integer | 是 | 否 | 打开的合并请求数 |
target_project.open_change_requests_count |
integer | 否 | 是 | 打开的变更请求数 |
target_project.watch_count |
integer | 是 | 否 | 关注数 |
target_project.last_activity_at |
string | 是 | 否 | 最后活跃时间 |
target_project.namespace |
object | 是 | 否 | 命名空间信息 |
target_project.empty_repo |
integer | 是 | 否 | 是否空仓库 |
target_project.starred |
integer | 是 | 否 | 是否已加星标 |
target_project.visibility |
string | 是 | 否 | 可见性 |
target_project.security |
string | 是 | 否 | 安全级别 |
target_project.has_updated_kia |
integer | 是 | 否 | 是否更新了 KIA |
target_project.network_type |
string | 是 | 否 | 网络类型 |
target_project.owner |
object | 否 | 是 | 所有者 |
target_project.creator |
object | 是 | 否 | 创建者 |
target_project.creator_id |
integer | 是 | 否 | 创建者 id |
target_project.forked_from_project |
object | 否 | 是 | 源 Fork 项目 |
target_project.item_type |
string | 是 | 否 | 条目类型 |
target_project.main_repository_language |
string[] | 是 | 否 | 主要编程语言 |
target_project.mirror_project_data |
object | 否 | 是 | 镜像项目数据 |
target_project.statistics |
object | 否 | 是 | 统计信息 |
target_project.branch_count |
integer | 否 | 是 | 分支数 |
target_project.tag_count |
integer | 否 | 是 | 标签数 |
target_project.member_count |
integer | 否 | 是 | 成员数 |
target_project.repo_replica_urls |
string | 否 | 是 | 仓库副本地址 |
target_project.open_external_wiki |
integer | 是 | 否 | 是否开启外部 Wiki |
target_project.release_count |
integer | 否 | 是 | 发布数 |
namespace 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
namespace.id |
integer | 是 | 否 | 命名空间 id |
namespace.name |
string | 是 | 否 | 命名空间名称 |
namespace.path |
string | 是 | 否 | 命名空间路径 |
namespace.develop_mode |
string | 是 | 否 | 开发模式 |
namespace.region |
string | 否 | 是 | 区域 |
namespace.cell |
string | 是 | 否 | 单元 |
namespace.kind |
string | 是 | 否 | 类型 |
namespace.full_path |
string | 是 | 否 | 完整路径 |
namespace.full_name |
string | 是 | 否 | 完整名称 |
namespace.parent_id |
integer | 否 | 是 | 父命名空间 id |
namespace.visibility_level |
integer | 是 | 否 | 可见性级别 |
namespace.enable_file_control |
boolean | 否 | 是 | 是否启用文件控制 |
namespace.owner_id |
integer | 否 | 是 | 所有者 id |
license 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
license.key |
string | 是 | 否 | License key |
license.name |
string | 否 | 是 | License 名称 |
license.nickname |
string | 否 | 是 | License 昵称 |
license.html_url |
string | 否 | 是 | License HTML 地址 |
license.source_url |
string | 否 | 是 | License 来源地址 |
license.avatar_url |
string | 否 | 是 | License 头像地址 |
creator 对象
| 字段 | 类型 | 必返 | 可为空 | 说明 |
|---|---|---|---|---|
creator.id |
integer | 是 | 否 | 用户 id |
creator.name |
string | 是 | 否 | 用户名 |
creator.username |
string | 是 | 否 | 用户登录名 |
creator.iam_id |
string | 是 | 否 | IAM id |
creator.nick_name |
string | 是 | 否 | 昵称 |
creator.state |
string | 是 | 否 | 状态 |
creator.avatar_url |
string | 是 | 否 | 头像地址 |
creator.avatar_path |
string | 否 | 是 | 头像路径 |
creator.email |
string | 是 | 否 | 邮箱 |
creator.name_cn |
string | 是 | 否 | 中文名 |
creator.web_url |
string | 是 | 否 | 主页地址 |
creator.tenant_name |
string | 否 | 是 | 租户名 |
creator.is_member |
boolean | 否 | 是 | 是否成员 |
失败响应¶
400 参数错误
401 未认证
HTTP 响应状态码¶
| 状态码 | 说明 |
|---|---|
200 |
成功(OK) |
400 |
参数错误或请求无法解析 |
401 |
需要认证(Requires authentication) |
404 |
请求路径不存在 |
405 |
请求方法不支持 |
429 |
请求过于频繁,触发限流 |
500 |
系统内部错误 |
请求示例¶
参数说明¶
<owner>— 替换为仓库所属空间地址(企业、组织或个人的地址 path);<repo>— 替换为仓库路径(path);<token>— 替换为你的 AtomGit 用户访问令牌。
cURL¶
curl -X POST 'https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pulls?access_token=<token>' \
-H 'Content-Type: application/json' \
-d '{
"title": "测试创建PR",
"head": "dev",
"base": "main",
"body": "update: 更新文件 dev_001.txt"
}'
JavaScript¶
// 原生 fetch (Node.js 18+ / 浏览器)
const token = "<YOUR-TOKEN>";
const owner = "<owner>";
const repo = "<repo>";
const response = await fetch(
`https://api.atomgit.com/api/v5/repos/${owner}/${repo}/pulls?access_token=${token}`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
},
body: JSON.stringify({
title: "测试创建PR",
head: "dev",
base: "main",
body: "update: 更新文件 dev_001.txt",
}),
}
);
if (!response.ok) {
throw new Error(`请求失败: ${response.status}`);
}
const data = await response.json();
console.log(data);
Python¶
import requests
resp = requests.post(
"https://api.atomgit.com/api/v5/repos/<owner>/<repo>/pulls",
params={"access_token": "<token>"},
json={
"title": "测试创建PR",
"head": "dev",
"base": "main",
"body": "update: 更新文件 dev_001.txt",
},
headers={"Accept": "application/json"},
timeout=10,
)
resp.raise_for_status()
print(resp.json())
响应示例¶
状态码: 200
{
"id": 11264998,
"url": "https://api.atomgit.com/api/v5/repos/zzero/demo/pulls/6",
"html_url": "https://api.atomgit.com/zzero/demo/pulls/6",
"diff_url": "https://api.atomgit.com/zzero/demo/pulls/6.diff",
"patch_url": "https://api.atomgit.com/zzero/demo/pulls/6.patch",
"issue_url": "https://api.atomgit.com/api/v5/repos/zzero/demo/pulls/6/issues",
"commits_url": "https://api.atomgit.com/api/v5/repos/zzero/demo/pulls/6/commits",
"review_comments_url": "https://api.atomgit.com/api/v5/repos/zzero/demo/pulls/comments/{/number}",
"review_comment_url": "https://api.atomgit.com/api/v5/repos/zzero/demo/pulls/comments",
"comments_url": "https://api.atomgit.com/api/v5/repos/zzero/demo/pulls/6/comments",
"number": 6,
"title": "测试创建PR",
"description": "update: 更新文件 dev_001.txt \nupdate: 更新文件 dev_001.txt ",
"state": "opened",
"created_at": "2024-04-14T20:53:13.185+08:00",
"updated_at": "2024-04-14T20:53:22.634+08:00",
"merged_by": null,
"merged_at": null,
"closed_by": null,
"closed_at": null,
"title_html": null,
"description_html": null,
"target_branch": "test_b5",
"source_branch": "dev",
"squash_commit_message": null,
"user_notes_count": 0,
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 494,
"name": "csdntest13",
"username": "csdntest13",
"iam_id": "d8b3e018b2364546b946886a669d50fc",
"nick_name": "csdntest13_gitcode",
"state": "active",
"avatar_url": "https://api.atomgit.com/avatar.png",
"avatar_path": null,
"email": "csdntest13@noreply.atomgit.com",
"name_cn": "csdntest13",
"web_url": "https://api.atomgit.com/csdntest13",
"tenant_name": null,
"is_member": null
},
"assignee": null,
"source_project_id": 243377,
"target_project_id": 243377,
"labels": [
{
"id": 381445,
"name": "help wanted",
"color": "#008672",
"created_at": "2024-04-14T20:53:23.021+08:00",
"updated_at": "2024-04-14T20:53:23.021+08:00"
}
],
"work_in_progress": false,
"milestone": null,
"merge_when_pipeline_succeeds": false,
"merge_status": "unchecked",
"sha": "8da7a5c35e71deeb0bf1d9ecae70449c574749f2",
"merge_commit_sha": null,
"discussion_locked": null,
"should_remove_source_branch": false,
"force_remove_source_branch": false,
"allow_collaboration": null,
"allow_maintainer_to_push": null,
"web_url": "https://api.atomgit.com/One/One/pulls/53",
"time_stats": {
"time_estimate": null,
"total_time_spent": 0,
"human_time_estimate": null,
"human_total_time_spent": null
},
"squash": false,
"merge_request_type": "MergeRequest",
"has_pre_merge_ref": false,
"review_mode": "approval",
"is_source_branch_exist": true,
"approval_merge_request_reviewers": [
{
"id": 43,
"username": "green",
"name": "green",
"nick_name": null,
"name_cn": "green",
"email": null,
"state": "optional",
"is_codeowner": false,
"updated_at": "2024-04-14T20:53:23.021+08:00",
"avatar_url": "https://api.atomgit.com/avatar.png"
}
],
"approval_merge_request_approvers": [
{
"id": 277,
"username": "renww",
"name": "renww",
"nick_name": null,
"name_cn": "renww",
"email": null,
"state": "optional",
"is_codeowner": false,
"updated_at": "2024-04-14T20:53:23.751+08:00",
"avatar_url": "https://api.atomgit.com/avatar.png"
}
],
"approval_merge_request_testers": [
{
"id": 43,
"username": "green",
"name": "green",
"nick_name": null,
"name_cn": "green",
"email": null,
"state": "optional",
"is_codeowner": false,
"updated_at": "2024-04-14T20:53:23.755+08:00",
"avatar_url": "https://api.atomgit.com/avatar.png"
}
],
"source_project": {
"id": 243377,
"description": "csdntest13的第一个项目(公开)",
"name": "One",
"name_with_namespace": "One / One",
"path": "One",
"path_with_namespace": "One/One",
"develop_mode": "normal",
"created_at": "2024-03-19T16:24:01.197+08:00",
"updated_at": "2024-03-19T16:42:34.834+08:00",
"archived": false,
"is_kia": false,
"ssh_url_to_repo": "ssh://git@atomgit.com:2222/One/One.git",
"http_url_to_repo": "https://api.atomgit.com/One/One.git",
"web_url": "https://api.atomgit.com/One/One",
"readme_url": "https://api.atomgit.com/One/One/blob/main/README.md",
"product_id": "28f96caf52004e81ab0bc38d60d11940",
"product_name": null,
"member_mgnt_mode": 3,
"default_branch": "main",
"tag_list": [],
"license_url": null,
"license": {
"key": "Apache_License_v2.0",
"name": null,
"nickname": null,
"html_url": null,
"source_url": null
},
"avatar_url": null,
"star_count": 1,
"forks_count": 0,
"open_issues_count": 108,
"open_merge_requests_count": 32,
"open_change_requests_count": null,
"watch_count": 1,
"last_activity_at": "2024-04-14T20:43:58.602+08:00",
"namespace": {
"id": 136909,
"name": "One",
"path": "One",
"develop_mode": "normal",
"region": null,
"cell": "default",
"kind": "group",
"full_path": "One",
"full_name": "One ",
"parent_id": null,
"visibility_level": 20,
"enable_file_control": null,
"owner_id": null
},
"empty_repo": false,
"starred": false,
"visibility": "public",
"security": "internal",
"has_updated_kia": false,
"network_type": "green",
"owner": null,
"creator": {
"id": 494,
"name": "csdntest13",
"username": "csdntest13",
"iam_id": "d8b3e018b2364546b946886a669d50fc",
"nick_name": "csdntest13_gitcode",
"state": "active",
"avatar_url": "https://api.atomgit.com/avatar.png",
"avatar_path": null,
"email": "csdntest13@noreply.atomgit.com",
"name_cn": "csdntest13",
"web_url": "https://api.atomgit.com/csdntest13",
"tenant_name": null,
"is_member": null
},
"creator_id": 494,
"forked_from_project": null,
"item_type": "Project",
"main_repository_language": ["Text", "#cccccc"],
"mirror_project_data": null,
"statistics": null,
"branch_count": null,
"tag_count": null,
"member_count": null,
"repo_replica_urls": null,
"open_external_wiki": true,
"release_count": null
},
"target_project": {
"id": 243377,
"description": "csdntest13的第一个项目(公开)",
"name": "One",
"name_with_namespace": "One / One",
"path": "One",
"path_with_namespace": "One/One",
"develop_mode": "normal",
"created_at": "2024-03-19T16:24:01.197+08:00",
"updated_at": "2024-03-19T16:42:34.834+08:00",
"archived": false,
"is_kia": false,
"ssh_url_to_repo": "ssh://git@atomgit.com:2222/One/One.git",
"http_url_to_repo": "https://api.atomgit.com/One/One.git",
"web_url": "https://api.atomgit.com/One/One",
"readme_url": "https://api.atomgit.com/One/One/blob/main/README.md",
"product_id": "28f96caf52004e81ab0bc38d60d11940",
"product_name": null,
"member_mgnt_mode": 3,
"default_branch": "main",
"tag_list": [],
"license_url": null,
"license": {
"key": "Apache_License_v2.0",
"name": null,
"nickname": null,
"html_url": null,
"source_url": null
},
"avatar_url": null,
"star_count": 1,
"forks_count": 0,
"open_issues_count": 108,
"open_merge_requests_count": 32,
"open_change_requests_count": null,
"watch_count": 1,
"last_activity_at": "2024-04-14T20:43:58.602+08:00",
"namespace": {
"id": 136909,
"name": "One",
"path": "One",
"develop_mode": "normal",
"region": null,
"cell": "default",
"kind": "group",
"full_path": "One",
"full_name": "One ",
"parent_id": null,
"visibility_level": 20,
"enable_file_control": null,
"owner_id": null
},
"empty_repo": false,
"starred": false,
"visibility": "public",
"security": "internal",
"has_updated_kia": false,
"network_type": "green",
"owner": null,
"creator": {
"id": 494,
"name": "csdntest13",
"username": "csdntest13",
"iam_id": "d8b3e018b2364546b946886a669d50fc",
"nick_name": "csdntest13_gitcode",
"state": "active",
"avatar_url": "https://api.atomgit.com/avatar.png",
"avatar_path": null,
"email": "csdntest13@noreply.atomgit.com",
"name_cn": "csdntest13",
"web_url": "https://api.atomgit.com/csdntest13",
"tenant_name": null,
"is_member": null
},
"creator_id": 494,
"forked_from_project": null,
"item_type": "Project",
"main_repository_language": ["Text", "#cccccc"],
"mirror_project_data": null,
"statistics": null,
"branch_count": null,
"tag_count": null,
"member_count": null,
"repo_replica_urls": null,
"open_external_wiki": true,
"release_count": null
},
"added_lines": 19860,
"removed_lines": 1,
"subscribed": true,
"changes_count": "6",
"latest_build_started_at": null,
"latest_build_finished_at": null,
"first_deployed_to_production_at": null,
"pipeline": null,
"diff_refs": {
"base_sha": "0c02dd57f8945791460a141f155dd2f4bd5dea86",
"head_sha": "8da7a5c35e71deeb0bf1d9ecae70449c574749f2",
"start_sha": "fb6495834d1bf7a39dfdb44ad25e6f83c7136310"
},
"merge_error": null,
"json_merge_error": null,
"rebase_in_progress": null,
"diverged_commits_count": null,
"merge_request_assignee_list": [],
"merge_request_reviewer_list": [],
"user": {
"can_merge": true
},
"merge_request_review_count": 0,
"merge_request_reviewers_count": 0,
"notes": 0,
"unresolved_discussions_count": 0,
"e2e_issues": [
{
"id": 13588,
"issue_type": 7,
"linked_issue_type": null,
"issue_num": "issue100",
"commit_id": null,
"merge_request_id": 68253,
"check_fail_reason": "",
"check_result": true,
"issue_link": "https://api.atomgit.com/One/One/issues/100",
"created_at": "2024-04-14T20:53:23.772+08:00",
"mks_id": null,
"pbi_id": null,
"pbi_name": null,
"source": null,
"issue_project_id": 243377,
"title": "第45个issue",
"issue_project": null,
"auto_c_when_mr_merged": false
}
],
"gate_check": true,
"head_pipeline_id": null,
"pipeline_status": "",
"codequality_status": "success",
"pipeline_status_with_code_quality": "",
"from_forked_project": false,
"forked_project_name": null,
"can_delete_source_branch": true,
"required_reviewers": [],
"omega_mode": false,
"root_mr_locked_detail": null,
"source_git_url": "ssh://git@atomgit.com:2222/One/One.git",
"auto_merge": null
}
错误码¶
| 错误码 | 说明 |
|---|---|
401 |
未认证或凭证无效(缺少/无效的访问凭证) |
400 |
参数错误或请求无法解析 |
404 |
请求路径不存在 |
405 |
请求方法不支持 |
429 |
请求过于频繁,触发限流 |
500 |
系统内部错误 |
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 gitcode-dev/atomgit-api-doc