InfoGrab Docs

프로젝트 릴리스 API

요약

이 API를 사용하여 프로젝트의 릴리스를 관리합니다. 그룹의 릴리스와 상호 작용하려면 그룹 릴리스 API를 참조하세요. 릴리스 에셋으로 링크와 상호 작용하려면 릴리스 링크 API를 참조하세요. 릴리스 API는 인증을 위해 다음 중 하나를 허용합니다:

이 API를 사용하여 프로젝트의 릴리스를 관리합니다.

Note

그룹의 릴리스와 상호 작용하려면 그룹 릴리스 API를 참조하세요.

릴리스 에셋으로 링크와 상호 작용하려면 릴리스 링크 API를 참조하세요.

인증#

릴리스 API는 인증을 위해 다음 중 하나를 허용합니다:

릴리스 목록#

released_at를 기준으로 정렬된 페이지별 릴리스 목록을 반환합니다.

GET /projects/:id/releases
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
order_by string 아니오 정렬에 사용할 필드. released_at(기본값) 또는 created_at.
sort string 아니오 정렬 방향. 내림차순은 desc(기본값), 오름차순은 asc.
include_html_description boolean 아니오 true인 경우 응답에 릴리스 설명의 HTML 렌더링된 Markdown이 포함됩니다.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
[]._links object 릴리스의 링크.
[]._links.closed_issues_url string 릴리스의 종료된 이슈의 HTTP URL.
[]._links.closed_merge_requests_url string 릴리스의 종료된 머지 리퀘스트의 HTTP URL.
[]._links.edit_url string 릴리스의 편집 페이지의 HTTP URL.
[]._links.merged_merge_requests_url string 릴리스의 병합된 머지 리퀘스트의 HTTP URL.
[]._links.opened_issues_url string 릴리스의 열린 이슈의 HTTP URL.
[]._links.opened_merge_requests_url string 릴리스의 열린 머지 리퀘스트의 HTTP URL.
[]._links.self string 릴리스의 HTTP URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases"

응답 예시:

[
   {
      "tag_name":"v0.2",
      "description":"## CHANGELOG\r\n\r\n- Escape label and milestone titles to prevent XSS in GLFM autocomplete. !2740\r\n- Prevent private snippets from being embeddable.\r\n- Add subresources removal to member destroy service.",
      "name":"Awesome app v0.2 beta",
      "created_at":"2019-01-03T01:56:19.539Z",
      "released_at":"2019-01-03T01:56:19.539Z",
      "author":{
         "id":1,
         "name":"Administrator",
         "username":"root",
         "state":"active",
         "avatar_url":"https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
         "web_url":"https://gitlab.example.com/root"
      },
      "commit":{
         "id":"079e90101242458910cccd35eab0e211dfc359c0",
         "short_id":"079e9010",
         "title":"Update README.md",
         "created_at":"2019-01-03T01:55:38.000Z",
         "parent_ids":[
            "f8d3d94cbd347e924aa7b715845e439d00e80ca4"
         ],
         "message":"Update README.md",
         "author_name":"Administrator",
         "author_email":"admin@example.com",
         "authored_date":"2019-01-03T01:55:38.000Z",
         "committer_name":"Administrator",
         "committer_email":"admin@example.com",
         "committed_date":"2019-01-03T01:55:38.000Z"
      },
      "milestones": [
         {
            "id":51,
            "iid":1,
            "project_id":24,
            "title":"v1.0-rc",
            "description":"Voluptate fugiat possimus quis quod aliquam expedita.",
            "state":"closed",
            "created_at":"2019-07-12T19:45:44.256Z",
            "updated_at":"2019-07-12T19:45:44.256Z",
            "due_date":"2019-08-16",
            "start_date":"2019-07-30",
            "web_url":"https://gitlab.example.com/root/awesome-app/-/milestones/1",
            "issue_stats": {
               "total": 98,
               "closed": 76
            }
         },
         {
            "id":52,
            "iid":2,
            "project_id":24,
            "title":"v1.0",
            "description":"Voluptate fugiat possimus quis quod aliquam expedita.",
            "state":"closed",
            "created_at":"2019-07-16T14:00:12.256Z",
            "updated_at":"2019-07-16T14:00:12.256Z",
            "due_date":"2019-08-16",
            "start_date":"2019-07-30",
            "web_url":"https://gitlab.example.com/root/awesome-app/-/milestones/2",
            "issue_stats": {
               "total": 24,
               "closed": 21
            }
         }
      ],
      "assets":{
         "count":6,
         "sources":[
            {
               "format":"zip",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.zip"
            },
            {
               "format":"tar.gz",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.tar.gz"
            },
            {
               "format":"tar.bz2",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.tar.bz2"
            },
            {
               "format":"tar",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.tar"
            }
         ],
         "links":[
            {
               "id":2,
               "name":"awesome-v0.2.msi",
               "url":"http://192.168.10.15:3000/msi",
               "link_type":"other"
            },
            {
               "id":1,
               "name":"awesome-v0.2.dmg",
               "url":"http://192.168.10.15:3000",
               "link_type":"other"
            }
         ],
         "evidence_file_path":"https://gitlab.example.com/root/awesome-app/-/releases/v0.2/evidence.json"
      },
      "evidences":[
        {
          "sha": "760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
          "filepath": "https://gitlab.example.com/root/awesome-app/-/releases/v0.2/evidence.json",
          "collected_at": "2019-01-03T01:56:19.539Z"
        }
     ]
   }
]

