跳转至

列出授权用户所有仓库

GET /api/v5/user/repos

用户调用此接口,进行列出授权用户所有仓库操作。

访问令牌支持说明

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

是否允许匿名访问

此接口不允许匿名访问

请求参数

参数名 位置 类型 必填 说明
access_token query string 是 用户授权码
visibility query string 否 可见范围:公开(public)、私有(private)或所有(all),默认 all
affiliation query string 否 关联关系:owner(授权用户拥有的仓库)、collaborator(授权用户为仓库成员)、organization_member(授权用户为仓库所在组织并有访问仓库权限)、enterprise_member(授权用户所在企业并有访问仓库权限)、admin(所有有权限的,包括所管理的组织中所有仓库、所管理的企业的所有仓库);可用逗号分隔组合,如 owner, organization_member 或 owner, collaborator, organization_member
type query string 否 筛选用户仓库:其创建(owner)、个人(personal)、其为成员(member)、公开(public)、私有(private);不能与 affiliation 参数一并使用,否则会报 422 错误;与 visibility 参数一起使用时,visibility 参数拥有更高的优先级
sort query string 否 排序方式:创建时间(created)、更新时间(updated)、最后推送时间(pushed)、仓库所属与名称(full_name);默认 full_name
direction query string 否 排序方向:若 sort 为 full_name,用升序(asc);否则降序(desc)
q query string 否 搜索关键字
page query integer 否 当前的页码
per_page query integer 否 每页的数量,最大为 100,默认 20
repo_type query string 否 筛选仓库类型:code(代码仓)、model(模型仓)、dataset(数据集仓)、space(space)、all(所有仓库类型);默认 code

响应参数

字段 类型 必返 可为空 说明
id integer 是 否 仓库 ID
full_name string 是 否 仓库所属与名称(如 owner/name)
human_name string 是 否 仓库人类可读名称
url string 是 否 仓库 API 地址
namespace object 是 否 命名空间信息
path string 是 否 仓库路径
name string 是 否 仓库名称
description string 是 是 仓库描述
status string 是 否 仓库状态,0:开始(表示仓库未归档),2:关闭(表示仓库已归档)
ssh_url_to_repo string 是 否 SSH 克隆地址
http_url_to_repo string 是 否 HTTP 克隆地址
web_url string 是 否 仓库网页地址
homepage string 是 否 仓库主页
members string[] 是 是 仓库成员列表
assignee object[] 是 是 指派人员列表
forks_count integer 是 否 Fork 数量
stargazers_count integer 是 否 Star 数量
project_labels object[] 是 是 项目标签列表
relation string 是 是 与授权用户的关系
permission object 是 否 当前用户的仓库权限
internal integer 是 否 是否为内部仓库,取值 0/1
open_issues_count integer 是 否 打开的 Issue 数量
has_issue integer 是 否 是否启用 Issue,取值 0/1
watched integer 是 否 是否已关注,取值 0/1
watchers_count integer 是 否 关注者数量
assignees_number integer 是 否 指派人员数量
enterprise object 是 否 所属企业信息
default_branch string 是 否 默认分支
fork integer 是 否 是否为 Fork 仓库,取值 0/1
owner object 是 否 仓库所有者信息
assigner object 是 否 指派者信息
private integer 是 否 是否私有仓库,取值 0/1
public integer 是 否 是否公开仓库,取值 0/1
repo_type string 是 否 仓库类型:code/model/dataset/space

namespace 对象

字段 类型 必返 可为空 说明
namespace.id integer 是 否 命名空间 ID
namespace.type string 是 否 命名空间类型
namespace.name string 是 否 命名空间名称
namespace.path string 是 否 命名空间路径
namespace.html_url string 是 否 命名空间网页地址

assignee 对象数组

字段 类型 必返 可为空 说明
assignee.id string 是 否 用户 ID
assignee.login string 是 否 登录名
assignee.name string 是 否 用户名称
assignee.avatar_url string 是 否 头像地址
assignee.html_url string 是 否 用户主页地址
assignee.type string 是 否 用户类型

permission 对象

字段 类型 必返 可为空 说明
permission.pull integer 是 否 拉取权限,取值 0/1
permission.push integer 是 否 推送权限,取值 0/1
permission.admin integer 是 否 管理权限,取值 0/1

