{ "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": { "/{group}/-/inherit-members": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定组织的继承成员。List inherited members within specified organization", "operationId": "ListInheritMembersOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "type": "string", "default": "", "description": "过滤成员。Filter by member", "name": "search", "in": "query" }, { "enum": [ "Guest", "Reporter", "Developer", "Master", "Owner" ], "type": "string", "description": "Role", "name": "role", "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" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.ListInheritMembers" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:r" } }, "/{group}/-/members": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定组织内的所有直接成员。List all direct members within specified organization.", "operationId": "ListMembersOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "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" }, { "enum": [ "Guest", "Reporter", "Developer", "Master", "Owner" ], "type": "string", "description": "Role", "name": "role", "in": "query" }, { "type": "string", "default": "", "description": "过滤成员。Filter by member.", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.UsersWithAccessLevelInSlug" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:r" } }, "/{group}/-/members/access-level": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定组织内, 访问成员在当前层级内的权限信息。Get permission information for accessing members at current level.", "operationId": "GetMemberAccessLevelOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "type": "boolean", "default": true, "description": "是否包含继承的权限。If inherited permissions are included.", "name": "include_inherit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/dto.MemberAccessLevelInSlugUnion" } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:r" } }, "/{group}/-/members/{username}": { "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "更新指定组织的直接成员权限信息。Update permission information for direct members in specified organization.", "operationId": "UpdateMembersOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "description": "member information", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UpdateMembersRequest" } } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:rw" }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "添加成员。Add members.", "operationId": "AddMembersOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "description": "member information", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UpdateMembersRequest" } } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:rw" }, "delete": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "删除指定组织的直接成员。Remove direct members from specified organization.", "operationId": "DeleteMembersOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:rw" } }, "/{group}/-/members/{username}/access-level": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定组织内指定成员的权限信息, 结果按组织层级来展示, 包含上层组织的权限继承信息。Get specified member's permissions with organizational hierarchy.", "operationId": "ListMemberAccessLevelOfGroup", "parameters": [ { "type": "string", "description": "slug", "name": "group", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.MemberAccessLevel" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \ngroup-manage:r" } }, "/{mission}/-/members/{username}": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "添加成员。Add members.", "operationId": "AddMembersOfMission", "parameters": [ { "type": "string", "description": "slug", "name": "mission", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "description": "member information", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UpdateMembersRequest" } } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nmission-manage:rw" } }, "/{registry}/-/members/{username}": { "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "添加成员。Add members.", "operationId": "AddMembersOfRegistry", "parameters": [ { "type": "string", "description": "slug", "name": "registry", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "description": "member information", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UpdateMembersRequest" } } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nregistry-manage:rw" } }, "/{repo}/-/inherit-members": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定仓库内的继承成员。List inherited members within specified repository。", "operationId": "ListInheritMembersOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "type": "string", "default": "", "description": "过滤成员。Filter by member", "name": "search", "in": "query" }, { "enum": [ "Guest", "Reporter", "Developer", "Master", "Owner" ], "type": "string", "description": "Role", "name": "role", "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" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.ListInheritMembers" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:r" } }, "/{repo}/-/members": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定仓库内的所有直接成员。List all direct members within specified repository.", "operationId": "ListMembersOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "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" }, { "enum": [ "Guest", "Reporter", "Developer", "Master", "Owner" ], "type": "string", "description": "Role", "name": "role", "in": "query" }, { "type": "string", "default": "", "description": "过滤成员。Filter by member.", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.UsersWithAccessLevelInSlug" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:r" } }, "/{repo}/-/members/access-level": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定仓库内, 访问成员在当前层级内的权限信息。Get permission information for accessing members at current level.", "operationId": "GetMemberAccessLevelOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "type": "boolean", "default": true, "description": "是否包含继承的权限。If inherited permissions are included.", "name": "include_inherit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/dto.MemberAccessLevelInSlugUnion" } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:r" } }, "/{repo}/-/members/{username}": { "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "更新指定仓库内的直接成员权限信息。Update permission information for direct members in specified repository.", "operationId": "UpdateMembersOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "description": "member information", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UpdateMembersRequest" } } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:rw" }, "post": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "添加成员。Add members.", "operationId": "AddMembersOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "description": "member information", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UpdateMembersRequest" } } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:rw" }, "delete": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "删除指定仓库的直接成员。Remove direct members from specified repository.", "operationId": "DeleteMembersOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:rw" } }, "/{repo}/-/members/{username}/access-level": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定仓库内指定成员的权限信息, 结果按组织层级来展示, 包含上层组织的权限继承信息。Get specified member's permissions with organizational hierarchy.", "operationId": "ListMemberAccessLevelOfRepo", "parameters": [ { "type": "string", "description": "slug", "name": "repo", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.MemberAccessLevel" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:r" } }, "/{slug}/-/list-members": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members" ], "summary": "获取指定仓库内的有效成员列表,包含继承成员。List active members in specified repository including inherited members.", "operationId": "ListAllMembers", "parameters": [ { "type": "string", "description": "slug", "name": "slug", "in": "path", "required": true }, { "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" }, { "enum": [ "Guest", "Reporter", "Developer", "Master", "Owner" ], "type": "string", "description": "Role", "name": "role", "in": "query" }, { "type": "string", "default": "", "description": "过滤成员。Filter by member", "name": "search", "in": "query" }, { "type": "string", "default": "", "description": "精准匹配用户名,多个用户名用逗号间隔。Exact username matching, multiple usernames separated by commas.", "name": "names", "in": "query" }, { "enum": [ "created_at", "stars", "follower" ], "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": { "$ref": "#/definitions/dto.UsersWithAccessLevelInSlug" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:r" } }, "/{slug}/-/outside-collaborators": { "get": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members", "Collaborators" ], "summary": "获取指定仓库内的外部贡献者。List external contributors in specified repository.", "operationId": "ListOutsideCollaborators", "parameters": [ { "type": "string", "description": "slug", "name": "slug", "in": "path", "required": true }, { "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" }, { "enum": [ "Guest", "Reporter", "Developer", "Master" ], "type": "string", "description": "Role", "name": "role", "in": "query" }, { "type": "string", "default": "", "description": "过滤成员。Filter by member.", "name": "search", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.OutsideCollaboratorInRepo" } } } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:r" } }, "/{slug}/-/outside-collaborators/{username}": { "put": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members", "Collaborators" ], "summary": "更新指定仓库的外部贡献者权限信息。 Update permission information for external contributors in specified repository.", "operationId": "UpdateOutsideCollaborators", "parameters": [ { "type": "string", "description": "slug", "name": "slug", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true }, { "enum": [ "Guest", "Reporter", "Developer" ], "type": "string", "description": "Role", "name": "role", "in": "query", "required": true } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:rw" }, "delete": { "security": [ { "BearerAuth": [] } ], "consumes": [ "application/json" ], "produces": [ "application/vnd.cnb.api+json" ], "tags": [ "Members", "Collaborators" ], "summary": "删除指定仓库的外部贡献者。Removes external contributors from specified repository.", "operationId": "DeleteOutsideCollaborators", "parameters": [ { "type": "string", "description": "slug", "name": "slug", "in": "path", "required": true }, { "type": "string", "description": "username", "name": "username", "in": "path", "required": true } ], "responses": { "200": { "description": "OK" } }, "description": "访问令牌调用此接口需包含以下权限。Required permissions for access token. \nrepo-manage:rw" } } }, "definitions": { "dto.ListInheritMembers": { "type": "object", "properties": { "inherit_path": { "type": "string" }, "total": { "type": "integer" }, "users": { "type": "array", "items": { "$ref": "#/definitions/dto.InheritMembersUser" } } } }, "dto.UsersWithAccessLevelInSlug": { "type": "object", "properties": { "access_level": { "$ref": "#/definitions/constant.AccessRole" }, "avatar": { "type": "string" }, "created_at": { "type": "string" }, "email": { "type": "string" }, "email_verification": { "type": "string" }, "freeze": { "type": "boolean" }, "id": { "type": "string" }, "inviter": { "$ref": "#/definitions/dto.Users" }, "join_time": { "type": "string" }, "locked": { "type": "boolean" }, "nickname": { "type": "string" }, "type": { "$ref": "#/definitions/constant.UserType" }, "username": { "type": "string" }, "verified": { "description": "认证类型", "type": "integer" }, "verified_expire_in": { "description": "认证过期时间", "type": "string" } } }, "dto.MemberAccessLevelInSlugUnion": { "type": "object", "properties": { "access_level": { "$ref": "#/definitions/constant.AccessRole" }, "inherit": { "type": "boolean" }, "read_privilege": { "type": "boolean" }, "write_privilege": { "type": "boolean" } } }, "dto.UpdateMembersRequest": { "type": "object", "properties": { "access_level": { "type": "string" }, "is_outside_collaborator": { "type": "boolean" } } }, "dto.MemberAccessLevel": { "type": "object", "properties": { "access_level": { "$ref": "#/definitions/constant.AccessRole" }, "path": { "type": "string" } } }, "dto.OutsideCollaboratorInRepo": { "type": "object", "properties": { "access_level": { "$ref": "#/definitions/constant.AccessRole" }, "avatar": { "type": "string" }, "created_at": { "type": "string" }, "email": { "type": "string" }, "freeze": { "type": "boolean" }, "id": { "type": "string" }, "join_time": { "type": "string" }, "locked": { "type": "boolean" }, "nickname": { "type": "string" }, "type": { "$ref": "#/definitions/constant.UserType" }, "username": { "type": "string" }, "verified": { "description": "认证类型", "type": "integer" }, "verified_expire_in": { "description": "认证过期时间", "type": "string" } } }, "constant.AccessRole": { "type": "string", "enum": [ "Unknown", "Guest", "Reporter", "Developer", "Master", "Owner" ], "x-enum-comments": { "Anonymous": "Anonymous 匿名", "DEVELOPER": "DEVELOPER 开发", "Guest": "Guest 访客", "MASTER": "MASTER 管理", "OWNER": "OWNER 负责人", "REPORTER": "REPORTER 助手" }, "x-enum-descriptions": [ "Anonymous 匿名", "Guest 访客", "REPORTER 助手", "DEVELOPER 开发", "MASTER 管理", "OWNER 负责人" ], "x-enum-varnames": [ "Anonymous", "Guest", "REPORTER", "DEVELOPER", "MASTER", "OWNER" ] }, "dto.Users": { "type": "object", "properties": { "avatar": { "type": "string" }, "created_at": { "type": "string" }, "email": { "type": "string" }, "freeze": { "type": "boolean" }, "id": { "type": "string" }, "locked": { "type": "boolean" }, "nickname": { "type": "string" }, "type": { "$ref": "#/definitions/constant.UserType" }, "username": { "type": "string" }, "verified": { "description": "认证类型", "type": "integer" }, "verified_expire_in": { "description": "认证过期时间", "type": "string" } } }, "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" ] } } }