跳转至

获取仓库的某个Issue

GET /api/v5/repos/{owner}/{repo}/issues/{number}

该接口用于获取指定仓库中某个 Issue 的详细信息,包括标题、内容、状态、创建人、评论数、标签、里程碑及自定义字段等。

访问令牌支持说明

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

是否允许匿名访问

此接口允许匿名访问

请求参数

参数名 位置 类型 必填 说明
owner path string 是 仓库所属空间地址(企业、组织或个人的地址 path)
repo path string 是 仓库路径(path)
number path string 是 Issue 编号(区分大小写,无需添加 # 号)
access_token query string 否 用户授权码

响应参数

字段 类型 必返 可为空 说明
id integer 是 否 Issue ID
html_url string 是 否 Issue 的网页地址
number integer 是 否 Issue 编号
state string 是 否 Issue 状态(如 opened / closed)
title string 是 否 Issue 标题
body string 是 否 Issue 内容
user object 是 否 创建该 Issue 的用户信息
assignee object 否 是 指派人信息,未指派时为 null
repository object 是 否 所属仓库信息
created_at string 是 否 创建时间
updated_at string 是 否 更新时间
finished_at string 否 是 完成时间
labels object[] 是 否 标签列表
issue_state string 是 否 Issue 状态标识
comments integer 是 否 评论数量
priority integer 否 是 优先级
issue_type string 否 是 Issue 类型
issue_state_detail object 否 是 状态详情
issue_type_detail object 否 是 类型详情
issue_priority_detail object 否 是 优先级详情
milestone object 否 是 关联的里程碑信息
custom_fields object[] 否 是 自定义字段信息
visibility_reason string 否 是 可见性说明
stage string 否 是 Issue 阶段(如 New)
severity string 否 是 严重程度(如 Major)

user 对象

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

repository 对象

字段 类型 必返 可为空 说明
repository.id integer 是 否 仓库 ID
repository.full_name string 是 否 仓库完整名称
repository.path string 是 否 仓库路径(path)
repository.name string 是 否 仓库名称
repository.description string 是 否 仓库描述
repository.created_at string 是 否 创建时间
repository.updated_at string 是 否 更新时间
repository.assigner object 是 是 指派者信息
repository.paas string 否 是 所属平台标识

labels 对象

字段 类型 必返 可为空 说明
labels[].id integer 是 否 标签 ID
labels[].name string 是 否 标签名称
labels[].color string 是 否 标签颜色
labels[].created_at string 是 否 标签创建时间
labels[].updated_at string 是 否 标签添加时间

issue_state_detail 对象

字段 类型 必返 可为空 说明
issue_state_detail.title string 是 否 状态名称
issue_state_detail.serial integer 是 否 状态序号
issue_state_detail.id integer 是 否 状态 ID

issue_type_detail 对象

字段 类型 必返 可为空 说明
issue_type_detail.title string 是 否 类型名称
issue_type_detail.id integer 是 否 类型 ID
issue_type_detail.is_system boolean 是 否 是否为系统类型

issue_priority_detail 对象

字段 类型 必返 可为空 说明
issue_priority_detail.id string 是 否 优先级 ID
issue_priority_detail.title string 是 否 优先级名称

milestone 对象

字段 类型 必返 可为空 说明
milestone.created_at string 是 否 创建时间
milestone.description string 是 否 里程碑描述
milestone.due_on string 是 否 截止日期
milestone.number integer 是 否 里程碑编号
milestone.repository_id integer 是 否 所属仓库 ID
milestone.state string 是 否 里程碑状态
milestone.title string 是 否 里程碑标题
milestone.updated_at string 是 否 更新时间
milestone.url string 是 否 里程碑地址

custom_fields 对象

字段 类型 必返 可为空 说明
custom_fields[].field_name string 是 否 自定义字段名称
custom_fields[].field_type string 是 否 自定义字段的类型,枚举:text_single(单行文本)、text_multi(多行文本)、integer(整数)、decimal(小数)、date(日期)、select_single(单选下拉)、select_multi(多选下拉)、member_single(单选成员)、member_multi(多选成员)
custom_fields[].field_visibility string 是 否 可见性,0:仅管理员可见,1:所有人可见
custom_fields[].field_values string[] 是 否 自定义字段的值

失败响应

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

401 未认证

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

404 资源不存在

{
  "error": "not_found",
  "message": "Issue 不存在"
}

Note: 以上失败响应示例中的字段名为示意,实际字段以后端返回为准。

HTTP 响应状态码

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

请求示例

参数说明

<owner> 替换为仓库所属空间地址(企业、组织或个人的地址 path); <repo> 替换为仓库路径(path); <number> 替换为 Issue 编号; 本接口允许匿名访问,如需携带令牌,可追加 ?access_token=<token>(<token> 替换为你的 AtomGit 用户访问令牌)。

cURL

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

JavaScript

// 原生 fetch (Node.js 18+ / 浏览器)
const response = await fetch(
  "https://api.atomgit.com/api/v5/repos/<owner>/<repo>/issues/<number>",
  { 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>/issues/<number>",
    headers={"Accept": "application/json"},
    timeout=10,
)
resp.raise_for_status()

print(resp.json())

响应示例

状态码: 200

{
  "id": 152212,
  "html_url": "https://api.atomgit.com/dengmengmian/test01/issues/3",
  "number": 3,
  "state": "opened",
  "title": "测试 Issue",
  "body": "这是一个用于演示的 Issue 内容。",
  "user": {
    "avatar_url": "https://api.atomgit.com/avatar/example.png",
    "html_url": "https://api.atomgit.com/dengmengmian",
    "id": "661ce4eab470b1430d456154",
    "login": "dengmengmian",
    "name": "麻凡_"
  },
  "assignee": null,
  "repository": {
    "id": 280713,
    "full_name": "dengmengmian / test01",
    "path": "test01",
    "name": "test01",
    "description": "",
    "created_at": "2024-04-15T16:27:45.090+08:00",
    "updated_at": "2024-04-15T16:27:45.090+08:00",
    "assigner": null,
    "paas": null
  },
  "created_at": "2024-04-15T21:58:21.188+08:00",
  "updated_at": "2024-04-15T21:58:21.188+08:00",
  "finished_at": null,
  "labels": [],
  "priority": null,
  "issue_type": null,
  "issue_state": "opened",
  "issue_state_detail": null,
  "stage": "New",
  "severity": "Major"
}

错误码

错误码 说明
401 未认证或凭证无效(缺少/无效的访问凭证)
403 禁止访问,无权限查看该 Issue
404 请求路径不存在或 Issue 不存在
405 请求方法不支持
429 请求过于频繁,触发限流
500 系统内部错误

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