InfoGrab Docs

Pages 도메인 API

요약

이 API를 사용하여 GitLab Pages 도메인을 관리합니다. 이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 인스턴스의 모든 Pages 도메인을 나열합니다. 성공하면 200과 다음 응답 속성을 반환합니다:

이 API를 사용하여 GitLab Pages 도메인을 관리합니다.

이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 기능 관리사용에 대해 자세히 알아보세요.

모든 Pages 도메인 목록 조회#

인스턴스의 모든 Pages 도메인을 나열합니다.

사전 조건:

  • 인스턴스에 대한 관리자 권한이 있어야 합니다.
GET /pages/domains

지원되는 속성:

속성 유형 필수 설명
domain string no 필터링할 GitLab Pages 사이트의 도메인

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
project_id integer 이 Pages 도메인과 연결된 GitLab 프로젝트의 ID
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate_expiration object SSL 인증서 만료에 대한 정보
certificate_expiration.expired boolean SSL 인증서가 만료되었는지 여부
certificate_expiration.expiration date SSL 인증서의 만료 날짜 및 시간

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/pages/domains"

응답 예시:

[
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "project_id": 1337,
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "expired": false,
      "expiration": "2020-04-12T14:32:00.000Z"
    }
  }
]

프로젝트의 모든 Pages 도메인 목록 조회#

지정된 프로젝트의 모든 Pages 도메인을 나열합니다. 사용자는 Pages 도메인을 볼 수 있는 권한이 있어야 합니다.

GET /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

[
  {
    "domain": "www.domain.example",
    "url": "http://www.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
  },
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
      "expired": false,
      "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
      "certificate_text": "Certificate:\n … \n"
    }
  }
]

Pages 도메인 조회#

지정된 프로젝트에서 Pages 도메인을 조회합니다. 사용자는 Pages 도메인을 볼 수 있는 권한이 있어야 합니다.

GET /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

새 Pages 도메인 생성#

지정된 프로젝트에 Pages 도메인을 생성합니다. 사용자는 새 Pages 도메인을 생성할 수 있는 권한이 있어야 합니다.

POST /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt에서 발급한 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no 가장 구체적인 순서부터 가장 덜 구체적인 순서로 중간 인증서가 따라오는 PEM 형식의 인증서
key file/string no PEM 형식의 인증서 키

성공하면 201과 다음 응답 속성을 반환합니다:

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

.pem 파일의 인증서로 새 Pages 도메인 생성:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서를 포함하는 변수를 사용하여 새 Pages 도메인 생성:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

자동 인증서로 새 Pages 도메인 생성:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain=ssl.domain.example" \
     --form "auto_ssl_enabled=true" "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 도메인 업데이트#

프로젝트의 지정된 Pages 도메인을 업데이트합니다. 사용자는 기존 Pages 도메인을 변경할 수 있는 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt에서 발급한 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no 가장 구체적인 순서부터 가장 덜 구체적인 순서로 중간 인증서가 따라오는 PEM 형식의 인증서
key file/string no PEM 형식의 인증서 키

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

인증서 추가#

.pem 파일에서 Pages 도메인에 인증서 추가:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서를 포함하는 변수를 사용하여 Pages 도메인에 인증서 추가:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 커스텀 도메인에 대한 Let's Encrypt 통합 활성화#

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "auto_ssl_enabled=true"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true
}

인증서 제거#

Pages 도메인에 연결된 SSL 인증서를 제거하려면 다음을 실행합니다:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=" \
  --form "key="

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false
}

Pages 도메인 확인#

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

프로젝트의 지정된 Pages 도메인을 확인합니다. 사용자는 Pages 도메인을 업데이트할 수 있는 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain/verify

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 확인할 커스텀 도메인

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example/verify"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z"
}

Pages 도메인 삭제#

프로젝트의 지정된 Pages 도메인을 삭제합니다.

DELETE /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

성공하면 빈 본문을 가진 204 No Content HTTP 응답이 반환됩니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"

Pages 도메인 API

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

이 API를 사용하여 GitLab Pages 도메인을 관리합니다. 이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 인스턴스의 모든 Pages 도메인을 나열합니다. 성공하면 200과 다음 응답 속성을 반환합니다:

이 API를 사용하여 GitLab Pages 도메인을 관리합니다.

이 엔드포인트를 사용하려면 GitLab Pages 기능이 활성화되어 있어야 합니다. 기능 관리사용에 대해 자세히 알아보세요.

모든 Pages 도메인 목록 조회#

인스턴스의 모든 Pages 도메인을 나열합니다.

사전 조건:

  • 인스턴스에 대한 관리자 권한이 있어야 합니다.
GET /pages/domains

지원되는 속성:

속성 유형 필수 설명
domain string no 필터링할 GitLab Pages 사이트의 도메인

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
project_id integer 이 Pages 도메인과 연결된 GitLab 프로젝트의 ID
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate_expiration object SSL 인증서 만료에 대한 정보
certificate_expiration.expired boolean SSL 인증서가 만료되었는지 여부
certificate_expiration.expiration date SSL 인증서의 만료 날짜 및 시간

요청 예시:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/pages/domains"

응답 예시:

[
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "project_id": 1337,
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "expired": false,
      "expiration": "2020-04-12T14:32:00.000Z"
    }
  }
]

프로젝트의 모든 Pages 도메인 목록 조회#

