54 KiB
Pulls
获取一个合并请求
获取合并请求详情接口
示例:
curl -X GET http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/1.json
await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/1.json')
HTTP 请求
GET /api/v1/:owner/:repo/pulls/:index.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | integer | pull 序号 |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
- | - | - |
id | int | 合并请求ID |
title | string | 合并请求标题 |
body | string | |
head | int | 合并请求源分支 |
base | int | 合并请求目标分支 |
index | int | 合并请求序号 |
status | string | 合并请求状态,open: 开启的, merged: 合并的, closed: 关闭的 |
issue.id | int | 疑修ID |
issue.author | object | 疑修作者 |
issue.priority | string | 疑修优先级 |
issue.version | string | 疑修里程碑 |
issue.journals_count | int | 普通评论数量 |
issue.issue_tags | array | 标记 |
journals_count | int | 审查评论数量 |
merge_base | string | 目标的commit ID |
base_commit_sha | string | 合并之后的第一个commit ID |
head_commit_sha | string | 源commit ID |
commit_num | int | commit数量 |
changed_files | int | 更改文件数量 |
is_locked | bool | |
mergeable | bool | 是否能合并 |
merged | bool | 是否合并 |
merged_at | string | 合并时间 |
merge_commit_sha | string | 合并之后的第一个commit ID |
merge_by | object | 被谁合并了 |
last_review.id | int | 最后一个审查的id |
last_review.commit_id | string | 最后一个审查对应的commit ID |
last_review.content | string | 最后一个审查的内容 |
last_review.status | string | 最后一个审查的状态,common: 一般审查, approved: 通过, rejected: 拒绝通过 |
last_review.created_at | string | 审查创建的时间 |
last_review.reviewer | object | 审查创建人 |
reviewers | array | 指定审查用户标识数组 |
conflict_files | array | 有冲突的文件 |
返回的JSON示例:
{
"id": 168,
"head": "new_branch",
"base": "master",
"is_original": false,
"index": 5,
"status": "merged",
"issue": {
"id": 265,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 1,
"issue_tags": null
},
"journals_count": 0,
"merge_base": "4a277037093c1248e46d2946ee30b61cccdb9df9",
"base_commit_sha": "dbb510cd852a6bfd4d71a1f84921aa3170654590",
"head_commit_sha": "0f0e27918eb5deb8d514012d84d13db10eebe19a",
"commit_num": 1,
"changed_files": 1,
"is_locked": false,
"mergeable": true,
"merged": true,
"merged_at": 1658743004,
"merge_commit_sha": "dbb510cd852a6bfd4d71a1f84921aa3170654590",
"merge_by": {
"id": null,
"login": "yystopf",
"name": "yystopf",
"type": null,
"image_url": "system/lets/letter_avatars/2/Y/241_125_89/120.png"
},
"last_review": {
"id": 5,
"commit_id": null,
"content": "新建一个审查",
"status": "common",
"created_at": "2022-07-25 17:08",
"reviewer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
}
},
"reviewers": [
"yystopf"
],
"conflict_files": []
}
获取合并请求文件列表
获取合并请求文件列表
示例:
curl -X GET \
http://localhost:3000/api/Jason/gitlink/pulls/1/files.json
await octokit.request('GET /api/jasder/gitlink/pulls/1/files.json')
HTTP 请求
GET /api/:owner/:repo/pulls/:id/files.json
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
owner | 是 | string | 用户登录名 |
repo | 是 | string | project's identifier |
id | 是 | int | pull request's id |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
- | - | - |
files_count | int | 文件更改的总数量 |
total_addition | int | 添加代码总行数 |
total_deletion | int | 删除代码总行数 |
files | array | |
-- sha | string | commit's sha value |
-- name | string | 当前文件名 |
-- old_name | string | 修改之前的文件名称,与name相同的话,说明文件名未更改 |
-- addition | int | 文件添加的行数 |
-- deletion | int | 文件删除的行数 |
-- type | int | 文件类型, 1: 表示该文件只添加了内容,2: 表示该文件内容有修改, 3: 表示文件被删除或者改文件只删除了内容 |
-- isCreated | boolean | 当前文件是否为新增文件, true: 是, false: 否 |
-- isDeleted | boolean | 当前文件是否被删除, true: 是,false: 否 |
-- isBin | boolean | 当前文件是否为二进制文件,true: 是,false: 否 |
-- isLFSFile | boolean | 当前文件是否为LFS文件,true: 是,false: 否 |
-- isRenamed | boolean | 当前文件是否被重命名,true: 是,false: 否 |
-- sections | array | |
---- fileName | string | 文件名称 |
---- lines | array | |
------ leftIdx | string | 文件变动之前所在行数 |
------ rightIdx | string | 文件更改后所在行数 |
------ type | string | 文件变更类型,1: 新增,2: 修改, 3: 删除, 4: diff统计信息 |
------ content | string | 文件变更的内容 |
------ sectionInfo | object | |
-------- path | string | 文件相对仓库的路径 |
-------- lastLeftIdx | int | |
-------- lastRightIdx | int | |
-------- leftHunkSize | int | 文件变更之前的行数 |
-------- rightHunkSize | int | 文件变更之后的行数(及当前页面编辑器显示的总行数) |
-------- leftIdx | int | 文件变更之前所在行数 |
-------- rightIdx | int | 文件变更之后所在行数(即:页面编辑器开始显示的行数) |
返回的JSON示例:
{
"files_count": 6,
"total_addition": 447,
"total_deletion": 0,
"files": [
{
"sha": "xefenisnii",
"name": "文件.txt",
"old_name": "文件.txt",
"index": 6,
"addition": 2,
"deletion": 0,
"type": 1,
"isCreated": true,
"isDeleted": false,
"isBin": false,
"isLFSFile": false,
"isRenamed": false,
"isSubmodule": false,
"sections": [
{
"fileName": "文件.txt",
"name": "",
"lines": [
{
"leftIdx": 0,
"rightIdx": 0,
"type": 4,
"content": "@@ -0,0 +1,2 @@",
"sectionInfo": {
"path": null,
"lastLeftIdx": null,
"lastRightIdx": null,
"leftIdx": 0,
"rightIdx": 0,
"leftHunkSize": null,
"rightHunkSize": null
}
},
{
"leftIdx": 0,
"rightIdx": 1,
"type": 2,
"content": "+用例图一致性更新",
"sectionInfo": null
},
{
"leftIdx": 0,
"rightIdx": 2,
"type": 2,
"content": "+工程文件直接上传会有文件缺失,现在压缩后上传",
"sectionInfo": null
}
]
}
]
}
]
}
获取合并请求的commits列表
获取合并请求的commits列表
示例:
curl -X GET http://localhost:3000/api/jasder/jasder_test/pulls/1/commits.json
await octokit.request('GET /api/jasder/jasder_test/pulls/1/commits.json')
HTTP 请求
GET /api/:owner/:repo/pulls/:id/commits.json
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
owner | 是 | string | 用户登录名 |
repo | 是 | string | project's identifier |
id | 是 | int | pull request's id |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
commits_count | int | commits总数量 |
commits | array | |
-- author | object | 项目作者 |
---- login | string | 用户login |
---- name | string | 用户姓名 |
---- image_url | string | 用户头像 |
-- committer | object | commit提交用户 |
---- login | string | 用户login |
---- name | string | 用户姓名 |
---- image_url | string | 用户头像 |
-- timestamp | int | commit的unix时间戳 |
-- time_from_now | string | commit’s 提交时间距当前时间的时间值 |
-- message | string | commit说明信息 |
-- sha | string | commit’s sha值 |
返回的JSON示例:
{
"commits_count": 1,
"commits": [
{
"author": {
"id": 36480,
"login": "jasder",
"name": "段甲生",
"image_url": "avatars/User/b"
},
"committer": {
"id": 36480,
"login": "jasder",
"name": "段甲生",
"image_url": "avatars/User/b"
},
"timestamp": 1604382982,
"time_from_now": "3小时前",
"message": "add some file\n* Add the tag list page to the release page\n* Apply suggestions from code review\n* Add the tags list view\n* Add the delete tag way on ui\n* Not delete tag and clear message when delete a release\n",
"sha": "8f5faee0d3b3be1b8063e84da0c79dd75327b968"
}
]
}
Compare two commits
Compare two commits
示例:
curl -X GET \
http://localhost:3000/api/Jason/test-txt/compare/master...develop
curl -X GET \
http://localhost:3000/api/Jason/test-txt/compare/master...Jason/test-txt:develop
await octokit.request('GET /api/Jason/test-txt/compare/master...Jason/test-txt:develop')
HTTP 请求
GET /api/:owner/:repo/compare/{base}...{head}.json
请求参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
owner | 是 | string | 用户登录名 |
repo | 是 | string | project's identifier |
base | 是 | string | pull request's id |
head | 是 | string | pull request's id |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
- | - | - |
commits_count | int | commits总数量 |
commits | array | |
-- author | object | 项目作者 |
---- login | string | 用户login |
---- name | string | 用户姓名 |
---- image_url | string | 用户头像 |
-- committer | object | commit提交用户 |
---- login | string | 用户login |
---- name | string | 用户姓名 |
---- image_url | string | 用户头像 |
-- timestamp | int | commit的unix时间戳 |
-- time_from_now | string | commit’s 提交时间距当前时间的时间值 |
-- message | string | commit说明信息 |
-- sha | string | commit’s sha值 |
diff | object | |
-- files_count | int | 文件更改的总数量 |
-- total_addition | int | 添加代码总行数 |
-- total_deletion | int | 删除代码总行数 |
-- files | Array | |
-- sha | string | commit's sha |
-- name | string | 当前文件名 |
-- old_name | string | 修改之前的文件名称,与name相同的话,说明文件名未更改 |
-- addition | int | 文件添加的行数 |
-- deletion | int | 文件删除的行数 |
-- type | int | 文件类型, 1: 表示该文件只添加了内容,2: 表示该文件内容有修改, 3: 表示文件被删除或者改文件只删除了内容 |
-- isCreated | boolean | 当前文件是否为新增文件, true: 是, false: 否 |
-- isDeleted | boolean | 当前文件是否被删除, true: 是,false: 否 |
-- isBin | boolean | 当前文件是否为二进制文件,true: 是,false: 否 |
-- isLFSFile | boolean | 当前文件是否为LFS文件,true: 是,false: 否 |
-- isRenamed | boolean | 当前文件是否被重命名,true: 是,false: 否 |
-- sections | array | |
---- fileName | string | 文件名称 |
---- lines | array | |
------ leftIdx | string | 文件变动之前所在行数 |
------ rightIdx | string | 文件更改后所在行数 |
------ type | string | 文件变更类型,1: 内容未改动,2: 添加, 3: 删除, 4: diff统计信息 |
------ content | string | 文件变更的内容 |
------ sectionInfo | object | |
-------- path | string | 文件相对仓库的路径 |
-------- lastLeftIdx | int | |
-------- lastRightIdx | int | |
-------- leftHunkSize | int | 文件变更之前的行数 |
-------- rightHunkSize | int | 文件变更之后的行数(及当前页面编辑器显示的总行数) |
-------- leftIdx | int | 文件变更之前所在行数 |
-------- rightIdx | int | 文件变更之后所在行数 |
返回的JSON示例:
{
"commits_count": 1,
"commits": [
{
"author": {
"id": 36480,
"login": "jasder",
"name": "段甲生",
"image_url": "avatars/User/b"
},
"committer": {
"id": 36480,
"login": "jasder",
"name": "段甲生",
"image_url": "avatars/User/b"
},
"timestamp": 1604382982,
"time_from_now": "4小时前",
"message": "add some file\n* Add the tag list page to the release page\n* Apply suggestions from code review\n* Add the tags list view\n* Add the delete tag way on ui\n* Not delete tag and clear message when delete a release\n",
"sha": "8f5faee0d3b3be1b8063e84da0c79dd75327b968"
}
],
"diff": {
"files_count": 6,
"total_addition": 447,
"total_deletion": 0,
"files": [
{
"name": "build.go",
"old_name": "build.go",
"index": 1,
"addition": 33,
"deletion": 0,
"type": 1,
"isCreated": true,
"isDeleted": false,
"isBin": false,
"isLFSFile": false,
"isRenamed": false,
"isSubmodule": false,
"sections": [
{
"fileName": "build.go",
"name": "",
"lines": [
{
"leftIdx": 0,
"rightIdx": 0,
"type": 4,
"content": "@@ -0,0 +1,33 @@",
"sectionInfo": {
"path": "build.go",
"lastLeftIdx": 0,
"lastRightIdx": 0,
"leftIdx": 0,
"rightIdx": 1,
"leftHunkSize": 0,
"rightHunkSize": 33
}
},
{
"leftIdx": 0,
"rightIdx": 1,
"type": 2,
"content": "+// Copyright 2020 The Gitea Authors. All rights reserved.",
"sectionInfo": null
}
]
}
]
}
]
}
获取合并请求列表
获取合并请求列表
示例:
curl -X GET http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls.json
await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls.json')
HTTP 请求
GET /api/v1/:owner/:repo/pulls.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
keyword | 否 | string | 搜索关键词 | |
status | 否 | int | 合并请求类型 0: 开启的, 1: 合并的 2: 关闭的,不传则为全部的 | |
priority_id | 否 | int | 优先级ID | |
issue_tag_id | 否 | int | 标记ID | |
version_id | 否 | int | 里程碑ID | |
reviewer_id | 否 | int | 审查人员ID | |
assign_user_id | 否 | int | 指派人员ID | |
sort_by | 否 | created_at | string | 排序字段,created_at: 创建时间, updated_at: 更新时间 |
sort_direction | 否 | desc | string | 排序类型 desc: 倒序 asc: 正序 |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
- | - | - |
total_count | int | 合并请求总数 |
id | int | 合并请求ID |
title | string | 合并请求标题 |
body | string | 合并请求内容 |
head | int | 合并请求源分支 |
base | int | 合并请求目标分支 |
index | int | 合并请求序号 |
is_original | bool | 是否为fork仓库发来的合并请求 |
status | string | 合并请求状态,open: 开启的, merged: 合并的, closed: 关闭的 |
fork_project.id | int | fork仓库的id |
fork_project.identifier | string | fork仓库的标识 |
fork_project.login | string | fork仓库拥有者的标识 |
issue.id | int | 疑修ID |
issue.author | object | 疑修作者 |
issue.priority | string | 疑修优先级 |
issue.version | string | 疑修里程碑 |
issue.journals_count | int | 普通评论数量 |
issue.issue_tags | array | 标记 |
journals_count | int | 审查评论数量 |
返回的JSON示例:
{
"total_count": 2,
"pulls": [
{
"id": 167,
"head": "master",
"base": "master",
"is_original": true,
"index": 4,
"status": "open",
"fork_project": {
"id": 491,
"identifier": "ceshi_commit",
"login": "testforge1"
},
"issue": {
"id": 264,
"author": {
"id": 4,
"type": "User",
"name": "tes tforge1",
"login": "testforge1",
"image_url": "system/lets/letter_avatars/2/T/238_117_19/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"journals_count": 0
},
{
"id": 165,
"head": "master_1",
"base": "master",
"is_original": false,
"index": 3,
"status": "open",
"issue": {
"id": 262,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"journals_count": 0
}
]
}
创建一个合并请求
为仓库创建一个合并请求
示例:
curl -X POST \
http://localhost:3000/api/yystopf/ceshi/pulls.json
await octokit.request('POST /api/yystopf/ceshi/pulls.json')
HTTP 请求
POST /api/:owner/:repo/pulls.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
title | 是 | string | 合并请求标题 | |
body | 否 | string | 合并请求内容 | |
base | 是 | string | 目标分支 | |
head | 是 | string | 源分支 | |
is_original | 是 | bool | 是否为fork仓库发来的合并请求 | |
fork_project_id | 否 | integer | fork仓库ID | |
reviewer_ids | 否 | array | 审查人员id数组 | |
assigned_to_id | 否 | integer | 指派人员ID | |
fixed_version_id | 否 | integer | 里程碑ID | |
issue_tag_ids | 否 | array | 标记ID数组 | |
priority_id | 否 | integer | 优先级ID | |
receivers_login | 否 | array | @人员的login |
请求的JSON示例:
{
"title": "324",
"assigned_to_id": "2",
"fixed_version_id": "",
"issue_tag_ids": [],
"priority_id": "2",
"body": "312",
"head": "new_branch_1",
"base": "master",
"is_original": false,
"fork_project_id": "",
"files_count": 1,
"commits_count": 1,
"reviewer_ids": [],
"receivers_login": []
}
返回的JSON示例:
{
"status": 0,
"message": "响应成功",
"pull_request_id": 169,
"pull_request_number": 6,
"pull_request_status": 0,
"pull_request_head": "new_branch_1",
"pull_request_base": "master",
"pull_request_staus": "open",
"is_original": false,
"fork_project_id": null,
"fork_project_identifier": null,
"fork_project_user": null,
"reviewers": [
"yystopf"
],
"id": 266,
"name": "324",
"pr_time": "1分钟前",
"assign_user_name": "heh",
"assign_user_login": "yystopf",
"author_name": "heh",
"author_login": "yystopf",
"avatar_url": "system/lets/letter_avatars/2/H/188_239_142/120.png",
"priority": "正常",
"version": null,
"journals_count": 0,
"issue_tags": null
}
获取合并请求版本列表
获取合并请求版本列表
示例:
curl -X GET http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/versions.json
await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/versions.json')
HTTP 请求
GET /api/v1/:owner/:repo/pulls/:index/versions.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | int | 合并请求序号 |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
total_count | int | 合并请求版本总数 |
versions.id | int | 版本ID |
versions.add_line_num | int | 该版本新增行数 |
versions.del_line_num | int | 该版本删除行数 |
versions.commits_count | int | 该版本提交总数 |
versions.files_count | int | 该版本提交文件总数 |
versions.base_commit_sha | string | 目标commit ID |
versions.head_commit_sha | string | 源commit ID |
versions.start_commit_sha | string | 该版本起始commit ID |
versions.created_time | int | 版本创建时间 |
versions.updated_time | int | 版本更新时间 |
返回的JSON示例:
{
"total_count": 1,
"versions": [
{
"id": 33,
"add_line_num": 5,
"del_line_num": 2,
"commits_count": 31,
"files_count": 29,
"base_commit_sha": "4a277037093c1248e46d2946ee30b61cccdb9df9",
"head_commit_sha": "fa3b1cdc8e0727d0fb9c96d28c545867c39815b8",
"start_commit_sha": "e49b1fd335e093a440fcf35a21e050afd48ef932",
"created_time": 1658469499,
"updated_time": 1658469499
}
]
}
获取合并请求版本Diff
获取合并请求版本Diff(支持获取单文件Diff)
示例:
curl -X GET \
-d "filepath=ceshi_dir_1/new_file_1" \
http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/versions/33/diff.json
await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/versions/33/diff.json')
HTTP 请求
GET /api/v1/:owner/:repo/pulls/:index/versions/:version_id/diff.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | int | 合并请求序号 | |
version_id | 是 | int | 版本ID | |
filepath | 否 | string | 文件路径 |
列表返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
file_nums | int | 文件数量 |
total_addition | int | 新增行数 |
total_deletion | int | 删除行数 |
files.name | string | 文件名称 |
files.oldname | string | 文件修改前名称 |
files.addition | int | 文件新增行数 |
files.deletion | int | 文件删除行数 |
files.type | int | 文件类型 1: 新增 2: 更改 3: 删除 4: 重命名 5: 复制 |
files.is_created | bool | 是否为新建文件 |
files.is_deleted | bool | 是否为删除文件 |
files.is_bin | bool | 是否为二进制文件 |
files.is_lfs_file | bool | 是否为LFS文件 |
files.is_renamed | bool | 是否重命名 |
files.is_ambiguous | bool | |
files.is_submodule | bool | 是否为子模块 |
files.sections.file_name | string | 文件名称 |
files.sections.name | string | |
files.sections.lines.left_index | int | 文件变动之前所在行数 |
files.sections.lines.right_index | int | 文件变动之后所在行数 |
files.sections.lines.match | int | |
files.sections.lines.type | int | 文件变更类型 |
files.sections.lines.content | string | 文件变更内容 |
files.sections.lines.section_path | string | 文件路径 |
files.sections.lines.section_last_left_index | int | |
files.sections.lines.section_last_right_index | int | |
files.sections.lines.section_left_index | int | 文件变更之前所在行数 |
files.sections.lines.section_right_index | int | 文件变更之后所在行数(即:页面编辑器开始显示的行数) |
files.sections.lines.section_left_hunk_size | int | 文件变更之前的行数 |
files.sections.lines.section_right_hunk_size | int | 文件变更之后的行数(及当前页面编辑器显示的总行数) |
files.is_incomplete | bool | 是否不完整 |
files.is_incomplete_line_too_long | bool | 文件是否不完整是因为太长了 |
files.is_protected | bool | 文件是否被保护 |
列表返回的JSON示例:
{
"file_nums": 29,
"total_addition": 5,
"total_deletion": 2,
"files": [
{
"name": "README.md",
"oldname": "README.md",
"addition": 1,
"deletion": 2,
"type": 2,
"is_created": false,
"is_deleted": false,
"is_bin": false,
"is_lfs_file": false,
"is_renamed": false,
"is_ambiguous": false,
"is_submodule": false,
"sections": [
{
"file_name": "README.md",
"name": "",
"lines": [
{
"left_index": 0,
"right_index": 0,
"match": 0,
"type": 4,
"content": "@@ -1,2 +1 @@",
"section_path": "README.md",
"section_last_left_index": 0,
"section_last_right_index": 0,
"section_left_index": 1,
"section_right_index": 1,
"section_left_hunk_size": 2,
"section_right_hunk_size": 0
},
{
"left_index": 1,
"right_index": 0,
"match": 3,
"type": 3,
"content": "-# ceshi_commit"
},
{
"left_index": 2,
"right_index": 0,
"match": -1,
"type": 3,
"content": "-"
},
{
"left_index": 0,
"right_index": 1,
"match": 1,
"type": 2,
"content": "+adsa"
}
]
},
{}
],
"is_incomplete": false,
"is_incomplete_line_too_long": false,
"is_protected": false
}
]
}
单个文件返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
name | string | 文件名称 |
oldname | string | 文件修改前名称 |
addition | int | 文件新增行数 |
deletion | int | 文件删除行数 |
type | int | 文件类型 1: 新增 2: 更改 3: 删除 4: 重命名 5: 复制 |
is_created | bool | 是否为新建文件 |
is_deleted | bool | 是否为删除文件 |
is_bin | bool | 是否为二进制文件 |
is_lfs_file | bool | 是否为LFS文件 |
is_renamed | bool | 是否重命名 |
is_ambiguous | bool | |
is_submodule | bool | 是否为子模块 |
diff | string | git diff内容 |
sections.file_name | string | 文件名称 |
sections.name | string | |
sections.lines.left_index | int | 文件变动之前所在行数 |
sections.lines.right_index | int | 文件变动之后所在行数 |
sections.lines.match | int | |
sections.lines.type | int | 文件变更类型 |
sections.lines.content | string | 文件变更内容 |
sections.lines.section_path | string | 文件路径 |
sections.lines.section_last_left_index | int | |
sections.lines.section_last_right_index | int | |
sections.lines.section_left_index | int | 文件变更之前所在行数 |
sections.lines.section_right_index | int | 文件变更之后所在行数(即:页面编辑器开始显示的行数) |
sections.lines.section_left_hunk_size | int | 文件变更之前的行数 |
sections.lines.section_right_hunk_size | int | 文件变更之后的行数(及当前页面编辑器显示的总行数) |
is_incomplete | bool | 是否不完整 |
is_incomplete_line_too_long | bool | 文件是否不完整是因为太长了 |
is_protected | bool | 文件是否被保护 |
单个文件返回的JSON示例:
{
"name": "README.md",
"oldname": "README.md",
"addition": 1,
"deletion": 2,
"type": 2,
"is_created": false,
"is_deleted": false,
"is_bin": false,
"is_lfs_file": false,
"is_renamed": false,
"is_ambiguous": false,
"is_submodule": false,
"sections": [
{
"file_name": "README.md",
"name": "",
"lines": [
{
"left_index": 0,
"right_index": 0,
"match": 0,
"type": 4,
"content": "@@ -1,2 +1 @@",
"section_path": "README.md",
"section_last_left_index": 0,
"section_last_right_index": 0,
"section_left_index": 1,
"section_right_index": 1,
"section_left_hunk_size": 2,
"section_right_hunk_size": 0
},
{
"left_index": 1,
"right_index": 0,
"match": 3,
"type": 3,
"content": "-# ceshi_commit"
},
{
"left_index": 2,
"right_index": 0,
"match": -1,
"type": 3,
"content": "-"
},
{
"left_index": 0,
"right_index": 1,
"match": 1,
"type": 2,
"content": "+adsa"
}
]
},
{
"file_name": "README.md",
"name": "",
"lines": [
{
"left_index": 0,
"right_index": 0,
"match": 0,
"type": 4,
"content": " ",
"section_path": "README.md",
"section_last_left_index": 0,
"section_last_right_index": 1,
"section_left_index": 3,
"section_right_index": 2,
"section_left_hunk_size": 0,
"section_right_hunk_size": 0
}
]
}
],
"is_incomplete": false,
"is_incomplete_line_too_long": false,
"is_protected": false
}
获取合并请求审查列表
获取合并请求版本审查列表
示例:
curl -X GET http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/reviews.json
await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/reviews.json')
HTTP 请求
GET /api/v1/:owner/:repo/pulls/:index/reviews.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | int | 合并请求序号 | |
status | 否 | string | 审查类型, common: 评论类型, approved: 已通过, rejected: 已拒绝 |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
total_count | int | 审查总数 |
reviews.reviewer | object | 审查者 |
reviews.pull_request.id | integer | 合并请求ID |
reviews.pull_request.title | string | 合并请求标题 |
reviews.pull_request.body | string | 合并请求内容 |
reviews.pull_request.head | string | 合并请求源分支 |
reviews.pull_request.base | string | 合并请求目标分支 |
reviews.pull_request.is_original | string | 合并请求是否从fork仓库所来 |
reviews.pull_request.fork_project.id | int | fork仓库的id |
reviews.pull_request.fork_project.identifier | string | fork仓库的标识 |
reviews.pull_request.fork_project.login | string | fork仓库拥有者的标识 |
reviews.pull_request.index | string | 合并请求的序号 |
reviews.pull_request.status | string | 合并请求的状态,open: 打开的, merged: 合并的, closed: 关闭的 |
reviews.pull_request.issue.id | integer | 合并请求下疑修的ID |
reviews.pull_request.issue.author | object | 合并请求以及疑修的创建着 |
reviews.pull_request.issue.priority | string | 疑修的优先级 |
reviews.pull_request.issue.version | string | 疑修的里程碑 |
reviews.pull_request.issue.journals_count | integer | 普通评论数量 |
reviews.pull_request.issue.issue_tags | array | 所属标记 |
reviews.pull_request.journals_count | integer | 审查评论数量 |
reviews.id | integer | 审查ID |
reviews.commit_id | string | 审查的commit ID |
reviews.content | string | 审查的内容 |
reviews.status | string | 审查类型,common: 普通, approved: 通过,rejected: 拒绝通过 |
reviews.created_at | string | 审查创建时间 |
返回的JSON示例:
{
"total_count": 1,
"reviews": [
{
"reviewer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"pull_request": {
"id": 163,
"title": "新合并请求1",
"body": null,
"head": "master_1",
"base": "master",
"is_original": false,
"index": 1,
"status": "closed",
"issue": {
"id": 260,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"reviewers": [],
"journals_count": 8
},
"id": 5,
"commit_id": null,
"content": "新建一个审查",
"status": "common",
"created_at": "2022-07-25 17:08"
}
]
}
为合并请求创建一个审查
合并请求创建一个审查
示例:
curl -X POST \
http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/reviews.json
await octokit.request('POST /api/v1/yystopf/ceshi/pulls/1/reviews.json')
HTTP 请求
POST /api/v1/:owner/:repo/pulls/:index/reviews.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | integer | 合并请求序号 | |
content | 否 | string | 审查内容 | |
commit_id | 否 | string | 当前合并请求的commit_id | |
status | 是 | string | 审查类型, common: 普通, approved: 通过, rejected: 拒绝 |
请求的JSON示例:
{
"content": "新建一个审查",
"commit_id": "e506844b2467ce25a35dd46dad8236a1595a02da",
"status": "common"
}
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
reviewer | object | 审查者 |
pull_request.id | integer | 合并请求ID |
pull_request.title | string | 合并请求标题 |
pull_request.body | string | 合并请求内容 |
pull_request.head | string | 合并请求源分支 |
pull_request.base | string | 合并请求目标分支 |
pull_request.is_original | string | 合并请求是否从fork仓库所来 |
pull_request.fork_project.id | int | fork仓库的id |
pull_request.fork_project.identifier | string | fork仓库的标识 |
pull_request.fork_project.login | string | fork仓库拥有者的标识 |
pull_request.index | string | 合并请求的序号 |
pull_request.status | string | 合并请求的状态,open: 打开的, merged: 合并的, closed: 关闭的 |
pull_request.issue.id | integer | 合并请求下疑修的ID |
pull_request.issue.author | object | 合并请求以及疑修的创建着 |
pull_request.issue.priority | string | 疑修的优先级 |
pull_request.issue.version | string | 疑修的里程碑 |
pull_request.issue.journals_count | integer | 普通评论数量 |
pull_request.issue.issue_tags | array | 所属标记 |
pull_request.journals_count | integer | 审查评论数量 |
id | integer | 审查ID |
commit_id | string | 审查的commit ID |
content | string | 审查的内容 |
status | string | 审查类型,common: 普通, approved: 通过,rejected: 拒绝通过 |
created_at | string | 审查创建时间 |
返回的JSON示例:
{
"reviewer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"pull_request": {
"id": 163,
"head": "master_1",
"base": "master",
"is_original": false,
"index": 1,
"status": "closed",
"issue": {
"id": 260,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"journals_count": 6
},
"id": 10,
"commit_id": "e506844b2467ce25a35dd46dad8236a1595a02da",
"content": "新建一个审查",
"status": "common",
"created_at": "2022-07-26 11:45"
}
获取合并请求评论列表
获取合并请求版本评论列表
示例:
curl -X GET http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/journals.json
await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/journals.json')
HTTP 请求
GET /api/v1/:owner/:repo/pulls/:index/journals.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | int | 合并请求序号 | |
keyword | 否 | string | 搜索关键词 | |
review_id | 否 | integer | 审查ID | |
need_respond | 否 | bool | 是否需要回应 | |
state | 否 | string | 状态, opened: 开启的, resolved: 已解决的, disabled: 无效的 | |
parent_id | 否 | integer | 父评论ID | |
path | 否 | string | 评论文件路径 | |
is_full | 否 | bool | 是否展示全部评论(包括回复) | |
sort_by | 否 | created_on | string | 排序字段 created_on: 创建时间, updated_on: 更新时间 |
sort_direction | 否 | asc | string | 排序类型 desc: 倒序, asc: 正序 |
返回字段说明:
参数 | 类型 | 字段说明 |
---|---|---|
total_count | int | 评论总数 |
journals.id | int | 评论ID |
journals.notes | string | 评论内容 |
journals.commit_id | string | CommitID |
journals.line_code | string | 评论行数 |
journals.path | string | 评论文件路径 |
journals.diff | object | 评论文件diff内容 |
journals.need_respond | bool | 评论是否要回应 |
journals.state | string | 评论状态,opened: 开启的, resolved: 已解决的, disabled: 无效的 |
journals.parent_id | int | 父评论ID |
journals.user | object | 评论创建者 |
journals.review | object | 评论所属评审 |
journals.resolveer | object | 评论解决者 |
journals.resolve_at | int | 评论解决时间 |
journals.created_at | int | 评论创建时间 |
journals.updated_at | int | 评论更新时间 |
返回的JSON示例:
{
"total_count": 1,
"journals": [
{
"id": 200,
"note": "测试评论修改",
"commit_id": null,
"line_code": "70eede447ccc01c1902260fd377af5d90be28e0d_0_29",
"path": "Gemfile.lock",
"diff": {},
"need_respond": true,
"state": "resolved",
"parent_id": nil,
"user": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"review": {
"reviewer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"pull_request": {
"id": 163,
"title": "新合并请求1",
"body": null,
"head": "master_1",
"base": "master",
"is_original": false,
"index": 1,
"status": "closed",
"issue": {
"id": 260,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"reviewers": [],
"journals_count": 9
},
"id": 10,
"commit_id": "1",
"content": "新建一个审查",
"status": "common",
"created_at": "2022-07-26 11:45"
},
"resolveer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"resolve_at": "2022-07-27 14:50",
"created_at": "2022-07-27 14:31",
"updated_at": "2022-07-27 14:50"
}
]
}
创建一个合并请求评论
为仓库创建一个合并请求的评论
示例:
curl -X POST \
http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/journals.json
await octokit.request('POST /api/v1/yystopf/ceshi/pulls/1/journals.json')
HTTP 请求
POST /api/v1/:owner/:repo/pulls/:index/journals.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | integer | 合并请求序号 | |
type | 否 | comment | string | 评论类型 comment: 普通, problem: 需要回应的评论 |
note | 否 | string | 评论内容 | |
review_id | 否 | string | 审查ID | |
line_code | 否 | string | 行号 | |
commit_id | 否 | bool | commitID | |
path | 否 | integer | 文件路径 | |
parent_id | 否 | integer | 父评论ID | |
diff | 否 | array | 文件diff内容 |
请求的JSON示例:
{
"type": "problem",
"note": "测试评论",
"review_id": "10",
"line_code": "70eede447ccc01c1902260fd377af5d90be28e0d_0_29",
"commit_id": "70eede447ccc01c1902260fd377af5d90be28e0d",
"path": "Gemfile.lock",
"diff": {
"name": "README.md",
"oldname": "README.md",
"addition": 1,
"deletion": 2,
"type": 2,
"is_created": false,
"is_deleted": false,
"is_bin": false,
"is_lfs_file": false,
"is_renamed": false,
"is_ambiguous": false,
"is_submodule": false,
"sections": [
{
"file_name": "README.md",
"name": "",
"lines": [
{
"left_index": 0,
"right_index": 0,
"match": 0,
"type": 4,
"content": "@@ -1,2 +1 @@",
"section_path": "README.md",
"section_last_left_index": 0,
"section_last_right_index": 0,
"section_left_index": 1,
"section_right_index": 1,
"section_left_hunk_size": 2,
"section_right_hunk_size": 0
},
{
"left_index": 1,
"right_index": 0,
"match": 3,
"type": 3,
"content": "-# ceshi_commit"
},
{
"left_index": 2,
"right_index": 0,
"match": -1,
"type": 3,
"content": "-"
},
{
"left_index": 0,
"right_index": 1,
"match": 1,
"type": 2,
"content": "+adsa"
}
]
},
{
"file_name": "README.md",
"name": "",
"lines": [
{
"left_index": 0,
"right_index": 0,
"match": 0,
"type": 4,
"content": " ",
"section_path": "README.md",
"section_last_left_index": 0,
"section_last_right_index": 1,
"section_left_index": 3,
"section_right_index": 2,
"section_left_hunk_size": 0,
"section_right_hunk_size": 0
}
]
}
],
"is_incomplete": false,
"is_incomplete_line_too_long": false,
"is_protected": false
}
}
返回的JSON示例:
{
"id": 200,
"note": "测试评论修改",
"commit_id": null,
"line_code": "70eede447ccc01c1902260fd377af5d90be28e0d_0_29",
"path": "Gemfile.lock",
"diff": {},
"need_respond": true,
"state": "resolved",
"user": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"review": {
"reviewer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"pull_request": {
"id": 163,
"title": "新合并请求1",
"body": null,
"head": "master_1",
"base": "master",
"is_original": false,
"index": 1,
"status": "closed",
"issue": {
"id": 260,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"reviewers": [],
"journals_count": 9
},
"id": 10,
"commit_id": "1",
"content": "新建一个审查",
"status": "common",
"created_at": "2022-07-26 11:45"
},
"resolveer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"resolve_at": "2022-07-27 14:50",
"created_at": "2022-07-27 14:31",
"updated_at": "2022-07-27 14:50"
}
修改一个合并请求评论
修改一个仓库合并请求的评论
示例:
curl -X PATCH \
http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/journals/200.json
await octokit.request('PATCH /api/v1/yystopf/ceshi/pulls/1/journals/200.json')
HTTP 请求
PATCH /api/v1/:owner/:repo/pulls/:index/journals/:id.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | integer | 合并请求序号 | |
id | 是 | integer | 评论ID | |
note | 是 | string | 评论内容 | |
commit_id | 是 | string | commitID | |
state | 是 | string | 评论状态, opened: 开启的, resolved: 已解决的, disabled: 无效的 |
请求的JSON示例:
{
"note": "测试评论",
"commit_id": "70eede447ccc01c1902260fd377af5d90be28e0d",
"state": "resolved"
}
返回的JSON示例:
{
"id": 200,
"note": "测试评论修改",
"commit_id": null,
"line_code": "70eede447ccc01c1902260fd377af5d90be28e0d_0_29",
"path": "Gemfile.lock",
"diff": {},
"need_respond": true,
"state": "resolved",
"user": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"review": {
"reviewer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"pull_request": {
"id": 163,
"title": "新合并请求1",
"body": null,
"head": "master_1",
"base": "master",
"is_original": false,
"index": 1,
"status": "closed",
"issue": {
"id": 260,
"author": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"priority": null,
"version": null,
"journals_count": 0,
"issue_tags": null
},
"reviewers": [],
"journals_count": 9
},
"id": 10,
"commit_id": "1",
"content": "新建一个审查",
"status": "common",
"created_at": "2022-07-26 11:45"
},
"resolveer": {
"id": 2,
"type": "User",
"name": "heh",
"login": "yystopf",
"image_url": "system/lets/letter_avatars/2/H/188_239_142/120.png"
},
"resolve_at": "2022-07-27 14:50",
"created_at": "2022-07-27 14:31",
"updated_at": "2022-07-27 14:50"
}
删除合并请求的一个评论
删除合并请求的一个评论
示例:
curl -X DELETE \
http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/journals/200.json
await octokit.request('DELETE /api/v1/yystopf/ceshi/pulls/1/journals/200.json')
HTTP 请求
DELETE /api/v1/:owner/:repo/pulls/:index/journals/:id.json
请求参数:
参数 | 必选 | 默认 | 类型 | 字段说明 |
---|---|---|---|---|
owner | 是 | string | 用户登录名 | |
repo | 是 | string | 项目标识identifier | |
index | 是 | integer | 合并请求序号 | |
id | 是 | integer | 评论ID |
返回字段说明:
返回的JSON示例:
{
"status": 0,
"message": "success"
}