그룹 위키 API

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

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

위키 페이지 디렉터리

특정 그룹의 모든 위키 페이지를 나열합니다.

GET /groups/:id/wikis
속성 타입 필수 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로.
with_content 부울 아니요 페이지 콘텐츠를 포함합니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/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 /groups/: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/groups/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/groups/1/wikis"

응답 예시:

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

기존 위키 페이지 편집

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

PUT /groups/: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/groups/1/wikis/foo"

응답 예시:

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

위키 페이지 삭제

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

DELETE /groups/: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/groups/1/wikis/foo"

성공 시, 빈 본문을 가진 204 No Content HTTP 응답이 예상됩니다.

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

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

POST /groups/: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/groups/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)"
  }
}