프로젝트 이슈 보드 API

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

이슈 보드에 대한 모든 API 호출은 인증되어야합니다.

사용자가 비공개 프로젝트의 구성원이 아닌 경우, 해당 프로젝트에 대한 GET 요청은 404 상태 코드로 결과됩니다.

프로젝트 이슈 보드 목록

주어진 프로젝트의 프로젝트 이슈 보드를 나열합니다.

GET /projects/:id/boards

| 속성 | 유형 | 필수 여부 | 설명 | | —- | —- | ——– | —- | | id | 정수/문자열 | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 | shell curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards"

예시 응답:

[
  {
    "id" : 1,
    "name": "board1",
    "project": {
      "id": 5,
      "name": "Diaspora Project Site",
      "name_with_namespace": "Diaspora / Diaspora Project Site",
      "path": "diaspora-project-site",
      "path_with_namespace": "diaspora/diaspora-project-site",
      "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
      "web_url": "http://example.com/diaspora/diaspora-project-site"
    },
    "milestone":   {
      "id": 12,
      "title": "10.0"
    },
    "lists" : [
      {
        "id" : 1,
        "label" : {
          "name" : "Testing",
          "color" : "#F0AD4E",
          "description" : null
        },
        "position" : 1,
        "max_issue_count": 0,
        "max_issue_weight": 0,
        "limit_metric": null
      },
      {
        "id" : 2,
        "label" : {
          "name" : "Ready",
          "color" : "#FF0000",
          "description" : null
        },
        "position" : 2,
        "max_issue_count": 0,
        "max_issue_weight": 0,
        "limit_metric":  null
      },
      {
        "id" : 3,
        "label" : {
          "name" : "Production",
          "color" : "#FF5F00",
          "description" : null
        },
        "position" : 3,
        "max_issue_count": 0,
        "max_issue_weight": 0,
        "limit_metric":  null
      }
    ]
  }
]

프로젝트에서 활성화되거나 존재하지 않는 이슈 보드가 없는 경우의 다른 예시 응답:

[]

단일 이슈 보드 표시

단일 프로젝트 이슈 보드를 가져옵니다.

GET /projects/:id/boards/:board_id
속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 ID 또는 URL 인코딩된 경로
board_id 정수 보드의 ID
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1"

예시 응답:

  {
    "id": 1,
    "name": "project issue board",
    "project": {
      "id": 5,
      "name": "Diaspora Project Site",
      "name_with_namespace": "Diaspora / Diaspora Project Site",
      "path": "diaspora-project-site",
      "path_with_namespace": "diaspora/diaspora-project-site",
      "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
      "web_url": "http://example.com/diaspora/diaspora-project-site"
    },
    "milestone":   {
      "id": 12,
      "title": "10.0"
    },
    "lists" : [
      {
        "id" : 1,
        "label" : {
          "name" : "Testing",
          "color" : "#F0AD4E",
          "description" : null
        },
        "position" : 1,
        "max_issue_count": 0,
        "max_issue_weight": 0,
        "limit_metric":  null
      },
      {
        "id" : 2,
        "label" : {
          "name" : "Ready",
          "color" : "#FF0000",
          "description" : null
        },
        "position" : 2,
        "max_issue_count": 0,
        "max_issue_weight": 0,
        "limit_metric":  null
      },
      {
        "id" : 3,
        "label" : {
          "name" : "Production",
          "color" : "#FF5F00",
          "description" : null
        },
        "position" : 3,
        "max_issue_count": 0,
        "max_issue_weight": 0,
        "limit_metric":  null
      }
    ]
  }

이슈 보드 생성

프로젝트 이슈 보드를 생성합니다.

POST /projects/:id/boards
속성 유형 필수 여부 설명
id 정수/문자열 프로젝트의 ID 또는 URL 인코딩된 경로
name 문자열 새 보드의 이름
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards?name=newboard"

예시 응답:

  {
    "id": 1,
    "project": {
      "id": 5,
      "name": "Diaspora Project Site",
      "name_with_namespace": "Diaspora / Diaspora Project Site",
      "path": "diaspora-project-site",
      "path_with_namespace": "diaspora/diaspora-project-site",
      "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
      "web_url": "http://example.com/diaspora/diaspora-project-site"
    },
    "name": "newboard",
    "lists" : [],
    "group": null,
    "milestone": null,
    "assignee" : null,
    "labels" : [],
    "weight" : null
  }

이슈 보드 업데이트

프로젝트의 이슈 보드를 업데이트합니다.

PUT /projects/:id/boards/:board_id
속성 유형 필수 설명
id integer/string yes 프로젝트의 ID 또는 URL 인코딩된 경로.
board_id integer yes 보드의 ID.
name string no 보드의 새 이름.
assignee_id integer no 보드가 지정된 담당자. 프리미엄 및 얼티메이트 전용.
milestone_id integer no 보드가 지정된 마일스톤. 프리미엄 및 얼티메이트 전용.
labels string no 보드가 지정된 라벨 이름의 쉼표로 구분된 목록. 프리미엄 및 얼티메이트 전용.
weight integer no 보드가 지정된 가중치 범위 0부터 9까지. 프리미엄 및 얼티메이트 전용.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1?name=new_name&milestone_id=43&assignee_id=1&labels=Doing&weight=4"

