프로젝트 위키 API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

프로젝트 위키 API는 APIv4에서만 사용할 수 있습니다. 그룹 위키를 위한 API도 있습니다.

위키 페이지 디렉터리

특정 프로젝트의 모든 위키 페이지를 가져옵니다.

GET /projects/: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/projects/1/wikis?with_content=1"

응답 예시:

[
  {
    "content" : "프로젝트를 배포하는 방법에 대한 지침이 여기에 있습니다.",
    "format" : "markdown",
    "slug" : "deploy",
    "title" : "deploy",
    "encoding": "UTF-8"
  },
  {
    "content" : "우리의 개발 프로세스에 대한 설명이 여기에 있습니다.",
    "format" : "markdown",
    "slug" : "development",
    "title" : "development",
    "encoding": "UTF-8"
  },{
    "content" : "*  [배포](deploy)\n*  [개발](development)",
    "format" : "markdown",
    "slug" : "home",
    "title" : "home",
    "encoding": "UTF-8"
  }
]

위키 페이지 가져오기

특정 프로젝트의 위키 페이지를 가져옵니다.

GET /projects/:id/wikis/:slug
속성 유형 필수 설명
id integer/string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
slug string Yes 위키 페이지의 URL 인코딩된 슬러그(고유한 문자열)입니다. 예: dir%2Fpage_name.
render_html boolean No 렌더링된 HTML을 위키 페이지로 반환합니다.
version string No 위키 페이지 버전 SHA입니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/wikis/home"

응답 예시:

{
  "content" : "홈 페이지",
  "format" : "markdown",
  "slug" : "home",
  "title" : "home",
  "encoding": "UTF-8"
}

새로운 위키 페이지 생성

주어진 리포지터리에 제목, 슬러그 및 콘텐츠로 새로운 위키 페이지를 생성합니다.

POST /projects/:id/wikis
속성 유형 필수 설명
id integer/string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
content string Yes 위키 페이지의 콘텐츠입니다.
title string Yes 위키 페이지의 제목입니다.
format string No 위키 페이지의 형식입니다. 가능한 형식은: markdown (기본값), rdoc, asciidocorg입니다.
curl --data "format=rdoc&title=Hello&content=Hello world" \
     --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/wikis"

응답 예시:

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

기존 위키 페이지 편집

기존 위키 페이지를 업데이트합니다. 위키 페이지를 업데이트하려면 하나 이상의 매개변수가 필요합니다.

PUT /projects/:id/wikis/:slug
속성 유형 필수 설명
id integer/string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
content string Yes, title이 제공되지 않을 경우 필수 위키 페이지의 콘텐츠입니다.
title string Yes, content가 제공되지 않을 경우 필수 위키 페이지의 제목입니다.
format string No 위키 페이지의 형식입니다. 가능한 형식은: markdown (기본값), rdoc, asciidocorg입니다.
slug string Yes 위키 페이지의 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/projects/1/wikis/foo"

응답 예시:

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

위키 페이지 삭제

지정된 슬러그를 가진 위키 페이지를 삭제합니다.

DELETE /projects/:id/wikis/:slug
속성 유형 필수 설명
id integer/string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
slug string Yes 위키 페이지의 URL 인코딩된 슬러그(고유한 문자열)입니다. 예: dir%2Fpage_name.
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/wikis/foo"

성공하면, 빈 응답 내용을 가진 204 No Content HTTP 응답이 예상됩니다.

위키 리포지터리에 첨부 파일 업로드

첨부 폴더인 위키 리포지터리 내에 파일을 업로드합니다. 첨부 폴더는 uploads 폴더입니다.

POST /projects/:id/wikis/attachments
속성 유형 필수 설명
id integer/string Yes 프로젝트의 ID 또는 URL 인코딩된 경로.
file string Yes 업로드할 첨부 파일입니다.
branch string No 브랜치의 이름입니다. 위키 리포지터리의 기본 브랜치로 기본값이 설정됩니다.

시스템 파일에서 파일을 업로드하려면 --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/projects/1/wikis/attachments"

응답 예시:

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