正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

プロジェクトWiki API

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

このAPIを使用して、プロジェクトWikiを管理します。グループWiki用のAPIも利用できます。

Wikiページへのコメントはnotesと呼ばれます。それらを操作するには、notes APIを使用します。

すべてのWikiページを一覧表示する

指定されたプロジェクトのすべてのWikiページを一覧表示します。

GET /projects/:id/wikis
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
with_contentブール値いいえページの内容を含めます。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/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 /projects/:id/wikis/:slug
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
slug文字列はいWikiページのURLエンコードされたslug(一意の文字列)。例: dir%2Fpage_name
render_htmlブール値いいえWikiページのレンダリングされたHTMLを返します。
version文字列いいえWikiページバージョンSHA。
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/wikis/home"

レスポンス例:

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

Wikiページを作成する

指定されたプロジェクトに、指定されたタイトル、slug、および内容でWikiページを作成します。

POST /projects/:id/wikis
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
content文字列はいWikiページの内容。
title文字列はいWikiページのタイトル。
format文字列いいえWikiページのフォーマット。利用可能なフォーマットは、markdown(デフォルト)、rdocasciidocorgです。
curl --data "format=rdoc&title=Hello&content=Hello world" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/wikis"

レスポンス例:

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

特殊文字や図を含むMarkdownコンテンツの場合、ファイルの参照とともに--data-urlencodeを使用して、エンコードを自動的に処理します。

例として、content.mdという名前のファイルにWikiコンテンツを作成し、以下のコマンドを実行します:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data-urlencode "title=Page with Complex Content" \
  --data-urlencode "content@content.md" \
  --url "https://gitlab.example.com/api/v4/projects/1/wikis"

--data-urlencode "content@content.md"オプションは、Markdownファイルの内容をURLエンコードし、content属性に割り当てます。このエンコードにより、特殊文字、改行、および複雑なMarkdownの構文が処理され、それらが原因で発生する可能性のあるエラーを防ぎます。

レスポンス例:

{
"content": "<contents of content.md>",
"format": "markdown",
"slug": "Page-with-Complex-Content",
"title": "Page with Complex Content",
"encoding": "UTF-8"
}

Wikiページを更新する

指定されたWikiページを更新します。Wikiページを更新するには、少なくとも1つのパラメータが必要です。

PUT /projects/:id/wikis/:slug
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
content文字列はい、titleが指定されていない場合Wikiページの内容。
title文字列はい、contentが指定されていない場合Wikiページのタイトル。
format文字列いいえWikiページのフォーマット。利用可能なフォーマットは、markdown(デフォルト)、rdocasciidocorgです。
slug文字列はいURL-エンコードされたslug(Wikiページの一意な文字列)。例: dir%2Fpage_name
curl --request PUT \
  --data "format=rdoc&content=documentation&title=Docs" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/wikis/foo"

レスポンス例:

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

Wikiページを削除する

指定されたWikiページを削除します。

DELETE /projects/:id/wikis/:slug
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
slug文字列はいURL-エンコードされたslug(Wikiページの一意な文字列)。例: dir%2Fpage_name
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/wikis/foo"

成功した場合、空のボディを持つ204 No Content HTTPレスポンスが期待されます。

Wikiリポジトリに添付ファイルをアップロードする

Wikiのリポジトリ内の添付フォルダーにファイルをアップロードします。添付フォルダーはuploadsフォルダーです。

POST /projects/:id/wikis/attachments
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
file文字列はいアップロードする添付ファイル。
branch文字列いいえブランチの名前Wikiリポジトリのデフォルトブランチに設定されます。

ファイルシステムからファイルをアップロードするには、--form引数を使用します。これにより、cURLはヘッダーContent-Type: multipart/form-dataを使用してデータを送信します。file=パラメータは、ファイルシステムのファイルを指しており、先頭に@を付ける必要があります。例:

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

レスポンス例:

{
  "file_name" : "dk.png",
  "file_path" : "uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png",
  "branch" : "main",
  "link" : {
    "url" : "uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png",
    "markdown" : "![A description of the attachment](uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png)"
  }
}