지정된 프로젝트의 모든 Pages 도메인을 나열합니다. 사용자는 Pages 도메인을 볼 수 있는 권한이 있어야 합니다.

GET /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

[
  {
    "domain": "www.domain.example",
    "url": "http://www.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
  },
  {
    "domain": "ssl.domain.example",
    "url": "https://ssl.domain.example",
    "verified": true,
    "verification_code": "1234567890abcdef",
    "enabled_until": "2020-04-12T14:32:00.000Z",
    "auto_ssl_enabled": false,
    "certificate": {
      "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
      "expired": false,
      "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
      "certificate_text": "Certificate:\n … \n"
    }
  }
]

Pages 도메인 조회#

지정된 프로젝트에서 Pages 도메인을 조회합니다. 사용자는 Pages 도메인을 볼 수 있는 권한이 있어야 합니다.

GET /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

새 Pages 도메인 생성#

지정된 프로젝트에 Pages 도메인을 생성합니다. 사용자는 새 Pages 도메인을 생성할 수 있는 권한이 있어야 합니다.

POST /projects/:id/pages/domains

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt에서 발급한 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no 가장 구체적인 순서부터 가장 덜 구체적인 순서로 중간 인증서가 따라오는 PEM 형식의 인증서
key file/string no PEM 형식의 인증서 키

성공하면 201과 다음 응답 속성을 반환합니다:

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

.pem 파일의 인증서로 새 Pages 도메인 생성:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서를 포함하는 변수를 사용하여 새 Pages 도메인 생성:

curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains" \
  --form "domain=ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

자동 인증서로 새 Pages 도메인 생성:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --form "domain=ssl.domain.example" \
     --form "auto_ssl_enabled=true" "https://gitlab.example.com/api/v4/projects/5/pages/domains"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 도메인 업데이트#

프로젝트의 지정된 Pages 도메인을 업데이트합니다. 사용자는 기존 Pages 도메인을 변경할 수 있는 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인
auto_ssl_enabled boolean no 커스텀 도메인에 대해 Let's Encrypt에서 발급한 SSL 인증서 자동 생성을 활성화합니다.
certificate file/string no 가장 구체적인 순서부터 가장 덜 구체적인 순서로 중간 인증서가 따라오는 PEM 형식의 인증서
key file/string no PEM 형식의 인증서 키

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

인증서 추가#

.pem 파일에서 Pages 도메인에 인증서 추가:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=@/path/to/cert.pem" \
  --form "key=@/path/to/key.pem"

인증서를 포함하는 변수를 사용하여 Pages 도메인에 인증서 추가:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=$CERT_PEM" \
  --form "key=$KEY_PEM"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "certificate": {
    "subject": "/O=Example, Inc./OU=Example Origin CA/CN=Example Origin Certificate",
    "expired": false,
    "certificate": "-----BEGIN CERTIFICATE-----\n … \n-----END CERTIFICATE-----",
    "certificate_text": "Certificate:\n … \n"
  }
}

Pages 커스텀 도메인에 대한 Let's Encrypt 통합 활성화#

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "auto_ssl_enabled=true"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": true
}

인증서 제거#

Pages 도메인에 연결된 SSL 인증서를 제거하려면 다음을 실행합니다:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example" \
  --form "certificate=" \
  --form "key="

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false
}

Pages 도메인 확인#

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

프로젝트의 지정된 Pages 도메인을 확인합니다. 사용자는 Pages 도메인을 업데이트할 수 있는 권한이 있어야 합니다.

PUT /projects/:id/pages/domains/:domain/verify

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 확인할 커스텀 도메인

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

속성 유형 설명
domain string GitLab Pages 사이트의 커스텀 도메인 이름
url string 프로토콜을 포함한 Pages 사이트의 전체 URL
verified boolean 도메인이 확인되었는지 여부
verification_code string 도메인 소유권을 확인하는 데 사용되는 고유 레코드
enabled_until date 도메인이 활성화되는 날짜. 도메인이 재확인될 때마다 주기적으로 업데이트됩니다.
auto_ssl_enabled boolean Let's Encrypt를 사용한 SSL 인증서 자동 생성이 이 도메인에서 활성화되었는지 여부
certificate object SSL 인증서에 대한 정보
certificate.subject string 도메인에 대한 정보를 포함하는 SSL 인증서의 주체
certificate.expired date SSL 인증서가 만료되었는지(true) 또는 아직 유효한지(false) 여부
certificate.certificate string PEM 형식의 전체 SSL 인증서
certificate.certificate_text date 발급자, 유효 기간, 주체 및 기타 인증서 정보를 포함한 SSL 인증서의 사람이 읽을 수 있는 텍스트 표현

요청 예시:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example/verify"

응답 예시:

{
  "domain": "ssl.domain.example",
  "url": "https://ssl.domain.example",
  "auto_ssl_enabled": false,
  "verified": true,
  "verification_code": "1234567890abcdef",
  "enabled_until": "2020-04-12T14:32:00.000Z"
}

Pages 도메인 삭제#

프로젝트의 지정된 Pages 도메인을 삭제합니다.

DELETE /projects/:id/pages/domains/:domain

지원되는 속성:

속성 유형 필수 설명
id integer or string yes 프로젝트의 ID 또는 URL 인코딩된 경로
domain string yes 사용자가 지정한 커스텀 도메인

성공하면 빈 본문을 가진 204 No Content HTTP 응답이 반환됩니다.

요청 예시:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/5/pages/domains/ssl.domain.example"