InfoGrab Docs

프로젝트 위키 API

요약

이 API를 사용하여 프로젝트 위키를 관리합니다. 위키 페이지의 댓글은 notes라고 합니다. 지정된 프로젝트의 모든 위키 페이지를 나열합니다. 프로젝트의 지정된 위키 페이지를 조회합니다. 지정된 프로젝트에 제목, 슬러그, 콘텐츠를 사용하여 위키 페이지를 만듭니다.

이 API를 사용하여 프로젝트 위키를 관리합니다. 그룹 위키를 위한 API도 사용 가능합니다.

위키 페이지의 댓글은 notes라고 합니다. 이와 상호 작용하려면 노트 API를 사용합니다.

모든 위키 페이지 목록 조회#

지정된 프로젝트의 모든 위키 페이지를 나열합니다.

GET /projects/:id/wikis
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
with_content boolean 아니요 페이지 콘텐츠를 포함합니다.
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"
  }
]

위키 페이지 조회#

프로젝트의 지정된 위키 페이지를 조회합니다.

GET /projects/:id/wikis/:slug
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
slug string URL 인코딩된 슬러그(고유 문자열)(예: dir%2Fpage_name).
render_html boolean 아니요 위키 페이지의 렌더링된 HTML을 반환합니다.
version string 아니요 위키 페이지 버전 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"
}

위키 페이지 만들기#

지정된 프로젝트에 제목, 슬러그, 콘텐츠를 사용하여 위키 페이지를 만듭니다.

POST /projects/:id/wikis
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
content string 위키 페이지의 콘텐츠.
title string 위키 페이지의 제목.
format string 아니요 위키 페이지의 형식. 사용 가능한 형식: markdown(기본값), rdoc, asciidoc, org.
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 파일을 만들고 다음을 실행합니다:

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"
}

위키 페이지 업데이트#

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

PUT /projects/:id/wikis/:slug
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
content string 예(title이 제공되지 않은 경우) 위키 페이지의 콘텐츠.
title string 예(content가 제공되지 않은 경우) 위키 페이지의 제목.
format string 아니요 위키 페이지의 형식. 사용 가능한 형식: markdown(기본값), rdoc, asciidoc, org.
slug string URL 인코딩된 슬러그(고유 문자열)(예: 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"
}

위키 페이지 삭제#

지정된 위키 페이지를 삭제합니다.

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

성공하면 빈 본문과 함께 204 No Content HTTP 응답이 예상됩니다.

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

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

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

프로젝트 위키 API

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 프로젝트 위키를 관리합니다. 위키 페이지의 댓글은 notes라고 합니다. 지정된 프로젝트의 모든 위키 페이지를 나열합니다. 프로젝트의 지정된 위키 페이지를 조회합니다. 지정된 프로젝트에 제목, 슬러그, 콘텐츠를 사용하여 위키 페이지를 만듭니다.

이 API를 사용하여 프로젝트 위키를 관리합니다. 그룹 위키를 위한 API도 사용 가능합니다.

위키 페이지의 댓글은 notes라고 합니다. 이와 상호 작용하려면 노트 API를 사용합니다.

모든 위키 페이지 목록 조회#

지정된 프로젝트의 모든 위키 페이지를 나열합니다.

GET /projects/:id/wikis
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
with_content boolean 아니요 페이지 콘텐츠를 포함합니다.
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"
  }
]

위키 페이지 조회#

프로젝트의 지정된 위키 페이지를 조회합니다.

GET /projects/:id/wikis/:slug
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
slug string URL 인코딩된 슬러그(고유 문자열)(예: dir%2Fpage_name).
render_html boolean 아니요 위키 페이지의 렌더링된 HTML을 반환합니다.
version string 아니요 위키 페이지 버전 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"
}

위키 페이지 만들기#

지정된 프로젝트에 제목, 슬러그, 콘텐츠를 사용하여 위키 페이지를 만듭니다.

POST /projects/:id/wikis
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
content string 위키 페이지의 콘텐츠.
title string 위키 페이지의 제목.
format string 아니요 위키 페이지의 형식. 사용 가능한 형식: markdown(기본값), rdoc, asciidoc, org.
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 파일을 만들고 다음을 실행합니다:

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"
}

위키 페이지 업데이트#

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

PUT /projects/:id/wikis/:slug
속성 유형 필수 여부 설명
id integer or string 프로젝트의 ID 또는 URL 인코딩된 경로.
content string 예(title이 제공되지 않은 경우) 위키 페이지의 콘텐츠.
title string 예(content가 제공되지 않은 경우) 위키 페이지의 제목.
format string 아니요 위키 페이지의 형식. 사용 가능한 형식: markdown(기본값), rdoc, asciidoc, org.
slug string URL 인코딩된 슬러그(고유 문자열)(예: 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"
}

위키 페이지 삭제#

지정된 위키 페이지를 삭제합니다.

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

성공하면 빈 본문과 함께 204 No Content HTTP 응답이 예상됩니다.

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

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

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