태그 이름으로 릴리스 조회#

주어진 태그에 대한 릴리스를 조회합니다.

GET /projects/:id/releases/:tag_name
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.
include_html_description boolean 아니오 true인 경우 응답에 릴리스 설명의 HTML 렌더링된 Markdown이 포함됩니다.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1"

릴리스 에셋 다운로드#

히스토리

다음 형식으로 요청하여 릴리스 에셋 파일을 다운로드합니다:

GET /projects/:id/releases/:tag_name/downloads/:direct_asset_path
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.
direct_asset_path string 링크를 생성하거나 업데이트할 때 지정된 릴리스 에셋 파일 경로.

요청 예시:

curl --location --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/downloads/bin/asset.exe"

최신 릴리스 조회#

히스토리

최신 릴리스 정보는 영구 API URL을 통해 접근할 수 있습니다.

URL 형식은 다음과 같습니다:

GET /projects/:id/releases/permalink/latest

릴리스 태그가 필요한 다른 GET API를 호출하려면 permalink/latest API 경로에 접미사를 추가합니다.

예를 들어, 최신 릴리스 증거를 가져오려면 다음을 사용합니다:

GET /projects/:id/releases/permalink/latest/evidence

최신 릴리스의 에셋을 다운로드하는 또 다른 예시는 다음과 같습니다:

GET /projects/:id/releases/permalink/latest/downloads/bin/asset.exe

정렬 기본값#

기본적으로 GitLab은 released_at 시간을 사용하여 릴리스를 가져옵니다. 쿼리 파라미터 ?order_by=released_at의 사용은 선택 사항이며, ?order_by=semver 지원은 이슈 352945에서 추적되고 있습니다.

릴리스 생성#

릴리스를 생성합니다. 릴리스를 생성하려면 프로젝트에 대한 Developer 수준 접근 권한이 필요합니다.

POST /projects/:id/releases
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
name string 아니오 릴리스 이름.
tag_name string 릴리스가 생성되는 태그.
tag_message string 아니오 새 주석 달린 태그를 생성할 때 사용할 메시지.
description string 아니오 릴리스의 설명. Markdown을 사용할 수 있습니다.
ref string tag_name이 없는 경우 예 tag_name에 지정된 태그가 없는 경우 릴리스는 ref에서 생성되고 tag_name으로 태그가 지정됩니다. 커밋 SHA, 다른 태그 이름 또는 브랜치 이름일 수 있습니다.
milestones array of string 아니오 릴리스와 연결된 각 마일스톤의 제목. GitLab Premium 고객은 그룹 마일스톤을 지정할 수 있습니다.
assets:links array of hash 아니오 에셋 링크의 배열.
assets:links:name string assets:links에서 필수 링크의 이름. 링크 이름은 릴리스 내에서 고유해야 합니다.
assets:links:url string assets:links에서 필수 링크의 URL. 링크 URL은 릴리스 내에서 고유해야 합니다.
assets:links:direct_asset_path string 아니오 직접 에셋 링크에 대한 선택적 경로.
assets:links:link_type string 아니오 링크의 유형: other, runbook, image, package. 기본값은 other.
released_at datetime 아니오 릴리스의 날짜 및 시간. 기본값은 현재 시간. ISO 8601 형식(2019-03-15T08:00:00Z) 예상. 예정된 또는 역사적 릴리스를 생성하는 경우에만 이 필드를 제공하세요.

