群组 Wiki API

  • 引入于极狐GitLab 13.5。

  • encoding 字段添加于极狐GitLab 14.9。
  • render_html 属性添加于极狐GitLab 14.9。
  • version 属性添加于极狐GitLab 14.9。

群组 Wiki API 只在 APIv4 中可用。

项目 Wiki API 也可用。

列出 Wiki 页面

列出给定群组的所有 Wiki 页面。

GET /groups/:id/wikis
参数 类型 是否必需 描述
id integer/string yes ID 或 URL 编码的群组路径
with_content boolean no 包括页面内容
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/wikis?with_content=1"

响应示例:

[
  {
    "content" : "Here is an instruction how to deploy this project.",
    "format" : "markdown",
    "slug" : "deploy",
    "title" : "deploy",
    "encoding": "UTF-8"
  },
  {
    "content" : "Our development process is described here.",
    "format" : "markdown",
    "slug" : "development",
    "title" : "development",
    "encoding": "UTF-8"
  },{
    "content" : "*  [Deploy](deploy)\n*  [Development](development)",
    "format" : "markdown",
    "slug" : "home",
    "title" : "home",
    "encoding": "UTF-8"
  }
]

获取 Wiki 页面

获取特定群组的 Wiki 页面。

GET /groups/:id/wikis/:slug
参数 类型 是否必需 描述
id integer/string yes ID 或 URL 编码的群组路径
slug string yes URL 编码的 Wiki 页面的标识串(唯一字符串),例如 dir%2Fpage_name
render_html boolean no 返回 Wiki 页面的渲染 HTML
version string no Wiki 页面版本 SHA
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/wikis/home"

响应示例:

{
  "content" : "home page",
  "format" : "markdown",
  "slug" : "home",
  "title" : "home",
  "encoding": "UTF-8"
}

创建新的 Wiki 页面

使用给定标题、标识串和内容,为特定仓库创建新的 Wiki 页面。

POST /projects/:id/wikis
参数 类型 是否必需 描述
id integer/string yes ID 或 URL 编码的群组路径
content string yes Wiki 页面的内容
title string yes Wiki 页面的标题
format string no Wiki 页面的格式。可用格式为:markdown(默认)、rdocasciidocorg
curl --data "format=rdoc&title=Hello&content=Hello world" \
     --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/1/wikis"

响应示例:

{
  "content" : "Hello world",
  "format" : "markdown",
  "slug" : "Hello",
  "title" : "Hello",
  "encoding": "UTF-8"
}

编辑现存 Wiki 页面

更新现存 Wiki 页面。至少需要一个参数以更新 Wiki 页面。

PUT /groups/:id/wikis/:slug
参数 类型 是否必需 描述
id integer/string yes ID 或 URL 编码的群组路径
content string yes if title is not provided Wiki 页面的内容
title string yes if content is not provided Wiki 页面的标题
format string no Wiki 页面的格式。可用格式为:markdown(默认)、rdocasciidocorg
slug string yes URL 编码的 Wiki 页面的标识串(唯一字符串)。例如:dir%2Fpage_name
curl --request PUT --data "format=rdoc&content=documentation&title=Docs" \
     --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/1/wikis/foo"

响应示例:

{
  "content" : "documentation",
  "format" : "markdown",
  "slug" : "Docs",
  "title" : "Docs",
  "encoding": "UTF-8"
}

删除 Wiki 页面

删除特定标识串的 Wiki 页面。

DELETE /groups/:id/wikis/:slug
参数 类型 是否必需 描述
id integer/string yes ID 或 URL 编码的群组路径
slug string yes URL 编码的 Wiki 页面的标识串(唯一字符串)。例如:dir%2Fpage_name
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/wikis/foo"

成功后,HTTP 状态代码为 204,并且不需要 JSON 响应。

向 Wiki 仓库上传附件

将文件上传到 Wiki 仓库中的附件文件夹。附件文件夹为 uploads

POST /groups/:id/wikis/attachments
参数 类型 是否必需 描述
id integer/string yes ID 或 URL 编码的群组路径
file string yes 要上传的附件
branch string no 分支名称。默认为 Wiki 仓库的默认分支

要从文件系统上传文件,请使用 --form 参数。cURL 使用标头 Content-Type: multipart/form-data 发布数据。 file= 参数必须指向您的文件系统上的文件,并且前面添加 @。例如:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --form "file=@dk.png" "https://gitlab.example.com/api/v4/groups/1/wikis/attachments"

响应示例:

{
  "file_name" : "dk.png",
  "file_path" : "uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png",
  "branch" : "master",
  "link" : {
    "url" : "uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png",
    "markdown" : "![dk](uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png)"
  }
}