enterprise 对象

字段 类型 必返 可为空 说明
enterprise.id integer 是 否 企业 ID
enterprise.path string 是 否 企业路径
enterprise.html_url string 是 否 企业网页地址
enterprise.type string 是 否 企业类型

owner 对象

字段 类型 必返 可为空 说明
owner.id string 是 否 所有者 ID
owner.login string 是 否 登录名
owner.name string 是 否 名称
owner.type string 是 否 类型

assigner 对象

字段 类型 必返 可为空 说明
assigner.id string 是 否 指派者 ID
assigner.login string 是 否 登录名
assigner.name string 是 否 名称
assigner.type string 是 否 类型

失败响应

只有成功响应是不够的:调用方需要知道失败长什么样,才能写错误处理。

400 参数错误

{
  "error": "invalid_request",
  "message": "参数校验失败"
}

401 未认证

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

422 参数冲突

{
  "error": "invalid_request",
  "message": "affiliation 与 type 参数不能同时使用"
}

(错误字段名以后端实际返回为准。)

HTTP 响应状态码

状态码 说明
200 成功(OK)
400 参数错误
401 需要认证(Requires authentication)
422 参数冲突(affiliation 与 type 不能同时使用)

请求示例

参数说明

示例中所有 <...> 占位符均需替换为实际值:

<token> 替换为你的 AtomGit 用户访问令牌。

cURL

curl -X GET 'https://api.atomgit.com/api/v5/user/repos?access_token=<token>' \
  -H 'Accept: application/json'

JavaScript

// 原生 fetch (Node.js 18+ / 浏览器)
const token = "<YOUR-TOKEN>";
const response = await fetch(
  `https://api.atomgit.com/api/v5/user/repos?access_token=${token}`,
  {
    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/user/repos",
    params={"access_token": "<YOUR-TOKEN>"},
    headers={"Accept": "application/json"},
    timeout=10,
)
resp.raise_for_status()

print(resp.json())

响应示例

状态码: 200

[
  {
    "id": 4028329,
    "full_name": "tiandi/test_yf_repo",
    "human_name": "洪门 / test_yf_repo",
    "url": "https://api.atomgit.com/api/v5/repos/tiandi/test_yf_repo",
    "namespace": {
      "id": 1420034,
      "type": "enterprise",
      "name": "洪门",
      "path": "tiandi",
      "html_url": "https://api.atomgit.com/tiandi"
    },
    "path": "test_yf_repo",
    "name": "test_yf_repo",
    "description": "",
    "status": "0",
    "ssh_url_to_repo": "git@atomgit.com:tiandi/test_yf_repo.git",
    "http_url_to_repo": "https://api.atomgit.com/tiandi/test_yf_repo.git",
    "web_url": "https://api.atomgit.com/tiandi/test_yf_repo",
    "homepage": "https://api.atomgit.com/tiandi/test_yf_repo",
    "members": ["aron1"],
    "assignee": [
      {
        "id": "332008",
        "login": "aron1",
        "name": "yanfan",
        "avatar_url": "https://api.atomgit.com/avatar.png",
        "html_url": "https://api.atomgit.com/aron1",
        "type": "User"
      }
    ],
    "forks_count": 0,
    "stargazers_count": 0,
    "project_labels": [],
    "relation": "master",
    "permission": {
      "pull": 1,
      "push": 1,
      "admin": 1
    },
    "internal": 0,
    "open_issues_count": 0,
    "has_issue": 0,
    "watched": 0,
    "watchers_count": 0,
    "assignees_number": 1,
    "enterprise": {
      "id": 1420034,
      "path": "tiandi",
      "html_url": "https://api.atomgit.com/tiandi",
      "type": "enterprise"
    },
    "default_branch": "main",
    "fork": 0,
    "owner": {
      "id": "444601",
      "login": "yanfan",
      "name": "yanfan",
      "type": "User"
    },
    "assigner": {
      "id": "444601",
      "login": "yanfan",
      "name": "yanfan",
      "type": "User"
    },
    "private": 1,
    "public": 0,
    "repo_type": "code"
  }
]

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