요청 예시:

curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: <your_access_token>" \
     --data '{ "name": "New release", "tag_name": "v0.3", "description": "Super nice release", "milestones": ["v1.0", "v1.0-rc"], "assets": { "links": [{ "name": "hoge", "url": "https://google.com", "direct_asset_path": "/binaries/linux-amd64", "link_type":"other" }] } }' \
     --request POST "https://gitlab.example.com/api/v4/projects/24/releases"

그룹 마일스톤#

프로젝트와 연결된 그룹 마일스톤은 릴리스 생성릴리스 업데이트 API 호출에서 milestones 배열에 지정할 수 있습니다. 프로젝트의 그룹과 연결된 마일스톤만 지정할 수 있으며, 상위 그룹의 마일스톤을 추가하면 오류가 발생합니다.

릴리스 증거 수집#

기존 릴리스에 대한 증거를 생성합니다.

POST /projects/:id/releases/:tag_name/evidence
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.

요청 예시:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/evidence"

응답 예시:

200

릴리스 업데이트#

히스토리
  • GitLab 14.5에서 JOB-TOKEN을 허용하도록 변경됨.

릴리스를 업데이트합니다. 릴리스를 업데이트하려면 프로젝트에 대한 Developer 수준 접근 권한이 필요합니다.

PUT /projects/:id/releases/:tag_name
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.
name string 아니오 릴리스 이름.
description string 아니오 릴리스의 설명. Markdown을 사용할 수 있습니다.
milestones array of string 아니오 릴리스와 연결할 각 마일스톤의 제목. GitLab Premium 고객은 그룹 마일스톤을 지정할 수 있습니다. 릴리스에서 모든 마일스톤을 제거하려면 []를 지정합니다.
released_at datetime 아니오 릴리스가 준비되었거나 될 날짜. ISO 8601 형식(2019-03-15T08:00:00Z) 예상.

요청 예시:

curl --header 'Content-Type: application/json' --request PUT --data '{"name": "new name", "milestones": ["v1.2"]}' \
     --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1"

릴리스 삭제#

히스토리
  • GitLab 11.7에서 도입되었습니다.

릴리스를 삭제합니다. 릴리스를 삭제해도 관련 태그는 삭제되지 않습니다. 프로젝트에 대해 최소 Developer 역할이 필요합니다.

DELETE /projects/:id/releases/:tag_name
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.

요청 예시:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1"

예정된 릴리스#

released_at 속성이 미래 날짜로 설정된 릴리스는 UI에서 Upcoming Release로 표시됩니다.

또한 API에서 릴리스가 요청될 때, release_at 속성이 미래 날짜로 설정된 각 릴리스에 대해 추가 속성 upcoming_release(true로 설정)가 응답의 일부로 반환됩니다.

역사적 릴리스#

히스토리

released_at 속성이 과거 날짜로 설정된 릴리스는 UI에서 Historical release로 표시됩니다.

또한 API에서 릴리스가 요청될 때, release_at 속성이 과거 날짜로 설정된 각 릴리스에 대해 추가 속성이 응답의 일부로 반환됩니다.

프로젝트 릴리스 API

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

이 API를 사용하여 프로젝트의 릴리스를 관리합니다. 그룹의 릴리스와 상호 작용하려면 그룹 릴리스 API를 참조하세요. 릴리스 에셋으로 링크와 상호 작용하려면 릴리스 링크 API를 참조하세요. 릴리스 API는 인증을 위해 다음 중 하나를 허용합니다:

