diff --git a/app/controllers/api/v1/projects/pull_requests/versions_controller.rb b/app/controllers/api/v1/projects/pull_requests/versions_controller.rb deleted file mode 100644 index abeaf7fd..00000000 --- a/app/controllers/api/v1/projects/pull_requests/versions_controller.rb +++ /dev/null @@ -1,10 +0,0 @@ -class Api::V1::Projects::PullRequests::VersionsController < Api::V1::Projects::PullRequests::BaseController - - def index - @result_object = Api::V1::Projects::PullRequests::Versions::ListService.call(@project, @pull_request, {page: page, limit: limit}, current_user&.gitea_token) - end - - def diff - @result_object = Api::V1::Projects::PullRequests::Versions::GetDiffService.call(@project, @pull_request, params[:id], {filepath: params[:filepath]}, current_user&.gitea_token) - end -end \ No newline at end of file diff --git a/app/controllers/api/v1/projects/pull_requests/base_controller.rb b/app/controllers/api/v1/projects/pulls/base_controller.rb similarity index 79% rename from app/controllers/api/v1/projects/pull_requests/base_controller.rb rename to app/controllers/api/v1/projects/pulls/base_controller.rb index 089a2bf7..0d5ae08b 100644 --- a/app/controllers/api/v1/projects/pull_requests/base_controller.rb +++ b/app/controllers/api/v1/projects/pulls/base_controller.rb @@ -1,9 +1,9 @@ -class Api::V1::Projects::PullRequests::BaseController < Api::V1::BaseController +class Api::V1::Projects::Pulls::BaseController < Api::V1::BaseController before_action :require_public_and_member_above before_action :load_pull_request def load_pull_request - pull_request_id = params[:pull_request_id] || params[:id] + pull_request_id = params[:pull_id] || params[:id] @pull_request = @project.pull_requests.where(gitea_number: pull_request_id).where.not(id: pull_request_id).take || PullRequest.find_by_id(pull_request_id) @issue = @pull_request&.issue if @pull_request diff --git a/app/controllers/api/v1/projects/pulls/versions_controller.rb b/app/controllers/api/v1/projects/pulls/versions_controller.rb new file mode 100644 index 00000000..dfd5d9e9 --- /dev/null +++ b/app/controllers/api/v1/projects/pulls/versions_controller.rb @@ -0,0 +1,10 @@ +class Api::V1::Projects::Pulls::VersionsController < Api::V1::Projects::Pulls::BaseController + + def index + @result_object = Api::V1::Projects::Pulls::Versions::ListService.call(@project, @pull_request, {page: page, limit: limit}, current_user&.gitea_token) + end + + def diff + @result_object = Api::V1::Projects::Pulls::Versions::GetDiffService.call(@project, @pull_request, params[:id], {filepath: params[:filepath]}, current_user&.gitea_token) + end +end \ No newline at end of file diff --git a/app/controllers/reviews_controller.rb b/app/controllers/reviews_controller.rb index eec57113..e1201690 100644 --- a/app/controllers/reviews_controller.rb +++ b/app/controllers/reviews_controller.rb @@ -5,7 +5,7 @@ class ReviewsController < ApplicationController def create return render_forbidden('您不是审查人员,无法进行审查!') if current_user&.id != @pull_request.issue.assigned_to_id - @journal, @review = Api::V1::Projects::PullRequests::Reviews::CreateService.call(@project, @pull_request, review_params, current_user) + @journal, @review = Api::V1::Projects::Pulls::Reviews::CreateService.call(@project, @pull_request, review_params, current_user) end private diff --git a/app/docs/slate/source/includes/_pulls.md b/app/docs/slate/source/includes/_pulls.md index b9ad3b0b..e7df6409 100644 --- a/app/docs/slate/source/includes/_pulls.md +++ b/app/docs/slate/source/includes/_pulls.md @@ -499,4 +499,319 @@ await octokit.request('GET /api/Jasder/gitlink/pulls.json') } ] } +``` + +## 获取合并请求版本列表 +获取合并请求版本列表 + +> 示例: + +```shell +curl -X GET http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/versions.json +``` + +```javascript +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示例: + +```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) + +> 示例: + +```shell +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 +``` + +```javascript +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示例: + +```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|是否为子模块| +|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示例: + +```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 +} ``` \ No newline at end of file diff --git a/app/docs/slate/source/includes/_repositories.md b/app/docs/slate/source/includes/_repositories.md index ae74dac7..a07f2351 100644 --- a/app/docs/slate/source/includes/_repositories.md +++ b/app/docs/slate/source/includes/_repositories.md @@ -1990,25 +1990,27 @@ await octokit.request('GET /api/v1/yystopf/csfjkkj/compare.json') |diff.files.is_created|bool|是否为新建文件| |diff.files.is_deleted|bool|是否为删除文件| |diff.files.is_bin|bool|是否为二进制文件| -|diff.files.is_lfs_file|bool|| +|diff.files.is_lfs_file|bool|是否为LFS文件| |diff.files.is_renamed|bool|是否重命名| |diff.files.is_ambiguous|bool|| |diff.files.is_submodule|bool|是否为子模块| |diff.files.sections.file_name|string|文件名称| |diff.files.sections.name|string|| -|diff.files.sections.lines.left_index|int|| -|diff.files.sections.lines.right_index|int|| +|diff.files.sections.lines.left_index|int|文件变动之前所在行数| +|diff.files.sections.lines.right_index|int|文件变动之后所在行数| |diff.files.sections.lines.match|int|| -|diff.files.sections.lines.type|int|| -|diff.files.sections.lines.content|string|| -|diff.files.sections.lines.section_path|string|| +|diff.files.sections.lines.type|int|文件变更类型| +|diff.files.sections.lines.content|string|文件变更内容| +|diff.files.sections.lines.section_path|string|文件路径| |diff.files.sections.lines.section_last_left_index|int|| |diff.files.sections.lines.section_last_right_index|int|| -|diff.files.sections.lines.section_left_index|int|| -|diff.files.sections.lines.section_right_index|int|| -|diff.files.sections.lines.section_left_hunk_size|int|| -|diff.files.sections.lines.section_right_hunk_size|int|| - +|diff.files.sections.lines.section_left_index|int|文件变更之前所在行数| +|diff.files.sections.lines.section_right_index|int|文件变更之后所在行数(即:页面编辑器开始显示的行数)| +|diff.files.sections.lines.section_left_hunk_size|int|文件变更之前的行数| +|diff.files.sections.lines.section_right_hunk_size|int|文件变更之后的行数(及当前页面编辑器显示的总行数)| +|diff.files.is_incomplete|bool|是否不完整| +|diff.files.is_incomplete_line_too_long|bool|文件是否不完整是因为太长了| +|diff.files.is_protected|bool|文件是否被保护| > 返回的JSON示例: diff --git a/app/services/api/v1/projects/pull_requests/reviews/create_service.rb b/app/services/api/v1/projects/pulls/reviews/create_service.rb similarity index 93% rename from app/services/api/v1/projects/pull_requests/reviews/create_service.rb rename to app/services/api/v1/projects/pulls/reviews/create_service.rb index c003256d..13ec9f7e 100644 --- a/app/services/api/v1/projects/pull_requests/reviews/create_service.rb +++ b/app/services/api/v1/projects/pulls/reviews/create_service.rb @@ -1,4 +1,4 @@ -class Api::V1::Projects::PullRequests::Reviews::CreateService < ApplicationService +class Api::V1::Projects::Pulls::Reviews::CreateService < ApplicationService include ActiveModel::Model attr_reader :project, :pull_request, :issue, :status, :commit_id, :content, :current_user diff --git a/app/services/api/v1/projects/pull_requests/versions/get_diff_service.rb b/app/services/api/v1/projects/pulls/versions/get_diff_service.rb similarity index 91% rename from app/services/api/v1/projects/pull_requests/versions/get_diff_service.rb rename to app/services/api/v1/projects/pulls/versions/get_diff_service.rb index 7c15fc6a..1a4f144a 100644 --- a/app/services/api/v1/projects/pull_requests/versions/get_diff_service.rb +++ b/app/services/api/v1/projects/pulls/versions/get_diff_service.rb @@ -1,4 +1,4 @@ -class Api::V1::Projects::PullRequests::Versions::GetDiffService < ApplicationService +class Api::V1::Projects::Pulls::Versions::GetDiffService < ApplicationService attr_reader :project, :pull_request, :version_id, :owner, :repo, :index, :filepath, :token attr_accessor :gitea_data diff --git a/app/services/api/v1/projects/pull_requests/versions/list_service.rb b/app/services/api/v1/projects/pulls/versions/list_service.rb similarity index 91% rename from app/services/api/v1/projects/pull_requests/versions/list_service.rb rename to app/services/api/v1/projects/pulls/versions/list_service.rb index f33145b9..ca88ff1f 100644 --- a/app/services/api/v1/projects/pull_requests/versions/list_service.rb +++ b/app/services/api/v1/projects/pulls/versions/list_service.rb @@ -1,4 +1,4 @@ -class Api::V1::Projects::PullRequests::Versions::ListService < ApplicationService +class Api::V1::Projects::Pulls::Versions::ListService < ApplicationService attr_reader :project, :pull_request, :token, :owner, :repo, :index, :page, :limit attr_accessor :gitea_data diff --git a/app/views/api/v1/projects/pull_requests/versions/diff.json.jbuilder b/app/views/api/v1/projects/pulls/versions/diff.json.jbuilder similarity index 100% rename from app/views/api/v1/projects/pull_requests/versions/diff.json.jbuilder rename to app/views/api/v1/projects/pulls/versions/diff.json.jbuilder diff --git a/app/views/api/v1/projects/pull_requests/versions/index.json.jbuilder b/app/views/api/v1/projects/pulls/versions/index.json.jbuilder similarity index 100% rename from app/views/api/v1/projects/pull_requests/versions/index.json.jbuilder rename to app/views/api/v1/projects/pulls/versions/index.json.jbuilder diff --git a/config/routes/api.rb b/config/routes/api.rb index 4f59995b..8340097e 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -19,7 +19,7 @@ defaults format: :json do # projects文件夹下的 scope module: :projects do resources :issues - resources :pull_requests, module: 'pull_requests' do + resources :pulls, module: 'pulls' do resources :versions, only: [:index] do member do get :diff diff --git a/public/docs/api.html b/public/docs/api.html index 52e114d7..297c1dc8 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -609,6 +609,12 @@
获取合并请求版本列表
+ +++示例:
+
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')
+
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)
+ +++示例:
+
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')
+
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 | +是否为子模块 | +
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
+}