跳转至

获取项目讨论详情

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

该接口用于获取指定仓库的讨论详情,返回讨论的标题、正文内容、作者信息、分类、标签、评论总数,以及讨论关联的投票与投票选项等详细信息。

访问令牌支持说明

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

是否允许匿名访问

此接口允许匿名访问

请求参数

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

响应参数

字段 类型 必返 可为空 说明
id string 是 否 讨论 ID
number integer 是 否 讨论编号
title string 是 否 讨论标题
md_content string 是 否 讨论正文(Markdown 格式)
created_at string 是 否 创建时间
updated_at string 是 否 更新时间
author object 是 否 讨论作者信息
is_lock integer 是 否 是否锁定
is_pin integer 是 否 是否置顶
is_category_pin integer 是 否 是否类型下置顶
is_closed integer 是 否 是否关闭
is_answered integer 是 否 是否采纳答案
comment_total integer 是 否 评论总数
category object 是 否 讨论分类
vote object 是 否 投票信息(投票类型返回)
vote_options array 是 否 投票选项列表(投票类型返回)
labels array 是 否 标签列表

author 对象

字段 类型 必返 可为空 说明
author.avatar_url string 是 否 头像地址
author.id string 是 否 用户 ID
author.object_id string 是 否 对象 ID
author.login string 是 否 登录名
author.name string 是 否 昵称

category 对象

字段 类型 必返 可为空 说明
category.id string 是 否 分类 ID
category.name string 是 否 分类名称
category.icon string 是 否 分类图标
category.description string 是 否 分类描述
category.type integer 是 否 分类类型

vote 对象

字段 类型 必返 可为空 说明
vote.id string 是 否 投票 ID
vote.created_at string 是 否 创建时间
vote.updated_at string 是 否 更新时间
vote.question string 是 否 投票内容
vote.vote_total integer 是 否 投票总数
vote.real_name boolean 是 否 是否实名
vote.creator_view_real_name boolean 是 否 创建者是否可以查看实名投票(0 否,1 是)
vote.modify_vote_times integer 是 否 可修改的投票次数
vote.designated_voter boolean 是 否 是否指定投票人(0 否,1 是)
vote.current_user_is_designated_voter boolean 是 否 当前用户是否是指定投票人
vote.designated_voter_size integer 是 否 指定投票人数量
vote.no_vote_user_size integer 是 否 未投票人数量

vote_options 对象

字段 类型 必返 可为空 说明
vote_options.id string 是 否 投票选项 ID
vote_options.created_at string 是 否 创建时间
vote_options.updated_at string 是 否 更新时间
vote_options.vote_option string 是 否 投票选项
vote_options.option_order integer 是 否 投票选项排序
vote_options.vote_total integer 是 否 此选项投票数
vote_options.vote_total_percent integer 是 否 此选项投票数百分比
vote_options.vote_id string 是 否 所属投票 ID
vote_options.vote_users array 否 是 投票用户

vote_options.vote_users 对象

字段 类型 必返 可为空 说明
vote_options.vote_users.avatar_url string 否 是 头像地址
vote_options.vote_users.id string 否 是 用户 ID
vote_options.vote_users.object_id string 否 是 对象 ID
vote_options.vote_users.login string 否 是 登录名
vote_options.vote_users.name string 否 是 昵称

labels 对象

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

失败响应

以下为接口可能返回的失败响应示例,错误字段名以后端实际返回为准。

400 参数错误

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

401 未认证

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

404 讨论不存在

{
  "error": "not_found",
  "message": "讨论不存在"
}

HTTP 响应状态码

状态码 说明
200 成功(OK)
304 未修改(Not modified)
400 参数错误(Bad request)
401 需要认证(Requires authentication)
403 禁止访问(Forbidden)
404 讨论不存在(Not found)
429 请求过于频繁,触发限流
500 系统内部错误

请求示例

参数说明

本接口允许匿名访问,请求时可不携带访问令牌;如需携带令牌,可在 URL 中追加 ?access_token=<token>。

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

cURL

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

JavaScript

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

print(resp.json())

响应示例

状态码: 200

{
  "id": "g_123456",
  "number": 1,
  "title": "关于项目讨论的标题",
  "md_content": "讨论的正文内容(Markdown)",
  "created_at": "2024-01-01T00:00:00Z",
  "updated_at": "2024-01-02T00:00:00Z",
  "author": {
    "avatar_url": "https://api.atomgit.com/avatar.png",
    "id": "u_100",
    "object_id": "object_100",
    "login": "octocat",
    "name": "Octocat"
  },
  "is_lock": 0,
  "is_pin": 0,
  "is_category_pin": 0,
  "is_closed": 0,
  "is_answered": 0,
  "comment_total": 3,
  "category": {
    "id": "c_1",
    "name": "问答",
    "icon": "https://api.atomgit.com/icon.png",
    "description": "问答分类",
    "type": 1
  },
  "vote": {
    "id": "v_1",
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2024-01-01T00:00:00Z",
    "question": "你支持这个方案吗?",
    "vote_total": 10,
    "real_name": false,
    "creator_view_real_name": false,
    "modify_vote_times": 1,
    "designated_voter": false,
    "current_user_is_designated_voter": false,
    "designated_voter_size": 0,
    "no_vote_user_size": 0
  },
  "vote_options": [
    {
      "id": "vo_1",
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z",
      "vote_option": "支持",
      "option_order": 0,
      "vote_total": 6,
      "vote_total_percent": 60,
      "vote_id": "v_1",
      "vote_users": [
        {
          "avatar_url": "https://api.atomgit.com/avatar.png",
          "id": "u_100",
          "object_id": "object_100",
          "login": "octocat",
          "name": "Octocat"
        }
      ]
    }
  ],
  "labels": [
    {
      "id": "l_1",
      "name": "讨论",
      "color": "#0366d6",
      "created_at": "2024-01-01T00:00:00Z",
      "updated_at": "2024-01-01T00:00:00Z"
    }
  ]
}

错误码

错误码 说明
400 参数错误或请求无法解析
401 未认证或凭证无效
403 禁止访问
404 请求的讨论不存在
429 请求过于频繁,触发限流
500 系统内部错误

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