이 API를 사용하여 프로젝트의 릴리스를 관리합니다.

Note

그룹의 릴리스와 상호 작용하려면 그룹 릴리스 API를 참조하세요.

릴리스 에셋으로 링크와 상호 작용하려면 릴리스 링크 API를 참조하세요.

인증#

릴리스 API는 인증을 위해 다음 중 하나를 허용합니다:

릴리스 목록#

released_at를 기준으로 정렬된 페이지별 릴리스 목록을 반환합니다.

GET /projects/:id/releases
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
order_by string 아니오 정렬에 사용할 필드. released_at(기본값) 또는 created_at.
sort string 아니오 정렬 방향. 내림차순은 desc(기본값), 오름차순은 asc.
include_html_description boolean 아니오 true인 경우 응답에 릴리스 설명의 HTML 렌더링된 Markdown이 포함됩니다.

성공하면 200 OK와 다음 응답 속성을 반환합니다:

속성 유형 설명
[]._links object 릴리스의 링크.
[]._links.closed_issues_url string 릴리스의 종료된 이슈의 HTTP URL.
[]._links.closed_merge_requests_url string 릴리스의 종료된 머지 리퀘스트의 HTTP URL.
[]._links.edit_url string 릴리스의 편집 페이지의 HTTP URL.
[]._links.merged_merge_requests_url string 릴리스의 병합된 머지 리퀘스트의 HTTP URL.
[]._links.opened_issues_url string 릴리스의 열린 이슈의 HTTP URL.
[]._links.opened_merge_requests_url string 릴리스의 열린 머지 리퀘스트의 HTTP URL.
[]._links.self string 릴리스의 HTTP URL.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases"

응답 예시:

[
   {
      "tag_name":"v0.2",
      "description":"## CHANGELOG\r\n\r\n- Escape label and milestone titles to prevent XSS in GLFM autocomplete. !2740\r\n- Prevent private snippets from being embeddable.\r\n- Add subresources removal to member destroy service.",
      "name":"Awesome app v0.2 beta",
      "created_at":"2019-01-03T01:56:19.539Z",
      "released_at":"2019-01-03T01:56:19.539Z",
      "author":{
         "id":1,
         "name":"Administrator",
         "username":"root",
         "state":"active",
         "avatar_url":"https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80\u0026d=identicon",
         "web_url":"https://gitlab.example.com/root"
      },
      "commit":{
         "id":"079e90101242458910cccd35eab0e211dfc359c0",
         "short_id":"079e9010",
         "title":"Update README.md",
         "created_at":"2019-01-03T01:55:38.000Z",
         "parent_ids":[
            "f8d3d94cbd347e924aa7b715845e439d00e80ca4"
         ],
         "message":"Update README.md",
         "author_name":"Administrator",
         "author_email":"admin@example.com",
         "authored_date":"2019-01-03T01:55:38.000Z",
         "committer_name":"Administrator",
         "committer_email":"admin@example.com",
         "committed_date":"2019-01-03T01:55:38.000Z"
      },
      "milestones": [
         {
            "id":51,
            "iid":1,
            "project_id":24,
            "title":"v1.0-rc",
            "description":"Voluptate fugiat possimus quis quod aliquam expedita.",
            "state":"closed",
            "created_at":"2019-07-12T19:45:44.256Z",
            "updated_at":"2019-07-12T19:45:44.256Z",
            "due_date":"2019-08-16",
            "start_date":"2019-07-30",
            "web_url":"https://gitlab.example.com/root/awesome-app/-/milestones/1",
            "issue_stats": {
               "total": 98,
               "closed": 76
            }
         },
         {
            "id":52,
            "iid":2,
            "project_id":24,
            "title":"v1.0",
            "description":"Voluptate fugiat possimus quis quod aliquam expedita.",
            "state":"closed",
            "created_at":"2019-07-16T14:00:12.256Z",
            "updated_at":"2019-07-16T14:00:12.256Z",
            "due_date":"2019-08-16",
            "start_date":"2019-07-30",
            "web_url":"https://gitlab.example.com/root/awesome-app/-/milestones/2",
            "issue_stats": {
               "total": 24,
               "closed": 21
            }
         }
      ],
      "assets":{
         "count":6,
         "sources":[
            {
               "format":"zip",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.zip"
            },
            {
               "format":"tar.gz",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.tar.gz"
            },
            {
               "format":"tar.bz2",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.tar.bz2"
            },
            {
               "format":"tar",
               "url":"https://gitlab.example.com/root/awesome-app/-/archive/v0.2/awesome-app-v0.2.tar"
            }
         ],
         "links":[
            {
               "id":2,
               "name":"awesome-v0.2.msi",
               "url":"http://192.168.10.15:3000/msi",
               "link_type":"other"
            },
            {
               "id":1,
               "name":"awesome-v0.2.dmg",
               "url":"http://192.168.10.15:3000",
               "link_type":"other"
            }
         ],
         "evidence_file_path":"https://gitlab.example.com/root/awesome-app/-/releases/v0.2/evidence.json"
      },
      "evidences":[
        {
          "sha": "760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d",
          "filepath": "https://gitlab.example.com/root/awesome-app/-/releases/v0.2/evidence.json",
          "collected_at": "2019-01-03T01:56:19.539Z"
        }
     ]
   }
]

