跳转至

查看当前成员仓库的权限点

GET /api/v5/repos/{owner}/{repo}/collaborators/self-permission

该接口用于查询当前成员在指定仓库中的角色及权限点,返回角色信息和权限矩阵树,展示其在项目、代码、成员等资源上的具体操作权限。

访问令牌支持说明

  • AtomGit 用户访问令牌(AtomGit user access tokens)

是否允许匿名访问

此接口允许匿名访问

请求参数

参数名 位置 类型 必填 说明
owner path string 是 仓库所属空间地址(企业、组织或个人的地址path)
repo path string 是 仓库路径(path)

响应参数

字段 类型 必返 可为空 说明
role_info object 是 — 用户角色
resource_trees object[] 是 — 用户权限矩阵树

role_info 对象

字段 类型 必返 可为空 说明
role_info.role_uuid string 是 — 角色id
role_info.name string 是 — 角色名称
role_info.cn_name string 是 — 角色中文名称
role_info.roles_type integer 是 — 角色类型
role_info.access_level integer 是 — 角色等级

resource_trees[] 对象

字段 类型 必返 可为空 说明
resource_trees[].resource_id integer 是 — 资源id
resource_trees[].name string 是 — 资源名称
resource_trees[].cn_name string 是 — 资源中文名称
resource_trees[].scope string 是 — 资源标识
resource_trees[].actions object[] 是 — 权限点
resource_trees[].path string 是 — 权限路径
resource_trees[].is_own integer 是 — —
resource_trees[].order_num integer 是 — 排序字段
resource_trees[].actions[] 对象
字段 类型 必返 可为空 说明
resource_trees[].actions[].permission_id integer 是 — 权限点 id
resource_trees[].actions[].action string 是 — 权限点
resource_trees[].actions[].name string 是 — 权限点名称
resource_trees[].actions[].cn_name string 是 — 权限点中文名称
resource_trees[].actions[].selected boolean 是 — 是否拥有

失败响应

参考文档未提供该接口的失败响应示例。以下为通用的失败响应形态,具体字段名以后端实际返回为准:

400 参数错误

{
  "error": "invalid_request",
  "message": "参数错误或请求无法解析"
}

401 未认证

{
  "error": "unauthorized",
  "message": "缺少或无效的访问令牌"
}

HTTP 响应状态码

状态码 说明
200 成功(OK)
304 未修改(Not modified)
401 需要认证(Requires authentication)
403 禁止访问(Forbidden)

请求示例

参数说明

<owner> 替换为仓库所属空间地址(企业、组织或个人的地址 path); <repo> 替换为仓库路径(path)。

此接口允许匿名访问,以下示例未携带访问令牌;如需以指定成员身份查看权限,可追加查询参数 ?access_token=<token>。

cURL

curl -X GET 'https://api.atomgit.com/api/v5/repos/<owner>/<repo>/collaborators/self-permission' \
  -H 'Accept: application/json'

JavaScript

const response = await fetch("https://api.atomgit.com/api/v5/repos/<owner>/<repo>/collaborators/self-permission", {
  headers: {
    "Accept": "application/json",
  },
});

if (!response.ok) {
  throw new Error(`请求失败: ${response.status}`);
}

const data = await response.json();
console.log(data);

Python

import requests

resp = requests.get(
    "https://api.atomgit.com/api/v5/repos/<owner>/<repo>/collaborators/self-permission",
    headers={"Accept": "application/json"},
    timeout=10,
)
resp.raise_for_status()

print(resp.json())

响应示例

状态码: 200

{
  "role_info": {
    "role_uuid": "45a9-276d8e546f1b05f9f98ce1ffdc6",
    "name": "Owner",
    "cn_name": "管理员",
    "roles_type": 1,
    "access_level": 50
  },
  "resource_trees": [
    {
      "resource_id": 2,
      "name": "repo",
      "cn_name": "项目",
      "scope": "repo",
      "actions": [
        {
          "permission_id": 5,
          "action": "fork",
          "name": "fork",
          "cn_name": "fork",
          "selected": true
        },
        {
          "permission_id": 6,
          "action": "update",
          "name": "update",
          "cn_name": "更新",
          "selected": true
        },
        {
          "permission_id": 7,
          "action": "delete",
          "name": "delete",
          "cn_name": "删除",
          "selected": true
        }
      ]
    },
    {
      "resource_id": 4,
      "name": "code",
      "cn_name": "代码",
      "scope": "code",
      "actions": [
        {
          "permission_id": 14,
          "action": "push",
          "name": "push",
          "cn_name": "推送",
          "selected": true
        },
        {
          "permission_id": 15,
          "action": "download",
          "name": "download",
          "cn_name": "下载",
          "selected": true
        }
      ]
    },
    {
      "resource_id": 5,
      "name": "member",
      "cn_name": "成员",
      "scope": "member",
      "actions": [
        {
          "permission_id": 16,
          "action": "create",
          "name": "create",
          "cn_name": "邀请",
          "selected": true
        },
        {
          "permission_id": 17,
          "action": "update",
          "name": "update",
          "cn_name": "更新",
          "selected": true
        },
        {
          "permission_id": 18,
          "action": "delete",
          "name": "delete",
          "cn_name": "移除",
          "selected": true
        }
      ]
    }
  ]
}

错误码

错误码 说明
401 未认证或凭证无效(缺少/无效的访问凭证)
400 参数错误或请求无法解析
404 请求路径不存在
405 请求方法不支持
429 请求过于频繁,触发限流
500 系统内部错误

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 gitcode-dev/atomgit-api-doc