update add openapi api

This commit is contained in:
xiongxiao
2026-01-16 13:03:57 +08:00
parent a8f2cb14a7
commit 7787337f13
32 changed files with 39023 additions and 43 deletions

View File

@@ -0,0 +1,691 @@
{
"swagger": "2.0",
"info": {
"title": "CNB OPENAPI",
"contact": {
"name": "Open API Support",
"url": "https://docs.cnb.cool/",
"email": "cnb@tencent.com"
},
"version": "1.0"
},
"paths": {
"/user": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/vnd.cnb.api+json"
],
"tags": [
"Users"
],
"summary": "获取指定用户的详情信息。Get detailed information for a specified user.",
"operationId": "GetUserInfo",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dto.UsersResultForSelf"
}
}
},
"description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \naccount-profile:r"
},
"post": {
"security": [
{
"BearerAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/vnd.cnb.api+json"
],
"tags": [
"Users"
],
"summary": "更新指定用户的详情信息。Updates the specified user's profile information.",
"operationId": "UpdateUserInfo",
"parameters": [
{
"description": "user info",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/dto.UpdateUserInfoPayload"
}
}
],
"responses": {
"200": {
"description": "OK"
}
},
"description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \naccount-profile:rw"
}
},
"/user/autocomplete_source": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/vnd.cnb.api+json"
],
"tags": [
"Users"
],
"summary": "查询当前用户用户拥有指定权限的所有资源列表。List resources that the current user has specified permissions for.",
"operationId": "AutoCompleteSource",
"parameters": [
{
"enum": [
"Group",
"Repo"
],
"type": "string",
"default": "Group",
"description": "Source type",
"name": "source_type",
"in": "query"
},
{
"type": "integer",
"default": 1,
"description": "Pagination page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "Pagination page size",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"default": "",
"description": "Filter by resources.",
"name": "search",
"in": "query"
},
{
"enum": [
"Reporter",
"Developer",
"Master",
"Owner"
],
"type": "string",
"default": "Owner",
"description": "最小仓库权限默认owner。Minima repository permissions",
"name": "access",
"in": "query"
},
{
"enum": [
"created_at",
"slug_path"
],
"type": "string",
"default": "created_at",
"description": "Order field",
"name": "order_by",
"in": "query"
},
{
"type": "boolean",
"default": false,
"description": "排序顺序。Ordering.",
"name": "desc",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \naccount-engage:r"
}
},
"/user/gpg-keys": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/vnd.cnb.api+json"
],
"tags": [
"Users"
],
"summary": "获取用户 GPG keys 列表。List GPG Keys.",
"operationId": "ListGPGKeys",
"parameters": [
{
"type": "integer",
"default": 1,
"description": "pagination page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "pagination page size",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"description": "gpg search key",
"name": "keyword",
"in": "query"
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/api.GPGPublicKey"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/die.WebError"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"$ref": "#/definitions/die.WebError"
}
}
},
"description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \naccount-profile:r"
}
},
"/users/{username}": {
"get": {
"security": [
{
"BearerAuth": []
}
],
"consumes": [
"application/json"
],
"produces": [
"application/vnd.cnb.api+json"
],
"tags": [
"Users"
],
"summary": "获取指定用户的详情信息。Get detailed information for a specified user.",
"operationId": "GetUserInfoByName",
"parameters": [
{
"type": "string",
"description": "User Name",
"name": "username",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/dto.UsersResult"
}
}
},
"description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \naccount-profile:r"
}
}
},
"definitions": {
"dto.UsersResultForSelf": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"appearance": {
"type": "string"
},
"appreciate_status": {
"description": "用户赞赏码状态0-无赞赏码1-有",
"type": "integer"
},
"avatar": {
"type": "string"
},
"bio": {
"type": "string"
},
"company": {
"type": "string"
},
"created_at": {
"type": "string"
},
"editable": {
"$ref": "#/definitions/constant.UserEditable"
},
"email": {
"type": "string"
},
"follow_count": {
"type": "integer"
},
"follow_mission_count": {
"type": "integer"
},
"follow_repo_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"freeze": {
"type": "boolean"
},
"gender": {
"type": "integer"
},
"group_count": {
"type": "integer"
},
"id": {
"type": "string"
},
"language": {
"type": "string"
},
"last_login_at": {
"type": "string"
},
"last_login_ip": {
"type": "string"
},
"location": {
"type": "string"
},
"locked": {
"type": "boolean"
},
"mission_count": {
"type": "integer"
},
"next_updated_name_at": {
"type": "string"
},
"nickname": {
"type": "string"
},
"public_mission_count": {
"type": "integer"
},
"public_registry_count": {
"type": "integer"
},
"public_repo_count": {
"type": "integer"
},
"readme_repo_path": {
"type": "string",
"readOnly": true
},
"registry_count": {
"type": "integer"
},
"repo_count": {
"type": "integer"
},
"reward_amount": {
"type": "integer"
},
"reward_count": {
"type": "integer"
},
"site": {
"type": "string"
},
"stars_count": {
"type": "integer"
},
"type": {
"$ref": "#/definitions/constant.UserType"
},
"updated_name_at": {
"type": "string"
},
"updated_nick_at": {
"type": "string"
},
"username": {
"type": "string"
},
"verified": {
"description": "认证类型",
"type": "integer"
},
"verified_expire_in": {
"description": "认证过期时间",
"type": "string"
},
"wechat_mp": {
"type": "string"
},
"wechat_mp_qrcode": {
"type": "string"
}
}
},
"dto.UpdateUserInfoPayload": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"bio": {
"type": "string"
},
"company": {
"type": "string"
},
"location": {
"type": "string"
},
"name": {
"type": "string"
},
"nickname": {
"type": "string"
},
"readme_repo_id": {
"type": "integer"
},
"readme_repo_path": {
"type": "string"
},
"site": {
"type": "string"
},
"wechat_mp": {
"type": "string"
},
"wechat_mp_qrcode": {
"type": "string"
}
}
},
"api.GPGPublicKey": {
"type": "object",
"properties": {
"created_at": {
"description": "主密钥添加时间",
"type": "string"
},
"emails": {
"description": "邮箱",
"type": "array",
"items": {
"$ref": "#/definitions/api.GPGEmail"
}
},
"expired_at": {
"description": "主密钥过期时间",
"type": "string"
},
"id": {
"description": "主密钥ID",
"type": "string"
},
"key_id": {
"description": "公钥 KeyID",
"type": "string"
},
"name": {
"description": "标题",
"type": "string"
},
"raw_key": {
"description": "PGP公钥文本",
"type": "string"
},
"subkeys": {
"description": "子密钥",
"type": "array",
"items": {
"$ref": "#/definitions/api.GPGSubkey"
}
}
}
},
"die.WebError": {
"type": "object",
"properties": {
"errcode": {
"type": "integer"
},
"errmsg": {
"type": "string"
},
"errparam": {
"type": "object",
"additionalProperties": {}
}
}
},
"dto.UsersResult": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"appreciate_status": {
"description": "用户赞赏码状态0-无赞赏码1-有",
"type": "integer"
},
"avatar": {
"type": "string"
},
"bio": {
"type": "string"
},
"company": {
"type": "string"
},
"created_at": {
"type": "string"
},
"email": {
"type": "string"
},
"follow_count": {
"type": "integer"
},
"follow_mission_count": {
"type": "integer"
},
"follow_repo_count": {
"type": "integer"
},
"follower_count": {
"type": "integer"
},
"freeze": {
"type": "boolean"
},
"gender": {
"type": "integer"
},
"group_count": {
"type": "integer"
},
"id": {
"type": "string"
},
"is_following": {
"description": "查询人是否follow了此用户",
"type": "boolean"
},
"location": {
"type": "string"
},
"locked": {
"type": "boolean"
},
"mission_count": {
"type": "integer"
},
"nickname": {
"type": "string"
},
"public_mission_count": {
"type": "integer"
},
"public_registry_count": {
"type": "integer"
},
"public_repo_count": {
"type": "integer"
},
"readme_repo_path": {
"type": "string",
"readOnly": true
},
"registry_count": {
"type": "integer"
},
"repo_count": {
"type": "integer"
},
"reward_amount": {
"type": "integer"
},
"reward_count": {
"type": "integer"
},
"site": {
"type": "string"
},
"stars_count": {
"type": "integer"
},
"type": {
"$ref": "#/definitions/constant.UserType"
},
"username": {
"type": "string"
},
"verified": {
"description": "认证类型",
"type": "integer"
},
"verified_expire_in": {
"description": "认证过期时间",
"type": "string"
},
"wechat_mp": {
"type": "string"
},
"wechat_mp_qrcode": {
"type": "string"
}
}
},
"constant.UserEditable": {
"type": "object",
"properties": {
"avatar": {
"description": "可修改账户头像",
"type": "boolean"
},
"email": {
"description": "可修改主邮箱",
"type": "boolean"
},
"logoff": {
"description": "是否允许注销账户",
"type": "boolean"
},
"nickname": {
"description": "可修改昵称",
"type": "boolean"
},
"sync-data": {
"description": "是否允许同步昵称和头像",
"type": "boolean"
},
"username": {
"description": "可修改账户名",
"type": "boolean"
}
}
},
"constant.UserType": {
"type": "integer",
"format": "int32",
"enum": [
0,
1,
2,
3,
4
],
"x-enum-comments": {
"IoaUser": "IoaUser ioa 用户",
"OauthUser": "OauthUser oauth 授权用户",
"RobotUser": "RobotUser 助手用户",
"TestUser": "TestUser 测试用户",
"WeChatUser": "WeChatUser 微信用户"
},
"x-enum-descriptions": [
"WeChatUser 微信用户",
"OauthUser oauth 授权用户",
"TestUser 测试用户",
"RobotUser 助手用户",
"IoaUser ioa 用户"
],
"x-enum-varnames": [
"WeChatUser",
"OauthUser",
"TestUser",
"RobotUser",
"IoaUser"
]
}
}
}