GetCompare - 查询代码比较内容

通过 OpenAPI查询代码比较内容。

说明

可获取 branch、commit 或者 tag 之间的比较内容。from 和 to 的顺序应遵循 Git 命令行执行的顺序,这与 UI 页面的顺序相反。此外,在进行比较时,需确保比较的类型一致,例如 branch 与 branch 之间的比较,以及 commit 与 commit 之间的比较。

适用版本

企业标准版

服务接入点与授权信息

产品

资源

所需权限

代码管理

代码比较

只读

请求语法

GET https://{domain}/oapi/v1/codeup/organizations/{organizationId}/repositories/{repositoryId}/compares

请求头

参数

类型

是否必填

描述

示例值

x-yunxiao-token

string

个人访问令牌。

pt-0fh3****0fbG_35af****0484

请求参数

参数

类型

位置

是否必填

描述

示例值

organizationId

string

path

组织 ID。

5ebbc0228123212b59xxxxx

repositoryId

string

path

代码库 ID 或者 URL-Encoder 编码的全路径。

2369234

from

string

query

可为 CommitSHA、分支名或者标签名。

c9fb781f3d66ef6ee60bdd5c414f5106454b1426

to

string

query

可为 CommitSHA、分支名或者标签名。

b8f6f28520b1936aafe2e638373e19ccafa42b02

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://test.rdc.aliyuncs.com/oapi/v1/codeup/organizations/{organizationId}/repositories/{repositoryId}/compares?from=<from>&to=<to>&sourceType=<sourceType>&targetType=<targetType>&straight=<straight>' \
  -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

authoredDate

string

作者提交时间。

2023-01-03T15:41:26+08:00

committedDate

string

提交者提交时间。

2023-01-03T15:41:26+08:00

committerEmail

string

提交者邮箱。

username@example.com

committerName

string

提交者姓名。

云效CodeupCommitter

id

string

提交 ID。

b8f6f28520b1936aafe2e638373e19ccafa42b02

message

string

提交内容。

""

parentIds

array[string]

父提交 ID。

b8f6f

shortId

string

代码组路径。

b8f6f285

stats

object

变更行数。

additions

integer

增加行数。

0

deletions

integer

删除行数。

0

total

integer

总变动行数。

0

title

string

标题,提交的第一行内容。

提交标题

webUrl

string

页面访问地址。

""

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

新文件路径。

new_test.txt

oldId

string

旧文件的 git object id。

0000000000000000000000000000000000000000

oldPath

string

旧文件路径。

test.txt

renamedFile

boolean

是否是重命名文件。

false

返回示例

{
    "commits": [
        {
            "authorEmail": "username@example.com",
            "authorName": "云效Codeup",
            "authoredDate": "2023-01-03T15:41:26+08:00",
            "committedDate": "2023-01-03T15:41:26+08:00",
            "committerEmail": "username@example.com",
            "committerName": "云效CodeupCommitter",
            "id": "b8f6f28520b1936aafe2e638373e19ccafa42b02",
            "message": "",
            "parentIds": [
                "b8f6f"
            ],
            "shortId": "b8f6f285",
            "stats": {
                "additions": 0,
                "deletions": 0,
                "total": 0
            },
            "title": "提交标题",
            "webUrl": ""
        }
    ],
    "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": "new_test.txt",
            "oldId": "0000000000000000000000000000000000000000",
            "oldPath": "test.txt",
            "renamedFile": false
        }
    ]
}

错误码

访问错误码中心查看 API 相关错误码。