グループ Wiki API

  • GitLab 13.5 で導入されました
  • encoding フィールドは GitLab 14.9 で追加れました。
  • render_html 属性が GitLab 14.9 で追加されました。
  • version 属性が GitLab 14.9 で追加されました。

グループWikiAPIはAPIv4でのみ利用可能です。プロジェクトWiki用のAPIもあります。

Wikiページ一覧

指定されたグループのすべてのWikiページを一覧表示します。

GET /groups/:id/wikis
属性種類必須説明
id整数/文字列yes グループのIDまたはURLエンコードされたパス
with_contentbooleanいいえページの内容を含む
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整数/文字列yes グループのIDまたはURLエンコードされたパス
slug文字列です。yesURLエンコードされたWikiページのスラッグ(ユニークな文字列)。dir%2Fpage_name
render_htmlbooleanいいえWikiページのレンダリングされたHTMLを返します。
version文字列です。いいえ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整数/文字列yes グループのIDまたはURLエンコードされたパス
content文字列です。yesWikiページの内容
title文字列です。yesWikiページのタイトル
format文字列です。いいえWikiページのフォーマット。利用可能なフォーマットは markdown (デフォルト),rdoc,asciidoc およびorg
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ページを更新するには少なくとも1つのパラメータが必要です。

PUT /groups/:id/wikis/:slug
属性種類必須説明
id整数/文字列yesグループのIDまたはURLエンコードされたパス
content文字列です。 title が提供されない場合は yesWikiページの内容。
title文字列です。 content が提供されない場合は yesWikiページのタイトル。
format文字列です。いいえWiki ページのフォーマット。利用可能なフォーマットはmarkdown (デフォルト)、rdocasciidocorgです。
slug文字列です。yesWikiページのURLエンコードされたスラッグ(ユニークな文字列)。例: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整数/文字列yes グループのIDまたはURLエンコードされたパス
slug文字列です。yesURLエンコードされた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リポジトリ内のattachmentフォルダにファイルをアップロードします。添付ファイルフォルダはuploads フォルダです。

POST /groups/:id/wikis/attachments
属性種類必須説明
id整数/文字列yes グループのIDまたはURLエンコードされたパス
file文字列です。yesアップロードする添付ファイル
branch文字列です。いいえブランチの名前。デフォルトは 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)"
  }
}