# 用户
# 获取用户信息列表
函数使用
page和per_page作为分页参数限制返回列表的大小。
# 作为普通用户
GET /api/v3/users
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| page | integer(可选) | 页数 (默认值:1) |
| per_page | integer(可选) | 默认页面大小 (默认值 20,最大值: 100) |
返回值:
[
{
"id": 2235,
"username": "luci",
"web_url": "https://git.tencent.com/u/luci",
"name": "luci",
"state": "active",
"avatar_url": "git.tencent.com/assets/images/avatar/no_user_avatar.png",
"last_active_at": "2024-01-11T01:55:12+0000"
}
]
# 获取用户关注项目列表
获取当前用户关注的项目列表
GET /api/v3/user/watched
返回值:
[
{
"id": 4484,
"description": "",
"public": false,
"archived": false,
"visibility_level": 0,
"namespace": {
"created_at": "2016-06-06T08:02:39+0000",
"description": "",
"id": 6854,
"name": "git_user",
"owner_id": 3654,
"path": "git_user",
"updated_at": "2016-06-06T08:02:39+0000"
},
"owner": {
"id": 627,
"username": "git_user",
"web_url": "https://git.tencent.com/u/git_user",
"name": "git_user",
"state": "blocked",
"avatar_url": "git.tencent.com/uploads/user/avatar/627/ae4f4ab5f5b6445bb97404a4638b68d7.gif"
},
"name": "pro-111",
"name_with_namespace": "git_user/pro-111",
"path": "pro-111",
"path_with_namespace": "git_user/pro-111",
"default_branch": "master",
"ssh_url_to_repo": "git@git.tencent.com:git_user/pro-111.git",
"http_url_to_repo": "http://git.tencent.com/git_user/pro-111.git",
"https_url_to_repo": "https://git.tencent.com/git_user/pro-111.git",
"web_url": "https://git.tencent.com/git_user/pro-111",
"tag_list": [],
"issues_enabled": true,
"merge_requests_enabled": true,
"wiki_enabled": true,
"snippets_enabled": true,
"review_enabled": true,
"fork_enabled": false,
"tag_name_regex": null,
"tag_create_push_level": 30,
"created_at": "2018-01-11T02:26:04+0000",
"last_activity_at": "2018-03-13T07:21:28+0000",
"creator_id": 6227,
"avatar_url": "https://git.tencent.com/uploads/project/avatar/4484",
"watchs_count": 5,
"stars_count": 0,
"forks_count": 2,
"config_storage": {
"limit_lfs_file_size": 500,
"limit_size": 100000,
"limit_file_size": 100000,
"limit_lfs_size": 100000
},
"config_confidential": {
"level": -1,
"allow_ai_coding_tool": true
},
"forked_from_project": "Forked Project not found",
"statistics": {
"commit_count": 8,
"repository_size": 0.013
}
},
]
# 单个用户
获取一个单独用户的信息。
# 获取某个用户的帐号信息
获取某个指定用户的信息
GET /api/v3/users/:id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 用户唯一标识,或者用户名 |
返回值:
{
"id": 45,
"email": "bobi@tencent.com",
"name": "bobi",
"username": "bobi",
"web_url": "https://git.tencent.com/u/bobi",
"current_sign_in_at": "2015-07-06T04:12:40+0000",
"is_admin": false,
"projects_limit": 9999999,
"skype": null,
"linkedin": null,
"twitter": null,
"theme_id": 1,
"bio": null,
"state": "active",
"color_scheme_id": 1,
"website_url": null,
"created_at": "2015-01-25T08:12:01+0000",
"identities": [
{
"extern_uid": "bobi",
"provider": "ldapmain"
},
{
"extern_uid": "bobi",
"provider": "tof"
}
],
"can_create_project": true
}
# 当前认证用户
获取当前认证用户信息。
GET /api/v3/user
返回值:
{
"id": 18612,
"email": "bob@tencent.com",
"name": "bob",
"username": "bob",
"web_url": "https://git.tencent.com/u/bob",
"current_sign_in_at": "2017-07-19T06:51:23+0000",
"is_admin": true,
"projects_limit": 9999999,
"skype": "",
"linkedin": "",
"twitter": "",
"theme_id": 1,
"bio": "",
"state": "active",
"color_scheme_id": 1,
"website_url": "",
"created_at": "2017-01-16T08:29:42+0000",
"identities": [
{
"extern_uid": "bob",
"provider": "ldapmain"
},
{
"extern_uid": "bob",
"provider": "tof"
}
]
}
# 给当前用户创建一个 SSH key
创建一个新的 SSH key 给当前认证的用户。
POST /api/v3/user/keys
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| title | string | SSH Key 的标题 |
| key | string | 新的 SSH key |
返回值:
{
"id": 10127,
"title": "test",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXawA7+8VH0FmLbJ0m0hMfXjmQD/DXSsbL8DicG9/jk34BLr8mQ23EXr38te5wvRejhYV4ov3/V1HGB6M2o/cDVUc1ODQpcEBa6jZ1Q/VoqVO+49+UHN/FeOgQk60bF7Nu4hXhn/e/H6Tw2fTvUW1LPpaPtqNiqcylqtZ2qfLHfUXXXvOmRmM/4sTBZnjMoK61moZgxtrYaDtZOVxVVqF+AVpnbfHUDdGZofNQe2AW2g1PXpu3ikgeyxvXGoBLKXo6r1KVYD+uSPf4OouHnUsBpYJKy6PUpjxs13yzpk65TDy1xX4xylbO0TVEhNYXax2K6ih2RPPmSpq8juZzr7RZ",
"created_at": "2017-08-13T03:19:54+0000"
}
创建成功将返回状态201 Created。如果返回400 Bad Request错误将附带一个说明的错误信息:
{
"message": {
"fingerprint": [
"has already been taken"
],
"key": [
"has already been taken"
]
}
}
# 获取当前用户的 SSH key
获取当前认证用户的 SSH keys 列表。
GET /api/v3/user/keys
返回值:
[
{
"id": 2356,
"title": "git-key1",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXawA7+8VH0FmLbJ0m0hMfXjmQD/DXSsbL8DicG9/jk34BLr8mQ23EXr38te5wvRejhYV4ov3/V1HGB6M2o/cDVUc1ODQpcEBa6jZ1Q/VoqVO+49+UHN/FeOgQk60bF7Nu4hXhn/e/H6Tw2fTvSSSSPpaPtqNiqcylqtZ2qfLHfUXv5vOmRmM/4sTBZnjMoK61moZgxtrYaDtZOVxVVqF+AVpnbfHUDdGZofNQe2AW2g1PXpu3ikgeyxvXGoBLKXo6r1KVYD+uSPf4OouHnUsBpYJKy6PUpjxs13yzpk65TDy1xX4xylbO0TVEhNYXax2K6ih2RPPmSpq8juZzr7RZ",
"created_at": "2012-06-28T02:33:02+0000"
}
]
# 获取某个指定的 SSH key
获取一个特定的 SSH key
GET /api/v3/user/keys/:id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer | SSH key 的 id |
返回值:
{
"id": 215,
"title": "git-key1",
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXawA7+8VH0FmLbJ0m0hMfXjmQD/DXSsbL8DicG9/jk34BLr8mQ23EXr38te5wvRejhYV4ov3/V1HGB6M2o/cDVUc1ODQpcEBa6jZ1Q/VoqVO+49+UHN/FeOgQk60bF7Nu4hXhn/e/H6Tw2fTvUW1LPpaPtqNiqcylqtZ2qfLHfUXv5vOmRmM/4sTBZnjMoK61moZgxtrYaDtZOVxVVqF+AVpnbfHUDdGZofNQe2AW2g1PXpu3ikgeyxvXGoBLKXo6r1KVYD+uSPf4OouHnUsBpYJKy6PUpjxs13yzpk65TDy1xX4xylbO0TVEhNYXax2K6ih2RPPmSpq8juZzr7RZ",
"created_at": "2012-06-28T02:33:02+0000"
}
# 删除当前用户的 SSH key
删除当前认证用户拥有的 SSH key。
这是一个幂等的操作,调用它删除一个存在的或已经删除的 key 返回的结果都是200 OK。
DELETE /api/v3/user/keys/:id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer | SSH key 的 ID |
# 添加邮箱
给当前认证用户增加邮箱。
POST /api/v3/user/emails
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| string | 邮箱地址 |
返回值:
{
"id": 98,
"email": "git02@tencent.com"
}
调用成功返回状态201 Created。如果发生400 Bad Request错误的话附带相关的错误信息:
{
"message": {
"email": [
"has not given"
]
}
}
# 通过邮箱获取用户信息
通过邮箱获取一个用户的基本信息。
GET /api/v3/user/email
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| string | 邮箱地址 |
返回值:
{
"name": "long",
"username": "long",
"web_url": "https://git.tencent.com/u/long"
}
# 获取用户邮箱列表
获取当前用户的邮箱列表
GET /api/v3/user/emails
返回值:
[
{
"id": 56,
"email": "git_user1@tencent.com"
},
{
"id": 98,
"email": "git_user1@tencent.com"
}
]
# 获取邮箱信息
获取某个特定邮箱信息。
GET /api/v3/user/emails/:id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer | 邮箱的 ID |
返回值:
{
"id": 56,
"email": "git_user1@tencent.com"
}
# 删除当前用户的邮箱
删除当前认证用户拥有的邮箱。
这是一个幂等的操作,用户调用它删除一个存在的或已经删除的邮箱返回结果都是200 OK。
DELETE /api/v3/user/emails/:id
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer | 邮箱的 ID |
# 获取当前登录用户的事件信息列表
获取当前认证用户的事件信息列表。
GET /api/v3/events
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| begin_date | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 事件起始时间;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如"2019-03-25T00:10:19%2B0800"。默认值为 end_date 往前一个月,与 end_date 最大间隔为一年 |
| end_date | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 事件结束时间;例如 2019-03-26T00:10:19+0000 或 2019-03-26T00:10:19+0800,时间参数必须转码,如"2019-03-26T00:10:19%2B0800"。默认值为当前时间,与 begin_date 最大间隔为一年 |
| event_filter | string(可选) | 事件类型过滤,多个类型用英文逗号分隔。可选值:push(推送)、merged(合并)、comments(评论)、team(团队成员变动)、wikiPush(Wiki 推送)、svnCommit(SVN 提交) |
| page | integer(可选) | 页数 (默认值:1) |
| per_page | integer(可选) | 默认页面大小 (默认值 20,最大值: 100) |
返回值:
[
{
"avatar": "c62b23966e47447dad7b9674f75f572a.jpg",
"author": "bob",
"authorUsername": "bob",
"type": "push",
"targetTitle": null,
"event": {
"id": 447282357,
"targetType": null,
"targetId": null,
"title": null,
"projectId": 1228252,
"action": 5,
"data": "---\n:object_kind: push\n:type: update\n...",
"ref": "refs/heads/staging",
"authorId": 2552,
"createdAt": 1768824334000
},
"project": {
"tenantId": 1,
"id": 1228252,
"name": "code-business-app",
"path": "code-business-app",
"type": "GIT",
"description": "...",
"fullPath": "code/code-business/code-business-app",
"fullName": "code/code-business/code-business-app",
"route": { "..." : "..." },
"namespace": { "...": "..." },
"...": "..."
},
"datas": {
"objectKind": "push",
"after": "721c2160e00033b97a53377ca71b052f53401589",
"ref": "refs/heads/staging",
"commits": [
{
"commitId": "721c2160e00033b97a53377ca71b052f53401589",
"message": "Merge branch 'cherry-pick-490f8dd8' into 'staging'...",
"timestamp": "2026-01-19 12:05:32",
"author": {
"authorName": "bob",
"authorEmail": "bob@tencent.com"
}
}
],
"userId": "2552",
"commitTotal": "2",
"pushTimestamp": "2026-01-19 12:05:33",
"actionType": "create a merge commit",
"type": "update",
"username": "bob",
"userEmail": "bob@tencent.com",
"before": "225a866f5cd80c065ff0966f1c66fc73c6ff28ac",
"projectId": "1228252"
},
"target": "staging",
"targetDesc": "branch",
"link": "true",
"action": "pushed to",
"canCreateReview": true,
"eventNote": null,
"eventCommits": {
"total": 2,
"startCommitId": "ee0d9a1e9983d07c76ed8b0a2931e74ad3eaecc2",
"baseCommitId": "721c2160e00033b97a53377ca71b052f53401589",
"commits": [
{
"commitId": "721c2160e00033b97a53377ca71b052f53401589",
"message": "Merge branch 'cherry-pick-490f8dd8' into 'staging'...",
"fullMessageGfm": "...",
"shortMessageGfm": "...",
"author": {
"authorName": "bob",
"authorEmail": "bob@tencent.com"
}
}
]
},
"cnLabelContext": {
"previousValue": "向分支",
"posternValue": "上推送了代码,该分支属于"
},
"wikiCommits": []
}
]
# 获取指定用户事件信息
获取某个指定用户的事件信息列表,仅能看到目标用户公开或你也有权限的项目动态。
GET /api/v3/users/:id/events
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
| id | integer 或 string | 用户唯一标识,或者用户名 |
| begin_date | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 事件起始时间;例如 2019-03-25T00:10:19+0000 或 2019-03-25T00:10:19+0800,时间参数必须转码,如"2019-03-25T00:10:19%2B0800"。默认值为 end_date 往前一个月,与 end_date 最大间隔为一年 |
| end_date | yyyy-MM-dd'T'HH:mm:ssZ(可选) | 事件结束时间;例如 2019-03-26T00:10:19+0000 或 2019-03-26T00:10:19+0800,时间参数必须转码,如"2019-03-26T00:10:19%2B0800"。默认值为当前时间,与 begin_date 最大间隔为一年 |
| event_filter | string(可选) | 事件类型过滤,多个类型用英文逗号分隔。可选值:push(推送)、merged(合并)、comments(评论)、team(团队成员变动)、wikiPush(Wiki 推送)、svnCommit(SVN 提交) |
| page | integer(可选) | 页数 (默认值:1) |
| per_page | integer(可选) | 默认页面大小 (默认值 20,最大值: 100) |
返回值:
[
{
"avatar": "c62b23966e47447dad7b9674f75f572a.jpg",
"author": "bob",
"authorUsername": "bob",
"type": "push",
"targetTitle": null,
"event": {
"id": 447282357,
"targetType": null,
"targetId": null,
"title": null,
"projectId": 1228252,
"action": 5,
"data": "---\n:object_kind: push\n:type: update\n...",
"ref": "refs/heads/staging",
"authorId": 2552,
"createdAt": 1768824334000
},
"project": {
"tenantId": 1,
"id": 1228252,
"name": "code-business-app",
"path": "code-business-app",
"type": "GIT",
"description": "...",
"fullPath": "code/code-business/code-business-app",
"fullName": "code/code-business/code-business-app",
"route": { "..." : "..." },
"namespace": { "...": "..." },
"...": "..."
},
"datas": {
"objectKind": "push",
"after": "721c2160e00033b97a53377ca71b052f53401589",
"ref": "refs/heads/staging",
"commits": [
{
"commitId": "721c2160e00033b97a53377ca71b052f53401589",
"message": "Merge branch 'cherry-pick-490f8dd8' into 'staging'...",
"timestamp": "2026-01-19 12:05:32",
"author": {
"authorName": "bob",
"authorEmail": "bob@tencent.com"
}
}
],
"userId": "2552",
"commitTotal": "2",
"pushTimestamp": "2026-01-19 12:05:33",
"actionType": "create a merge commit",
"type": "update",
"username": "bob",
"userEmail": "bob@tencent.com",
"before": "225a866f5cd80c065ff0966f1c66fc73c6ff28ac",
"projectId": "1228252"
},
"target": "staging",
"targetDesc": "branch",
"link": "true",
"action": "pushed to",
"canCreateReview": true,
"eventNote": null,
"eventCommits": {
"total": 2,
"startCommitId": "ee0d9a1e9983d07c76ed8b0a2931e74ad3eaecc2",
"baseCommitId": "721c2160e00033b97a53377ca71b052f53401589",
"commits": [
{
"commitId": "721c2160e00033b97a53377ca71b052f53401589",
"message": "Merge branch 'cherry-pick-490f8dd8' into 'staging'...",
"fullMessageGfm": "...",
"shortMessageGfm": "...",
"author": {
"authorName": "bob",
"authorEmail": "bob@tencent.com"
}
}
]
},
"cnLabelContext": {
"previousValue": "向分支",
"posternValue": "上推送了代码,该分支属于"
},
"wikiCommits": []
}
]