InfoGrab DocsInfoGrab Docs

그룹 위키 API

요약

이 API로 그룹 위키를 관리합니다. 위키 페이지의 댓글은 notes 라고 합니다. 지정한 그룹의 모든 위키 페이지를 나열합니다. 지정한 그룹의 위키 페이지를 조회합니다. 지정한 제목, 슬러그, 콘텐츠로 특정 그룹의 위키 페이지를 생성합니다.

이 API로 그룹 위키를 관리합니다. 프로젝트 위키용 API도 제공됩니다.

위키 페이지의 댓글은 notes 라고 합니다. 댓글을 다루려면 노트 API를 사용합니다.

위키 페이지 목록 조회#

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

GET /groups/:id/wikis
속성 유형 필수 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
with_content boolean 아니요 페이지의 콘텐츠를 포함합니다.
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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"
  }
]

위키 페이지 조회#

지정한 그룹의 위키 페이지를 조회합니다.

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

응답 예시:

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

위키 페이지 생성#

지정한 제목, 슬러그, 콘텐츠로 특정 그룹의 위키 페이지를 생성합니다.

POST /groups/:id/wikis
속성 유형 필수 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
content string 예 위키 페이지의 콘텐츠입니다.
title string 예 위키 페이지의 제목입니다.
format string 아니요 위키 페이지의 형식입니다. 사용 가능한 형식은 markdown(기본값), rdoc, asciidoc, org 입니다.
curl --request POST \
     --data "format=rdoc&title=Hello&content=Hello world" \
     --header "PRIVATE-TOKEN: <your_access_token>" \
     --url "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 integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
content string Yes, if title is not provided 위키 페이지의 콘텐츠입니다.
title string Yes, if content is not provided 위키 페이지의 제목입니다.
format string 아니요 위키 페이지의 형식입니다. 사용 가능한 형식은 markdown(기본값), rdoc, asciidoc, org 입니다.
slug string 예 위키 페이지의 URL 인코딩된 슬러그(고유 문자열)입니다. 예: dir%2Fpage_name.
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/wikis/foo" \
  --data "format=rdoc" \
  --data "title=Docs" \
  --data "content=documentation"

응답 예시:

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

위키 페이지 삭제#

지정한 슬러그를 가진 위키 페이지를 특정 프로젝트에서 삭제합니다.

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

성공하면 본문이 비어 있는 204 No Content HTTP 응답이 반환됩니다.

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

특정 프로젝트의 위키 리포지터리 안에 있는 첨부 파일 폴더로 파일을 업로드합니다. 첨부 파일 폴더는 uploads 폴더입니다.

POST /groups/:id/wikis/attachments
속성 유형 필수 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
file string 예 업로드할 첨부 파일입니다.
branch string 아니요 브랜치의 이름입니다. 기본값은 위키 리포지터리의 기본 브랜치입니다.

파일 시스템에 있는 파일을 업로드하려면 --form 인수를 사용합니다. 이 인수를 쓰면 cURL 이 Content-Type: multipart/form-data 헤더로 데이터를 전송합니다. file= 파라미터는 파일 시스템의 파일을 가리켜야 하며 앞에 @를 붙여야 합니다. 예를 들면 다음과 같습니다.

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

응답 예시:

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

그룹 위키 API

GitLab v19.5
Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

이 API로 그룹 위키를 관리합니다. 위키 페이지의 댓글은 notes 라고 합니다. 지정한 그룹의 모든 위키 페이지를 나열합니다. 지정한 그룹의 위키 페이지를 조회합니다. 지정한 제목, 슬러그, 콘텐츠로 특정 그룹의 위키 페이지를 생성합니다.

이 API로 그룹 위키를 관리합니다. 프로젝트 위키용 API도 제공됩니다.

위키 페이지의 댓글은 notes 라고 합니다. 댓글을 다루려면 노트 API를 사용합니다.

위키 페이지 목록 조회#

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

GET /groups/:id/wikis
속성 유형 필수 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
with_content boolean 아니요 페이지의 콘텐츠를 포함합니다.
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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"
  }
]

위키 페이지 조회#

지정한 그룹의 위키 페이지를 조회합니다.

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

응답 예시:

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

위키 페이지 생성#

지정한 제목, 슬러그, 콘텐츠로 특정 그룹의 위키 페이지를 생성합니다.

POST /groups/:id/wikis
속성 유형 필수 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
content string 예 위키 페이지의 콘텐츠입니다.
title string 예 위키 페이지의 제목입니다.
format string 아니요 위키 페이지의 형식입니다. 사용 가능한 형식은 markdown(기본값), rdoc, asciidoc, org 입니다.
curl --request POST \
     --data "format=rdoc&title=Hello&content=Hello world" \
     --header "PRIVATE-TOKEN: <your_access_token>" \
     --url "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 integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
content string Yes, if title is not provided 위키 페이지의 콘텐츠입니다.
title string Yes, if content is not provided 위키 페이지의 제목입니다.
format string 아니요 위키 페이지의 형식입니다. 사용 가능한 형식은 markdown(기본값), rdoc, asciidoc, org 입니다.
slug string 예 위키 페이지의 URL 인코딩된 슬러그(고유 문자열)입니다. 예: dir%2Fpage_name.
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/wikis/foo" \
  --data "format=rdoc" \
  --data "title=Docs" \
  --data "content=documentation"

응답 예시:

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

위키 페이지 삭제#

지정한 슬러그를 가진 위키 페이지를 특정 프로젝트에서 삭제합니다.

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

성공하면 본문이 비어 있는 204 No Content HTTP 응답이 반환됩니다.

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

특정 프로젝트의 위키 리포지터리 안에 있는 첨부 파일 폴더로 파일을 업로드합니다. 첨부 파일 폴더는 uploads 폴더입니다.

POST /groups/:id/wikis/attachments
속성 유형 필수 설명
id integer or string 예 그룹의 ID 또는 URL 인코딩된 경로입니다.
file string 예 업로드할 첨부 파일입니다.
branch string 아니요 브랜치의 이름입니다. 기본값은 위키 리포지터리의 기본 브랜치입니다.

파일 시스템에 있는 파일을 업로드하려면 --form 인수를 사용합니다. 이 인수를 쓰면 cURL 이 Content-Type: multipart/form-data 헤더로 데이터를 전송합니다. file= 파라미터는 파일 시스템의 파일을 가리켜야 하며 앞에 @를 붙여야 합니다. 예를 들면 다음과 같습니다.

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

응답 예시:

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