태그 이름으로 릴리스 조회#

주어진 태그에 대한 릴리스를 조회합니다.

GET /projects/:id/releases/:tag_name
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.
include_html_description boolean 아니오 true인 경우 응답에 릴리스 설명의 HTML 렌더링된 Markdown이 포함됩니다.

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1"

릴리스 에셋 다운로드#

히스토리

다음 형식으로 요청하여 릴리스 에셋 파일을 다운로드합니다:

GET /projects/:id/releases/:tag_name/downloads/:direct_asset_path
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.
direct_asset_path string 링크를 생성하거나 업데이트할 때 지정된 릴리스 에셋 파일 경로.

요청 예시:

curl --location --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/downloads/bin/asset.exe"

최신 릴리스 조회#

히스토리

최신 릴리스 정보는 영구 API URL을 통해 접근할 수 있습니다.

URL 형식은 다음과 같습니다:

GET /projects/:id/releases/permalink/latest

릴리스 태그가 필요한 다른 GET API를 호출하려면 permalink/latest API 경로에 접미사를 추가합니다.

예를 들어, 최신 릴리스 증거를 가져오려면 다음을 사용합니다:

GET /projects/:id/releases/permalink/latest/evidence

최신 릴리스의 에셋을 다운로드하는 또 다른 예시는 다음과 같습니다:

GET /projects/:id/releases/permalink/latest/downloads/bin/asset.exe

정렬 기본값#

기본적으로 GitLab은 released_at 시간을 사용하여 릴리스를 가져옵니다. 쿼리 파라미터 ?order_by=released_at의 사용은 선택 사항이며, ?order_by=semver 지원은 이슈 352945에서 추적되고 있습니다.

릴리스 생성#

릴리스를 생성합니다. 릴리스를 생성하려면 프로젝트에 대한 Developer 수준 접근 권한이 필요합니다.

POST /projects/:id/releases
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
name string 아니오 릴리스 이름.
tag_name string 릴리스가 생성되는 태그.
tag_message string 아니오 새 주석 달린 태그를 생성할 때 사용할 메시지.
description string 아니오 릴리스의 설명. Markdown을 사용할 수 있습니다.
ref string tag_name이 없는 경우 예 tag_name에 지정된 태그가 없는 경우 릴리스는 ref에서 생성되고 tag_name으로 태그가 지정됩니다. 커밋 SHA, 다른 태그 이름 또는 브랜치 이름일 수 있습니다.
milestones array of string 아니오 릴리스와 연결된 각 마일스톤의 제목. GitLab Premium 고객은 그룹 마일스톤을 지정할 수 있습니다.
assets:links array of hash 아니오 에셋 링크의 배열.
assets:links:name string assets:links에서 필수 링크의 이름. 링크 이름은 릴리스 내에서 고유해야 합니다.
assets:links:url string assets:links에서 필수 링크의 URL. 링크 URL은 릴리스 내에서 고유해야 합니다.
assets:links:direct_asset_path string 아니오 직접 에셋 링크에 대한 선택적 경로.
assets:links:link_type string 아니오 링크의 유형: other, runbook, image, package. 기본값은 other.
released_at datetime 아니오 릴리스의 날짜 및 시간. 기본값은 현재 시간. ISO 8601 형식(2019-03-15T08:00:00Z) 예상. 예정된 또는 역사적 릴리스를 생성하는 경우에만 이 필드를 제공하세요.

