프로젝트 위키 API

Tier: Free, Premium, Ultimate

Offering: GitLab.com, Self-managed, GitLab Dedicated

프로젝트 wikis API는 APIv4에서만 사용할 수 있습니다.

group wikis API도 제공됩니다.

위키 페이지 목록

주어진 프로젝트의 모든 위키 페이지를 가져옵니다.

GET /projects/:id/wikis
속성 유형 필수 설명
id 정수/문자열 프로젝트의 ID 또는 URL-인코딩된 경로.
with_content 불린 아니요 페이지의 내용을 포함합니다.
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 정수/문자열 프로젝트의 ID 또는 URL-인코딩된 경로.
slug 문자열 URL 인코딩된 슬러그(고유 문자열)로, 예: dir%2Fpage_name.
render_html 불린 아니요 위키 페이지의 렌더링된 HTML을 반환합니다.
version 문자열 아니요 위키 페이지 버전 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 정수/문자열 프로젝트의 ID 또는 URL-인코딩된 경로.
content 문자열 위키 페이지의 내용입니다.
title 문자열 위키 페이지의 제목입니다.
format 문자열 아니요 위키 페이지의 형식입니다. 사용 가능한 형식은: 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/projects/1/wikis"

응답 예시:

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

기존 위키 페이지 수정

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

PUT /projects/:id/wikis/:slug
속성 유형 필수 설명
id 정수/문자열 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
content 문자열 예, title이 제공되지 않으면 위키 페이지의 내용입니다.
title 문자열 예, content가 제공되지 않으면 위키 페이지의 제목입니다.
format 문자열 아니오 위키 페이지의 형식입니다. 사용 가능한 형식은: markdown (기본값), rdoc, asciidoc, org입니다.
slug 문자열 위키 페이지의 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 정수/문자열 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
slug 문자열 위키 페이지의 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 정수/문자열 프로젝트의 ID 또는 URL 인코딩된 경로입니다.
file 문자열 업로드할 첨부 파일입니다.
branch 문자열 아니오 브랜치의 이름입니다. 기본적으로 위키 리포지토리의 기본 브랜치로 설정됩니다.

파일 시스템에서 파일을 업로드하려면 --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)"
  }
}