通过 OpenAPI 可获取 branch、commit 或者 tag 之间的比较内容;注意,from 和 to 的顺序为 git 命令行执行的顺序,与 UI 页面的顺序相反,再者,比较时应该确保是相同类型比较,例如 branch 与 branch,commit 与 commit。
适用版本 | 中心版、Region版 |
服务接入点与授权信息
产品 | 资源 | 所需权限 |
代码管理 | 代码比较 | 只读 |
请求语法
中心版
GET https://{domain}/oapi/v1/codeup/organizations/{organizationId}/repositories/{repositoryId}/comparesRegion版
GET https://{domain}/oapi/v1/codeup/repositories/{repositoryId}/compares请求头
参数 | 类型 | 是否必填 | 描述 | 示例值 |
x-yunxiao-token | string | 是 | 个人访问令牌。 | pt-0fh3****0fbG_35af****0484 |
请求参数
参数 | 类型 | 位置 | 是否必填 | 描述 | 示例值 |
organizationId | string | path |
| 组织 ID。 | 60d54f3daccf2bbd6659f3ad |
repositoryId | string | path | 是 | 代码库 ID 或者 URL-Encoder 编码的全路径。 | 2813489或者60de7a6852743a5162b5f957%2FDemoRepo |
from | string | query | 是 | 可为 CommitSHA、分支名或者标签名。 | master |
to | string | query | 是 | 可为 CommitSHA、分支名或者标签名。 | dev_branch |
sourceType | string | query | 否 | 可选值:branch、tag;若是 commit 比较,可不传;若是分支比较,则需传入:branch,亦可不传,但需要确保不存在分支或 Tag 重名的情况;若是 tag 比较,则需传入:tag;若是存在分支和标签同名的情况,则需要严格传入 branch 或者 tag。 | branch |
targetType | string | query | 否 | 可选值:branch、tag;若是 commit 比较,可不传;若是分支比较,则需传入:branch,亦可不传,但需要确保不存在分支或 Tag 重名的情况;若是 tag 比较,则需传入:tag;若是存在分支和标签同名的情况,则需要严格传入 branch 或者 tag。 | branch |
straight | string | query | 否 | 是否使用 Merge-Base:straight=false,表示使用 Merge-Base;straight=true,表示不使用 Merge-Base;默认为 false,即使用 Merge-Base。 | false |
请求示例
中心版
curl -X 'GET' \
'https://{domain}/oapi/v1/codeup/organizations/60d54f3daccf2bbd6659f3ad/repositories/2813489或者60de7a6852743a5162b5f957%2FDemoRepo/compares?from=master&to=dev_branch&sourceType=branch&targetType=branch&straight=false' \
-H 'Content-Type: application/json' \
-H 'x-yunxiao-token: pt-0fh3****0fbG_35af****0484'Region版
curl -X 'GET' \
'https://{domain}/oapi/v1/codeup/repositories/2813489或者60de7a6852743a5162b5f957%2FDemoRepo/compares?from=master&to=dev_branch&sourceType=branch&targetType=branch&straight=false' \
-H 'Content-Type: application/json' \
-H 'x-yunxiao-token: pt-0fh3****0fbG_35af****0484'返回参数
参数 | 类型 | 描述 | 示例值 |
| - | object | ||
| commits | array | 差异提交列表。 | |
| - | object | ||
authorEmail | string | 作者邮箱。 | username@example.com |
authorName | string | 作者姓名。 | codeup-name |
authoredDate | string | 作者提交时间。 | 2024-10-05T15:30:45Z |
committedDate | string | 提交者提交时间。 | 2024-10-05T15:30:45Z |
committerEmail | string | 提交者邮箱。 | username@example.com |
committerName | string | 提交者姓名。 | codeup-name |
id | string | 提交 ID。 | 6da8c14b5a9102998148b7ea35f96507d5304f74 |
message | string | 提交内容。 | commit message detail |
parentIds | array[string] | 父提交 ID。 | ["3fdaf119cf76539c1a47de0074ac02927ef4c8e1"] |
shortId | string | 提交短 ID。 | 6da8c14b |
title | string | 标题,提交的第一行内容。 | commit msg title |
webUrl | string | 页面访问地址。 | http://exmaple.com/example_repo/commit/commit_sha |
| diffs | array | 差异内容。 | |
| - | object | ||
aMode | string | 旧文件的模式标识,包含文件类型、权限等信息。 | 0 |
bMode | string | 新文件的模式标识,包含文件类型、权限等信息。 | 100644 |
deletedFile | boolean | 是否是删除文件。 | false |
diff | string | 比较内容。 | --- /dev/null\n+++ b/asda\n@@ -0,0 +1 @@\n+asdasd\n\ No newline at end of file\n |
isBinary | boolean | 是否是二进制文件。 | false |
newFile | boolean | 是否是新增文件。 | true |
newId | string | 新文件的 git object id。 | 9118d6c90d0d80f906e70baf6af04a50ff660d7b |
newPath | string | 新文件路径。 | src/test/main.java |
oldId | string | 旧文件的 git object id。 | 0000000000000000000000000000000000000000 |
oldPath | string | 旧文件路径。 | src/test/main.java |
renamedFile | boolean | 是否是重命名文件。 | false |
返回示例
{
"commits": [
{
"authorEmail": "username@example.com",
"authorName": "codeup-name",
"authoredDate": "2024-10-05T15:30:45Z",
"committedDate": "2024-10-05T15:30:45Z",
"committerEmail": "username@example.com",
"committerName": "codeup-name",
"id": "6da8c14b5a9102998148b7ea35f96507d5304f74",
"message": "commit message detail",
"parentIds": ["3fdaf119cf76539c1a47de0074ac02927ef4c8e1"],
"shortId": "6da8c14b",
"title": "commit msg title",
"webUrl": "http://exmaple.com/example_repo/commit/commit_sha"
}
],
"diffs": [
{
"aMode": "0",
"bMode": "100644",
"deletedFile": false,
"diff": "--- /dev/null\n+++ b/asda\n@@ -0,0 +1 @@\n+asdasd\n\\ No newline at end of file\n",
"isBinary": false,
"newFile": true,
"newId": "9118d6c90d0d80f906e70baf6af04a50ff660d7b",
"newPath": "src/test/main.java",
"oldId": "0000000000000000000000000000000000000000",
"oldPath": "src/test/main.java",
"renamedFile": false
}
]
}错误码
访问错误码中心查看 API 相关错误码。