요청 예시:

curl --header 'Content-Type: application/json' --header "PRIVATE-TOKEN: <your_access_token>" \
     --data '{ "name": "New release", "tag_name": "v0.3", "description": "Super nice release", "milestones": ["v1.0", "v1.0-rc"], "assets": { "links": [{ "name": "hoge", "url": "https://google.com", "direct_asset_path": "/binaries/linux-amd64", "link_type":"other" }] } }' \
     --request POST "https://gitlab.example.com/api/v4/projects/24/releases"

그룹 마일스톤#

프로젝트와 연결된 그룹 마일스톤은 릴리스 생성릴리스 업데이트 API 호출에서 milestones 배열에 지정할 수 있습니다. 프로젝트의 그룹과 연결된 마일스톤만 지정할 수 있으며, 상위 그룹의 마일스톤을 추가하면 오류가 발생합니다.

릴리스 증거 수집#

기존 릴리스에 대한 증거를 생성합니다.

POST /projects/:id/releases/:tag_name/evidence
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.

요청 예시:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1/evidence"

응답 예시:

200

릴리스 업데이트#

히스토리
  • GitLab 14.5에서 JOB-TOKEN을 허용하도록 변경됨.

릴리스를 업데이트합니다. 릴리스를 업데이트하려면 프로젝트에 대한 Developer 수준 접근 권한이 필요합니다.

PUT /projects/:id/releases/:tag_name
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.
name string 아니오 릴리스 이름.
description string 아니오 릴리스의 설명. Markdown을 사용할 수 있습니다.
milestones array of string 아니오 릴리스와 연결할 각 마일스톤의 제목. GitLab Premium 고객은 그룹 마일스톤을 지정할 수 있습니다. 릴리스에서 모든 마일스톤을 제거하려면 []를 지정합니다.
released_at datetime 아니오 릴리스가 준비되었거나 될 날짜. ISO 8601 형식(2019-03-15T08:00:00Z) 예상.

요청 예시:

curl --header 'Content-Type: application/json' --request PUT --data '{"name": "new name", "milestones": ["v1.2"]}' \
     --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1"

릴리스 삭제#

히스토리
  • GitLab 11.7에서 도입되었습니다.

릴리스를 삭제합니다. 릴리스를 삭제해도 관련 태그는 삭제되지 않습니다. 프로젝트에 대해 최소 Developer 역할이 필요합니다.

DELETE /projects/:id/releases/:tag_name
속성 유형 필수 설명
id integer 또는 string 프로젝트의 ID 또는 URL 인코딩된 경로.
tag_name string 릴리스와 연결된 Git 태그.

요청 예시:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/24/releases/v0.1"

예정된 릴리스#

released_at 속성이 미래 날짜로 설정된 릴리스는 UI에서 Upcoming Release로 표시됩니다.

또한 API에서 릴리스가 요청될 때, release_at 속성이 미래 날짜로 설정된 각 릴리스에 대해 추가 속성 upcoming_release(true로 설정)가 응답의 일부로 반환됩니다.

역사적 릴리스#

히스토리

released_at 속성이 과거 날짜로 설정된 릴리스는 UI에서 Historical release로 표시됩니다.

또한 API에서 릴리스가 요청될 때, release_at 속성이 과거 날짜로 설정된 각 릴리스에 대해 추가 속성이 응답의 일부로 반환됩니다.