예시 응답:

  {
    "id": 1,
    "project": {
      "id": 5,
      "name": "Diaspora Project Site",
      "name_with_namespace": "Diaspora / Diaspora Project Site",
      "path": "diaspora-project-site",
      "path_with_namespace": "diaspora/diaspora-project-site",
      "created_at": "2018-07-03T05:48:49.982Z",
      "default_branch": null,
      "tag_list": [], //deprecated, use `topics` instead
      "topics": [],
      "ssh_url_to_repo": "ssh://user@example.com/diaspora/diaspora-project-site.git",
      "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
      "web_url": "http://example.com/diaspora/diaspora-project-site",
      "readme_url": null,
      "avatar_url": null,
      "star_count": 0,
      "forks_count": 0,
      "last_activity_at": "2018-07-03T05:48:49.982Z"
    },
    "lists": [],
    "name": "new_name",
    "group": null,
    "milestone": {
      "id": 43,
      "iid": 1,
      "project_id": 15,
      "title": "마일스톤 1",
      "description": "마일스톤 1 설명",
      "state": "active",
      "created_at": "2018-07-03T06:36:42.618Z",
      "updated_at": "2018-07-03T06:36:42.618Z",
      "due_date": null,
      "start_date": null,
      "web_url": "http://example.com/root/board1/milestones/1"
    },
    "assignee": {
      "id": 1,
      "name": "관리자",
      "username": "root",
      "state": "active",
      "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
      "web_url": "http://example.com/root"
    },
    "labels": [{
      "id": 10,
      "name": "해당 작업 중",
      "color": "#5CB85C",
      "description": null
    }],
    "weight": 4
  }

이슈 보드 삭제

프로젝트의 이슈 보드를 삭제합니다.

DELETE /projects/:id/boards/:board_id
속성 유형 필수 설명
id integer/string yes 프로젝트의 ID 또는 URL 인코딩된 경로.
board_id integer yes 보드의 ID.
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1"

프로젝트 이슈 보드에서 보드 목록 나열

보드의 목록을 가져옵니다. openclosed 목록은 포함되지 않습니다.

GET /projects/:id/boards/:board_id/lists
속성 유형 필수 설명
id integer/string yes 프로젝트의 ID 또는 URL 인코딩된 경로.
board_id integer yes 보드의 ID.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists"

예시 응답:

[
  {
    "id" : 1,
    "label" : {
      "name" : "테스팅",
      "color" : "#F0AD4E",
      "description" : null
    },
    "position" : 1,
    "max_issue_count": 0,
    "max_issue_weight": 0,
    "limit_metric":  null
  },
  {
    "id" : 2,
    "label" : {
      "name" : "준비 완료",
      "color" : "#FF0000",
      "description" : null
    },
    "position" : 2,
    "max_issue_count": 0,
    "max_issue_weight": 0,
    "limit_metric":  null
  },
  {
    "id" : 3,
    "label" : {
      "name" : "프로덕션",
      "color" : "#FF5F00",
      "description" : null
    },
    "position" : 3,
    "max_issue_count": 0,
    "max_issue_weight": 0,
    "limit_metric":  null
  }
]

단일 보드 목록 표시

단일 보드 목록을 가져옵니다.

GET /projects/:id/boards/:board_id/lists/:list_id
속성 유형 필수 설명
id integer/string 프로젝트의 ID 또는 URL-encoded 경로.
board_id integer 보드의 ID.
list_id integer 보드 목록의 ID.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1"

예시 응답:

{
  "id" : 1,
  "label" : {
    "name" : "Testing",
    "color" : "#F0AD4E",
    "description" : null
  },
  "position" : 1,
  "max_issue_count": 0,
  "max_issue_weight": 0,
  "limit_metric":  null
}

보드 목록 생성

새로운 이슈 보드 목록을 생성합니다.

POST /projects/:id/boards/:board_id/lists
속성 유형 필수 설명
id integer/string 프로젝트의 ID 또는 URL-encoded 경로.
board_id integer 보드의 ID.
label_id integer 아니요 라벨의 ID.
assignee_id integer 아니요 사용자의 ID. 프리미엄 및 얼티밋 전용.
milestone_id integer 아니요 마일스톤의 ID. 프리미엄 및 얼티밋 전용.

참고: 라벨, 담당자 및 마일스톤 인수는 상호 배타적입니다. 즉, 요청에는 이 중 하나만 허용됩니다. 각 목록 유형에 대한 필요한 라이센스에 대한 자세한 내용은 이슈 보드 문서를 확인하십시오.

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists?label_id=5"

예시 응답:

{
  "id" : 1,
  "label" : {
    "name" : "Testing",
    "color" : "#F0AD4E",
    "description" : null
  },
  "position" : 1,
  "max_issue_count": 0,
  "max_issue_weight": 0,
  "limit_metric":  null
}

보드에서 목록 재정렬

기존의 이슈 보드 목록을 업데이트합니다. 이 호출은 목록 위치를 변경하는 데 사용됩니다.

PUT /projects/:id/boards/:board_id/lists/:list_id
속성 유형 필수 설명
id integer/string 프로젝트의 ID 또는 URL-encoded 경로.
board_id integer 보드의 ID.
list_id integer 보드 목록의 ID.
position integer 목록의 위치.
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1?position=2"

예시 응답:

{
  "id" : 1,
  "label" : {
    "name" : "Testing",
    "color" : "#F0AD4E",
    "description" : null
  },
  "position" : 1,
  "max_issue_count": 0,
  "max_issue_weight": 0,
  "limit_metric":  null
}

보드에서 목록 삭제

관리자 및 프로젝트 소유자 전용. 보드 목록을 삭제합니다.

DELETE /projects/:id/boards/:board_id/lists/:list_id
속성 유형 필수 설명
id integer/string 프로젝트의 ID 또는 URL-encoded 경로.
board_id integer 보드의 ID.
list_id integer 보드 목록의 ID.
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/boards/1/lists/1"