버전별 폐지 및 삭제

다음은 더 이상 권장되지 않으며 폐지된 GitLab 기능입니다.

  • 각 폐지된 기능은 향후 릴리스에서 삭제됩니다.
  • 일부 기능은 삭제될 때 중대한 변경을 야기합니다.
  • GitLab.com에서 폐지된 기능은 릴리스 예정일의 한 달 전에 언제든지 삭제될 수 있습니다.

이 폐지 정보를 고급 검색 및 필터링하려면 고객 성공 팀에서 프로덕션한 도구를 사용하세요.

REST API 폐지GraphQL 폐지는 별도로 문서화되어 있습니다.

다가오는 중대한 변경 내용 알림받기를 위해 RSS 피드 리더에 다음 URL을 추가하세요: https://about.gitlab.com/breaking-changes.xml

GitLab 19.0

단일 데이터베이스 사용이 폐지됨

  • GitLab 16.1에서 발표됨
  • GitLab 19.0에서 제거됨 (중대한 변경)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

GitLab 19.0부터 CI 기능을 위한 별도의 데이터베이스가 필요합니다. 대부분의 배포에서 관리의 용이성을 위해 두 데이터베이스를 동일한 Postgres 인스턴스에 실행하는 것을 권장합니다.

이 변경으로 GitLab.com과 같은 큰 규모의 GitLab 인스턴스에 대한 추가적인 확장성이 제공됩니다. 이 변경은 Omnibus GitLab, GitLab Helm 차트, GitLab Operator, GitLab Docker 이미지 및 소스에서의 설치에 모두 적용됩니다. GitLab 19.0로 업그레이드하기 전에 두 데이터베이스로 마이그레이션을 반드시 완료하세요.

GitLab 18.0

Atlassian Crowd OmniAuth 프로바이더

  • GitLab 15.3에서 발표됨
  • GitLab 18.0에서 제거됨 (중대한 변경)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

GitLab 18.0에서는 Atlassian Crowd OmniAuth 프로바이더를 제공하는 omniauth_crowd 젬이 제거될 예정입니다. 이 젬은 매우 적게 사용되며 OmniAuth 2.0과의 호환성저지되어 있습니다.

보호된 변수 및 다중 프로젝트 파이프라인의 동작 변경

  • GitLab 16.10에서 발표됨
  • GitLab 18.0에서 제거됨 (중대한 변경)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

일부 경우에 프로젝트에서 충분한 권한이 있는 사용자가 보호된 변수를 안전하지 않은 프로젝트로 전달할 수 있어서 이 변경 사항은 보호된 변수 값이 노출될 위험을 최소화하는 보안 향상입니다.

하위 파이프라인으로 CI/CD 변수를 전달하는 것은 일부 워크플로우에 유용하나, 보호된 변수는 추가적인 주의가 필요합니다. 이들은 특정 보호된 브랜치 또는 태그에서만 사용되도록 의도되어 있습니다.

GitLab 18.0에서는 변수 전달이 업데이트되어 보호된 변수가 특정 상황에서만 전달되도록 변경됩니다:

  • 프로젝트 수준의 보호된 변수는 동일 프로젝트(하위 파이프라인)로만 전달될 수 있습니다.
  • 그룹 수준의 보호된 변수는 출처 프로젝트가 동일한 그룹에 속한 프로젝트의 하위 파이프라인으로만 전달될 수 있습니다.

파이프라인이 보호된 변수를 전달하는 경우 구성을 업데이트하여 위의 두 옵션에 따르거나 보호된 변수를 전달하지 않도록 하세요.

GET /projects/:id/ci/lint에서 ref 및 sha를 함께 사용하는 것을 차단

  • GitLab 16.8에서 발표됨
  • GitLab 18.0에서 제거됨
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

GET /projects/:id/ci/lint API 호출에서 refsha의 사용을 폐지했습니다. 이 엔드포인트에 대한 API 호출이 refsha 대신에 content_refdry_run_ref를 사용하도록 하세요.

Maven 리포지터리 그룹 권한의 중대한 변경

  • GitLab 16.6에서 발표됨
  • GitLab 18.0에서 제거됨 (중대한 변경)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

Maven 리포지터리는 그룹 수준에서 Maven 클라이언트가 특정 패키지에서 파일을 다운로드할 수 있는 API 엔드포인트를 노출합니다. 패키지 파인더는 먼저 그룹 내에서 패키지를 찾은 다음 파일을 찾습니다. 그러나 다른 프로젝트에 호스팅된 중복 패키지 이름에 영향을 받는 제한이 있습니다. Maven 패키지 파인더는 항상 가장 최근 패키지를 반환하지만 “가장 최근” 필터는 사용자 권한에 따라 다릅니다. 서로 다른 프로젝트에서 서로 다른 권한을 가진 사용자는 잘못된 Maven 패키지를 다운로드할 수 있습니다.

GitLab 18.0에서 패키지 파인더 논리가 수정되어 “가장 최근” 패키지가 그룹 내에서 이름과 버전을 마지막으로 업데이트한 패키지가 되도록 변경될 예정입니다. 사용자 권한은 가장 최근 패키지를 찾은 후에 확인됩니다. 이 변경 후 올바르지 않은 권한이 있는 사용자의 다운로드 요청은 거부됩니다. 현재 버그가 있는 동작에 의존하는 경우, 이 수정은 중대한 변경을 도입할 것입니다.

본 변경은 GitLab 16.6에서 피처 플래그를 통해 도입될 예정입니다. 귀하의 그룹에 대해 피처 플래그를 활성화하고자 하는 경우, 이슈 393933에 의견을 남기세요.

(나머지 부분은 번역되지 않았습니다.)

기본 CI/CD 작업 토큰(CI_JOB_TOKEN) 범위가 변경되었습니다

  • GitLab 15.9에서 발표됨
  • GitLab 18.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세한 내용을 알아보려면 폐기 정보를 참조하세요.

GitLab 14.4에서 프로젝트의 CI/CD 작업 토큰을 제한하는 기능(CI_JOB_TOKEN)이 도입되었습니다. 이를 통해 보안을 강화할 수 있습니다. 프로젝트의 파이프라인에서 작업 토큰이 다른 프로젝트에 액세스되는 것을 방지할 수 있습니다. 다른 구성 없이 활성화되면 파이프라인에서 기본적으로 다른 프로젝트에 액세스할 수 없습니다. 파이프라인에서 작업 토큰을 사용하여 다른 프로젝트에 액세스하려면 해당 프로젝트를 명시적으로 Limit CI_JOB_TOKEN access 설정의 허용 디렉터리에 나열해야 하며, 모든 프로젝트에서 maintainer여야 합니다.

15.9에서 작업 토큰 기능이 업데이트되어 작업 토큰을 사용하여 프로젝트에 액세스를 허용하는 더 나은 보안 설정을 추가했습니다. 다른 구성 없이 활성화되면 작업 토큰이 다른 프로젝트에서 프로젝트로 액세스할 수 없습니다. 이전 설정과 비슷하게, 허용 디렉터리을 통해 작업 토큰으로 다른 프로젝트에서 프로젝트에 액세스를 허용할 수 있습니다. 이 새로운 설정에서는 자신의 프로젝트에서는 관리자여야 하지만 다른 프로젝트에서는 게스트 역할만 있어도 됩니다.

16.0에서 Limit 설정은 더 나은 Allow access 설정을 선호하여 폐기되었습니다. 또한, Limit 설정은 모든 새 프로젝트에 대해 기본적으로 비활성화되었습니다. 이후에, Limit 설정이 비활성화된 경우 16.0 이후에 이 설정을 다시 활성화할 수 없게 됩니다.

18.0에서 Limit 설정이 완전히 제거되고 모든 프로젝트에 대해 Allow access 설정이 활성화될 것입니다. 이 변경으로 인해 프로젝트 간에 더 높은 수준의 보안이 보장됩니다. 현재 Limit 설정을 사용 중인 경우, 프로젝트를 Allow access 설정을 사용하도록 업데이트해야 합니다. 다른 프로젝트가 작업 토큰을 사용하여 프로젝트에 액세스하는 경우, 해당 프로젝트를 Allow access 허용 디렉터리에 추가해야 합니다.

이 변경에 대비하기 위해 GitLab.com 또는 Self-Managed GitLab 15.9 이후의 사용자는 지금 Allow access 설정을 활성화하고 다른 프로젝트를 추가할 수 있습니다. 18.0 이후에는 설정을 비활성화할 수 없게 될 것입니다.

16.3에서 이러한 설정의 이름이 명확히하도록 변경되었습니다: 폐기된 Limit CI_JOB_TOKEN access 설정은 이제 Limit access from this project로, 새로운 Allow access to this project with a CI_JOB_TOKEN 설정은 이제 Limit access to this project로 불립니다.

의존성 프록시: 액세스 토큰 추가 범위 확인

  • GitLab 16.7에서 발표됨
  • GitLab 18.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세한 내용을 알아보려면 폐기 정보를 참조하세요.

그룹 액세스 토큰 또는 개인 액세스 토큰으로 컨테이너를 위한 의존성 프록시를 사용할 때, 의존성 프록시에 대한 docker logindocker pull 요청에 필요한 스코프가 충분하지 않은 경우 거부되지 않습니다.

GitLab 18.0은 컨테이너용 의존성 프록시에 대한 그룹 또는 개인 액세스 토큰의 확인을 추가합니다. 이는 중단 변경이며, 필요한 스코프가 없는 토큰은 실패합니다.

이 중단 변경에 영향을 받지 않도록 돕기 위해 필요한 스코프로 새 액세스 토큰을 생성하고 그 새 토큰으로 workflow 변수와 스크립트를 업데이트하세요.

라이선스 스캔 CI/CD artifact 리포트 유형 폐기

  • GitLab 16.9에서 발표됨
  • GitLab 18.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세한 내용을 알아보려면 폐기 정보를 참조하세요.

CI/CD artifact report 유형은 GitLab 16.9에서 폐기되었으며, GitLab 18.0에서 제거될 예정입니다. 이 키워드를 사용한 CI/CD 구성은 GitLab 18.0에서 작동하지 않게 됩니다.

이 리포트 유형은 GitLab 16.3에서 레거시 라이선스 스캔 CI/CD 작업의 제거로 인해 더 이상 사용되지 않습니다. 대신 CycloneDX 파일의 라이선스 스캔을 사용해야 합니다.

Terraform CI/CD 템플릿 폐기

  • GitLab 16.9에서 발표됨
  • GitLab 18.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세한 내용을 알아보려면 폐기 정보를 참조하세요.

Terraform CI/CD 템플릿이 폐기되고 GitLab 18.0에서 제거될 예정입니다. 다음 템플릿이 영향을 받습니다.

  • Terraform.gitlab-ci.yml
  • Terraform.latest.gitlab-ci.yml
  • Terraform/Base.gitlab-ci.yml
  • Terraform/Base.latest.gitlab-ci.yml

GitLab 16.9에서, 템플릿에 경고를 표시하는 새로운 작업이 추가되었습니다.

GitLab은 작업 이미지의 terraform 바이너리를 BSL로 라이선스가 획득된 모든 버전으로 업데이트할 수 없게 될 것입니다.

Terraform을 계속 사용하려면 템플릿을 복제하고 Terraform 이미지를 유지보수하세요. 대신, GitLab.com의 새 OpenTofu CI/CD 구성 또는 Self-Managed의 새 OpenTofu CI/CD 템플릿을 사용하는 것을 권장합니다. CI/CD 구성은 아직 GitLab Self-Managed에서 사용할 수 없지만, Issue #415638에서 이 기능을 추가하는 것을 제안했습니다. CI/CD 구성이 Self-Managed에서 사용할 수 있게 되면 OpenTofu CI/CD 템플릿이 제거될 것입니다.

새로운 OpenTofu CI/CD 구성에 대해 더 자세히 알아보려면 여기를 읽어보세요.

라이선스 메타데이터 형식 V1의 지원 중단

  • GitLab 16.9에서 발표됨
  • GitLab 18.0에서 제거될 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 정보는 폐기 문제를 참조하십시오.

라이선스 메타데이터 형식 V1 데이터 세트는 폐기되어 GitLab 18.0에서 제거될 예정입니다.

package_metadata_synchronization 피처 플래그를 활성화한 사용자는 GitLab 16.3 이상으로 업그레이드하고, 피처 플래그 구성을 제거할 것을 권장합니다.

GitLab 러너 플랫폼 및 GraphQL API 설정 지침

  • GitLab 15.9에서 발표됨
  • GitLab 18.0에서 제거될 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 정보는 폐기 문제를 참조하십시오.

runnerPlatformsrunnerSetup 쿼리를 통해 GitLab 러너 플랫폼 및 설치 지침을 가져오는 기능이 폐기되어 GraphQL API에서 제거될 예정입니다. 설치 지침에 대해서는 GitLab 러너 문서를 사용해야 합니다.

러너 연산자에서의 GitLab 러너 등록 토큰

  • GitLab 15.6에서 발표됨
  • GitLab 18.0에서 제거될 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 정보는 폐기 문제를 참조하십시오.

Kubernetes에 러너를 설치하는 데 오픈쉬프트 및 쿠버네티스 Vanilla Operator를 사용하는 runner-registration-token(을 사용하여 러너를 설치하는 데 오픈쉬프트 및 쿠버네티스 Vanilla Operator를 사용하는 runner-registration-token) 매개변수가 폐기될 예정입니다. 인증 토큰이 러너 등록에 사용될 것이며, 등록 토큰 및 특정 구성 인수에 대한 지원도 GitLab 18.0에서 제거될 예정입니다. 자세한 내용은 새로운 러너 등록 워크플로우로의 이관를 참조하십시오. 인증 토큰을 사용하도록 비활성화된 구성 인수는 다음과 같습니다:

  • --locked
  • --access-level
  • --run-untagged
  • --tag-list

이 변경은 파괴적인 변경입니다. gitlab-runner register 명령어에서 인증 토큰을 사용하는 것이 좋습니다.

컨테이너 레지스트리 리포지터리 태그 API 엔드포인트 페이징

  • GitLab 16.10에서 발표됨
  • GitLab 18.0에서 제거될 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 정보는 폐기 문제를 참조하십시오.

컨테이너 레지스트리 REST API를 사용하여 레지스트리 리포지터리 태그 디렉터리을 가져올 수 있습니다. 이 엔드포인트를 개선하여 더 많은 메타데이터와 개선된 정렬 및 필터링 기능을 추가할 계획입니다. 이 엔드포인트에 대해 오프셋 기반 페이징은 이미 사용할 수 있었으나, GitLab 16.10에서 GitLab.com 전용으로 키셋 기반 페이징이 도입되었습니다. 이제 이 방법이 우선적인 페이징 방법입니다. GitLab 16.10에서 오프셋 기반 페이징은 폐기되어 18.0에서 제거될 예정입니다. 대신 키셋 기반 페이징을 사용하십시오.

그룹 설정의 프로젝트 페이지가 폐기됨

  • GitLab 17.0에서 발표됨
  • GitLab 17.9에서 지원 종료
  • GitLab 18.0에서 제거될 예정
  • 이 변경에 대한 토론이나 자세한 정보는 폐기 문제를 참조하십시오.

그룹 소유자는 그룹 설정의 프로젝트 페이지에 접근하여 해당 그룹에 포함된 프로젝트 디렉터리, 프로젝트 생성, 편집 또는 삭제 옵션, 각 프로젝트에 대한 멤버 페이지로의 링크를 볼 수 있습니다. 이 기능은 그룹 개요 페이지 및 해당 프로젝트의 멤버 페이지에서 모두 사용할 수 있습니다. 그룹 설정의 프로젝트 페이지의 사용률이 낮고 접근성이 제한되어 있기 때문에 이 페이지는 폐기될 예정입니다. 이 변경은 사용자 인터페이스에만 영향을 미칩니다. 기본 API는 여전히 사용할 수 있으므로 프로젝트 생성, 편집 및 삭제는 프로젝트 API를 사용하여 수행할 수 있습니다. 17.9에서는 이 페이지에서 그룹 개요 페이지로의 리디렉션을 구현할 것입니다. 프로젝트 페이지는 18.0에서 그룹 설정에서 완전히 제거될 것입니다.

POST /api/v4/runners 엔드포인트의 등록 토큰 및 서버 측 러너 인수

  • GitLab 15.6에서 발표됨
  • GitLab 18.0에서 제거될 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 정보는 폐기 문제를 참조하십시오.

/api/v4/runners 엔드포인트에서 POST 메서드 작업에 대한 등록 토큰 및 특정 러너 구성 인수의 지원이 폐기되었습니다. 이 엔드포인트는 API를 통해 인스턴스, 그룹 또는 프로젝트 수준에서 GitLab 인스턴스에 러너를 등록합니다. GitLab 17.0부터 등록 토큰 및 특정 구성 인수에 대한 지원이 중단되어 GitLab 17.0에서 HTTP 410 Gone 상태 코드를 반환할 것입니다. 자세한 내용은 새로운 러너 등록 워크플로우로의 이관를 참조하십시오. 러너용 인증 토큰으로 비활성화된 구성 인수는 다음과 같습니다:

  • --locked
  • --access-level
  • --run-untagged
  • --maximum-timeout
  • --paused
  • --tag-list
  • --maintenance-note

이 변경은 파괴적인 변경입니다. 구성을 추가하려면 UI에서 러너를 만들고, gitlab-runner register 명령어에서 러너용 인증 토큰을 사용해야 합니다.

gitlab-runner register 명령어에서의 등록 토큰 및 서버 측 러너 인수

  • GitLab 15.6에서 발표됨
  • GitLab 18.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하십시오.

gitlab-runner register 명령어에서의 등록 토큰 및 특정 구성 인수는 러너를 등록하는 데 사용되었으나 이제 사용되지 않게 되었습니다. 대신 인증 토큰을 사용하여 러너를 등록할 것입니다. 등록 토큰 및 특정 구성 인수의 지원은 GitLab 18.0에서 제거될 것입니다. 자세한 정보는 새로운 러너 등록 워크플로우로의 이관를 참조하십시오.

인증 토큰으로 비활성화된 구성 인수는 다음과 같습니다:

  • --locked
  • --access-level
  • --run-untagged
  • --maximum-timeout
  • --paused
  • --tag-list
  • --maintenance-note

이 변경 사항은 파괴적인 변경 사항입니다. 구성 추가를 위해 UI에서 러너를 만들고 gitlab-runner register 명령어에서 인증 토큰을 사용해야 합니다.

GraphQL에서 previousStageJobsOrNeeds 제거

  • GitLab 17.0에서 발표됨
  • GitLab 18.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하십시오.

GraphQL에서 previousStageJobsOrNeeds 필드는 previousStageJobsneeds 필드로 대체되어 제거될 것입니다.

러너 active GraphQL 필드가 paused로 대체됨

  • GitLab 14.8에서 발표됨
  • GitLab 18.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하십시오.

GitLab 18.0에서 active 식별자는 paused로 이름이 변경될 것입니다:

  • CiRunner 속성.
  • 뮤테이션 runnerUpdate을 위한 RunnerUpdateInput 입력 유형.
  • 쿼리 runners, Group.runners, 그리고 Project.runners.

Kubernetes와의 Self-Managed형 인증 기반 통합

  • GitLab 14.5에서 발표됨
  • GitLab 18.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하십시오.

Kubernetes와의 인증 기반 통합이 폐기 및 제거될 예정입니다.

Self-Managed형 고객으로, GitLab 15.0에서 이 통합을 유지할 수 있도록 피처 플래그 certificate_based_clusters를 도입했습니다. 그러나 피처 플래그는 기본적으로 비활성화되므로 이 변경 사항은 파괴적인 변경 사항입니다.

GitLab 18.0에서 해당 기능과 관련 코드가 모두 제거될 것입니다. 해당 피처 플래그를 활성화하면 이 통합을 기반으로 한 기능은 계속 작동할 것입니다. 해당 기능이 제거될 때까지 GitLab은 출현하는 보안 및 중요한 문제를 계속 해결할 것입니다.

Kubernetes 클러스터를 GitLab과 연결하기 위해 개선된, 보다 견고하고 안전하며 신뢰할 수 있는 통합을 위해, Kubernetes를 위한 에이전트를 사용하는 것을 권장합니다. 어떻게 마이그레이션하나요?

명시적인 제거 날짜가 설정되었지만, 새로운 솔루션이 기능적으로 동등해질 때까지 이 기능을 제거할 계획은 없습니다. 제거에 대한 방해 요소에 대한 자세한 내용은 이 이슈를 참조하십시오.

이 폐기에 대한 업데이트 및 상세 내용은 이 에픽을 팔로우하십시오.

단일 데이터베이스 연결이 폐기됨

  • GitLab 15.9에서 발표됨
  • GitLab 17.0에서 지원 종료
  • GitLab 18.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하십시오.

이전에 GitLab의 데이터베이스 구성에는 main: 섹션이 하나만 있었습니다. 이것이 폐기되고 새로운 구성에는 main:ci: 섹션이 모두 있게 됩니다.

이 폐기는 GitLab을 소스에서 컴파일하는 사용자에게 영향을 줄 것이며, 해당 사용자는 ci: 섹션을 추가해야 합니다. 옴니버스, 헬름 차트, 및 오퍼레이터는 GitLab 16.0부터이 구성을 자동으로 처리할 것입니다.

Slack 알림 통합

  • GitLab 15.9에서 발표됨
  • GitLab 18.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하십시오.

Slack 모든 기능을 GitLab for Slack 앱으로 통합하는 과정에서 Slack 알림 통합이 폐기되었습니다. Slack 워크스페이스에 대한 알림을 관리하려면 GitLab for Slack 앱을 사용하십시오.

러너 등록 토큰 재설정을 위한 REST API 엔드포인트 지원

  • GitLab 15.7에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

러너 등록 토큰 지원이 폐지되었습니다. 따라서, 러너 등록 토큰을 재설정하는 REST API 엔드포인트 또한 폐지되며, GitLab 18.0에서 HTTP 410 Gone 상태 코드가 반환될 것입니다. 폐지된 엔드포인트는 다음과 같습니다:

  • POST /runners/reset_registration_token
  • POST /projects/:id/runners/reset_registration_token
  • POST /groups/:id/runners/reset_registration_token

우리는 새로운 GitLab 러너 토큰 아키텍처를 구현하여 러너를 GitLab 인스턴스에 바인딩하는 새로운 방법을 계획하고 있습니다. 이 작업은 이 에픽에서 계획되었습니다. 이 새로운 아키텍처는 러너를 등록하기 위한 새로운 방법을 소개하며, 레거시 러너 등록 토큰을 제거할 것입니다. GitLab 18.0 이후로는, 새로운 GitLab 러너 토큰 아키텍처에 의해 구현된 러너 등록 방법이 유일하게 지원되는 방법이 될 것입니다.

</div>

GitLab 레거시 필요 요구 사항 IID가 작업 항목 IID로 대체됨

  • GitLab 15.9에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

우리는 작업 항목 유형으로 요구 사항을 이동하게 되어 새로운 IID로 전환될 것입니다. 사용자들은 기존의 포맷팅과 레거시 IID 지원이 GitLab 18.0에서 종료되므로 새로운 IID를 사용하기 시작해야 합니다. 레거시 필요 요구 사항 IID는 GitLab 18.0에서 제거될 때까지 사용할 수 있습니다.

Project.services GraphQL 필드가 폐지됨

  • GitLab 15.9에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

Project.services GraphQL 필드가 폐지되었습니다. 대신 이 이슈에서 Project.integrations 필드가 제안되었습니다.

ci_job_token_scope_enabled 프로젝트 API 속성이 폐지됨

  • GitLab 16.4에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

GitLab 16.1에서 작업 토큰 범위에 대한 API 엔드포인트가 도입되었습니다. 프로젝트 API에서 ci_job_token_scope_enabled 속성이 폐지되며, 17.0에서 제거될 것입니다. 대신 작업 토큰 범위 API를 사용해야 합니다.

ciJobTokenScopeRemoveProjectdirection GraphQL 인수가 폐지됨

  • GitLab 16.9에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

ciJobTokenScopeRemoveProject 뮤테이션의 direction GraphQL 인수가 폐지되었습니다. GitLab 15.9에서 발표된 기본 CI/CD 작업 토큰 범위 변경 이후, direction 인수는 기본적으로 INBOUND로 설정될 것이며, GitLab 17.0에서 OUTBOUND가 더 이상 유효하지 않을 것입니다. 우리는 GitLab 18.0에서 direction 인수를 제거할 것입니다.

만약 direction 인수를 사용하여 프로젝트의 토큰 접근 방향을 제어하고 있다면, 작업 토큰을 사용하는 파이프라인은 인증에 실패할 위험이 있습니다. 파이프라인이 원활히 실행되도록 보장하려면, 프로젝트의 허용 디렉터리에 다른 프로젝트를 명시적으로 추가해야 합니다.

API에서 노트 기밀 정보 토글

  • GitLab 14.10에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

REST 및 GraphQL API에서 노트 기밀 정보 전환은 폐지됩니다. 노트 기밀 정보 속성을 업데이트하는 것은 더 이상 지원되지 않습니다. 이것을 변경하여 경험을 간소화하고 비의도적으로 개인 정보가 노출되는 것을 방지하고자 합니다.

GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN이 폐지됨

  • GitLab 16.11에서 발표됨
  • GitLab 18.0에 제거 예정 (파괴적 변화)
  • 이 변경에 대해 논의하거나 자세히 알아보려면, 폐지 이슈를 참조하세요.

GITLAB_SHARED_RUNNERS_REGISTRATION_TOKEN 환경 변수가 폐지되었습니다. GitLab은 GitLab 15.8에서 GitLab 러너 토큰 아키텍처를 도입했으며, 이것은 러너를 등록하기 위한 새로운 방법을 소개하고 레거시 러너 등록 토큰을 제거합니다. 새로운 워크플로우로의 마이그레이션에 대한 안내는 문서를 참조하세요.

GitLab Runner Helm 차트의 runnerRegistrationToken 매개변수

쿠버네티스에 러너를 설치하기 위해 GitLab Helm 차트를 사용하는 runnerRegistrationToken 매개변수가 더 이상 사용되지 않습니다. 관련 정보는 여기에서 확인할 수 있습니다.

저희는 새로운 GitLab 러너 토큰 구조를 활용하여 러너를 GitLab에 바인딩하는 새로운 방법을 구현할 계획입니다. 해당 작업은 이 이픽에서 계획 중입니다.

GitLab 18.0 이후로, 새로운 GitLab 러너 토큰 구조에서 소개된 러너를 등록하는 방법이 유일하게 지원되는 방법이 될 것입니다.

incoming_emailservice_desk_emailsidekiq 전달 방법이 폐지 예정

incoming_emailservice_desk_emailsidekiq 전달 방법이 폐지 예정이며, GitLab 18.0에서 제거될 예정입니다.

GitLab은 mail_room이라는 별도의 프로세스를 사용하여 이메일을 수집합니다. 현재 GitLab 관리자는 GitLab 인스턴스를 구성하여 mail_room에서 수집된 이메일을 sidekiq 또는 webhook 전달 방법을 사용하여 GitLab로 전달할 수 있습니다.

폐지 예정된 sidekiq 전달 방법을 사용하면, mail_room이 작업 데이터를 GitLab Redis 큐에 직접 기록합니다. 이는 전송 방법과 Redis 구성 간의 강력한 결합을 의미합니다. 다른 단점으로는 작업 페이로드 압축과 같은 프레임워크 최적화가 누락됩니다.

webhook 전달 방법을 사용하면, mail_room이 수집된 이메일 본문을 GitLab API로 푸시합니다. 이렇게 함으로써 mail_room이 Redis 구성을 알 필요가 없으며 GitLab 애플리케이션이 처리 작업을 추가합니다. mail_room은 공유 비밀 키로 인증합니다.

Omnibus 설치를 다시 구성하면,이 비밀 키 파일은 자동으로 생성되므로 비밀 파일 구성 설정이 필요하지 않습니다.

아래와 같은 명령을 실행하여 사용자 정의 비밀 키 파일(32자 base 64 인코딩)을 구성할 수 있으며, incoming_email_secret_fileservice_desk_email_secret_file에서 비밀 파일을 참조해야 합니다 (절대 경로를 지정하세요):

echo $( ruby -rsecurerandom -e "puts SecureRandom.base64(32)" ) > ~/.gitlab-mailroom-secret

여러 대의 머신에서 GitLab을 실행하는 경우, 각 머신에 대해 비밀 키 파일을 제공해야 합니다.

incoming_email_delivery_methodservice_desk_email_delivery_method의 경우 sidekiq 대신 webhook 전달 방법을 구성하는 것을 권장합니다.

Issue 393157에서 이메일 수집을 개선하는 것을 추적 중입니다. 이것이 인프라 구성을 단순화하고 가까운 미래에 GitLab을 관리하는 방법에 몇 가지 개선 사항을 추가할 것으로 기대합니다.

</div>

GitLab 17.3

OWASP Top 10 2017으로 그룹 취약점 보고서는 폐지 예정

  • GitLab에서 발표된 버전 17.0
  • GitLab 17.3에서 제거 예정
  • 이 변경에 대해 토론하거나 자세히 알아보려면 제거 예정 사항 이슈를 참조하세요.

OWASP Top 10 2017으로 보고서를 그룹화하는 것은 폐지 예정이며, 대신 취약점 보고서에서 OWASP Top 10 2021로 그룹화될 것입니다. 앞으로 취약점 보고서에서는 최신 버전의 OWASP Top 10을 지원할 예정입니다.

GitLab 17.0

공개 프로젝트에 대한 repository_download_operation 감사 이벤트 유형

현재 모든 프로젝트 다운로드에 대한 repository_download_operation 감사 이벤트 유형이 데이터베이스에 저장됩니다. 이는 공개 프로젝트의 경우 인증되지 않은 사용자에 의해 트리거될 수 있기 때문에 감사 목적으로는 가장 유용하지 않습니다.

GitLab 17.0부터 repository_download_operation 감사 이벤트 유형은 공개 또는 내부 프로젝트에만 트리거됩니다. 공개 프로젝트 다운로드에는 새로운 public_repository_download_operation 감사 이벤트 유형이 추가될 것입니다. 이 새로운 감사 이벤트 유형은 스트리밍 전용입니다.

Kubernetes 옵션 인 ca-cert-file GitLab 에이전트 변경 이름

GitLab 쿠버네티스 에이전트(에이전트케이)에서 --ca-cert-file 명령줄 옵션 및 해당 config.caCert Helm 차트 값은 --kas-ca-cert-fileconfig.kasCaCert로 변경되었습니다.

기존의 --ca-cert-fileconfig.caCert 옵션은 폐지 예정이며, GitLab 17.0에서 제거될 예정입니다.

Herokuish에 대한 Auto DevOps 지원 폐지 예정

Herokuish에 대한 Auto DevOps 지원이 Cloud Native Buildpacks를 선호하도록 폐지 예정입니다. Herokuish에서 Cloud Native Buildpacks로 빌드를 마이그레이션해야 합니다. GitLab 14.0부터, Auto Build는 기본적으로 Cloud Native Buildpacks를 사용합니다.

Cloud Native Buildpacks는 자동 테스트를 지원하지 않으므로 Auto DevOps의 자동 테스트 기능 또한 폐지 예정입니다.

자동 생성된 Markdown 앵커 링크(-) 주석

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거됨 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

GitLab은 모든 제목에 대해 자동으로 앵커 링크를 생성하여 Markdown 문서나 위키 페이지의 특정 위치에 링크를 걸 수 있습니다. 그러나 일부 특이한 경우에는 자동으로 생성된 앵커가 많은 사용자들이 기대하는 것보다 적은 대시(-) 문자로 생성됩니다. 예를 들어 ## Step - 1과 같은 제목의 경우, 대부분의 다른 Markdown 도구와 린터는 #step---1를 기대하지만, GitLab은 연속된 대시를 하나로 압축하여 #step-1의 앵커를 생성합니다.

GitLab 17.0에서는 연속된 대시를 더 이상 제거하지 않고 산업 표준에 맞춰 자동 생성된 앵커를 일치시킬 것입니다. 따라서 17.0에서 여러 개의 대시가 포함된 제목에 대한 링크를 걸 때, 이러한 특이한 경우를 피하려면 제목을 업데이트해야 합니다. 위의 예시에서 ## Step - 1## Step 1로 변경하여 페이지 내 링크가 계속 작동하도록 할 수 있습니다.

</div>

CiRunner.projects 기본 정렬이 id_desc로 변경됨

  • GitLab 16.0에서 발표됨
  • GitLab 17.0에서 제거됨 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

CiRunner.projects 필드의 기본 정렬 순서 값이 id_asc에서 id_desc로 변경됩니다. 반환된 프로젝트의 순서에 id_asc가 의존되어 있다면, 스크립트를 변경하여 명시적인 선택을 만들어야 합니다.

일반 설정에서의 컴플라이언스 프레임워크

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거됨 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

컴플라이언스 프레임워크 관리를 컴플라이언스 센터의 프레임워크 및 프로젝트 보고서로 이전했습니다.

따라서, GitLab 17.0에서는 그룹 및 프로젝트의 일반 설정 페이지에서 컴플라이언스 프레임워크 관리를 제거합니다.

Swift 및 OSS 스토리지 드라이버에 대한 컨테이너 레지스트리 지원

  • GitLab 16.6에서 발표됨
  • GitLab 17.0에서 제거됨 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

컨테이너 레지스트리는 여러 오브젝트 스토리지 플랫폼과 작동하기 위해 스토리지 드라이버를 사용합니다. 각 드라이버 코드는 비교적 독립적이지만, 이러한 드라이버에 대한 유지보수 부담이 매우 큽니다. 각 드라이버 구현은 고유하며 해당 드라이버에 대한 도메인 전문 지식이 있어야만 변경할 수 있습니다.

유지보수 비용을 줄이기 위해 OSS(객체 스토리지 서비스) 및 오픈스택 Swift에 대한 지원을 폐기합니다. 이미 두 가지가 Docker Distribution에서 제거되었습니다. 이는 컨테이너 레지스트리를 객체 스토리지 지원 측면에서 GitLab 제품 전체와 조화시키는 데 도움이 됩니다.

OSS에는 S3 호환 모드가 있으므로 지원되는 드라이버로 마이그레이션할 수 없는 경우에는 해당 모드를 사용하는 것이 좋습니다. Swift는 S3 API 작업과 호환되므로 S3 스토리지 드라이버에서 필요합니다.

DAST ZAP 고급 구성 변수 폐기

  • GitLab 15.7에서 발표됨
  • GitLab 17.0에서 제거됨 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

GitLab 15.7에서 새로운 브라우저 기반 DAST 분석기 GA가 나오면서, 우리는 미래에 이를 기본 DAST 분석기로 만드는 작업을 진행 중입니다. 이에 대비해 다음 레거시 DAST 변수가 폐기되었으며 GitLab 17.0에서 제거될 예정입니다: DAST_ZAP_CLI_OPTIONSDAST_ZAP_LOG_CONFIGURATION. 이러한 변수는 ZAP에 기반을 둔 레거시 DAST 분석기의 고급 구성을 허용했으며, 새 브라우저 기반 분석기는 이러한 기능을 제공하지 않을 것입니다.

이 세 가지 변수는 GitLab 17.0에서 제거될 것입니다.

Dependency Scanning에서 잘못된 SBOM 메타데이터 속성

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거됨 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

GitLab 17.0에서는 다음과 같은 메타데이터 속성을 CycloneDX SBOM 보고서에서 지원하지 않습니다:

  • gitlab:dependency_scanning:input_file
  • gitlab:dependency_scanning:package_manager

이러한 속성은 GitLab 15.7에서 의존성 스캐닝이 생성한 SBOM에 추가되었지만, 이러한 속성은 부정확했으며 GitLab CycloneDX 속성 분류와 일치하지 않았습니다. 이를 해결하기 위해 이러한 올바른 속성이 GitLab 15.11에서 추가되었습니다:

  • gitlab:dependency_scanning:input_file:path
  • gitlab:dependency_scanning:package_manager:name

잘못된 속성은 하위 호환성을 유지하기 위해 유지되었습니다. 그러나 이제 이러한 속성이 폐기되고 17.0에서 제거될 것입니다.

sbt 1.0.X에 대한 의존성 스캐닝 지원

  • GitLab 16.8에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

sbt의 매우 오래된 버전을 지원하는 것은 유지 관리 비용을 증가시키지 않고도 이 패키지 매니저의 추가적인 사용 사례에 대한 지원을 향상시키는 것을 방해합니다.

sbt 1.1.0 버전은 6년 전에 릴리스되었으며, 사용자들은 의존성 스캐닝이 더 이상 작동하지 않으므로 1.0.x에서 업그레이드하는 것이 좋습니다.

임시 저장 공간 증가 관련 GraphQL 필드를 폐기 예정

  • GitLab 16.7에서 발표됨
  • GitLab 17.0에서 제거 예정
  • 이 변경에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

isTemporaryStorageIncreaseEnabledtemporaryStorageIncreaseEndsOn와 관련된 GraphQL 필드가 더 이상 사용되지 않습니다. 이러한 GraphQL 필드는 임시 저장 공간 증가 프로젝트와 관련이 있었으나, 해당 프로젝트가 취소되었고 이러한 필드가 사용되지 않았습니다.

컨테이너 스캐닝을 위한 Grype 스캐너를 폐기

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab Container Scanning 분석기에서 Grype 스캐너의 지원이 16.9에서 폐기되었습니다.

GitLab 17.0부터 Grype 분석기는 제한적인 수정을 제외하고 더 이상 유지 관리되지 않을 것입니다. 이전 버전의 Grype 분석기 이미지는 최신 공지 사항 데이터베이스와 운영 체제 패키지로 계속 업데이트됩니다. 그러나 GitLab 19.0에서 분석기가 작동을 멈출 예정입니다.

19.0 이후에도 Grype를 계속 사용하려면, GitLab과의 본인의 통합을 어떻게 만들 수 있는지 알아보기 위해 보안 스캐너 통합 문서를 참조하세요.

License 스캔 CI 템플릿 폐기

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab 17.0에서는 License 스캔 CI 템플릿이 제거됩니다:

상기 템플릿을 포함한 CI 구성은 GitLab 17.0에서 더 이상 작동하지 않을 것입니다.

사용자들은 대신 CycloneDX 파일의 라이선스 스캔을 사용하는 것이 좋습니다.

의존성 스캔 및 라이선스 스캔에서 Python 3.9 폐기

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab 16.9부터 Python 3.9에 대한 Dependency Scanning 및 License Scanning 지원이 폐기되었습니다. GitLab 17.0부터는 Python 3.10이 Dependency Scanning CI/CD 작업의 기본 버전입니다.

GitLab 17.0부터는 Python 3.9를 필요로 하는 프로젝트에 대한 Dependency Scanning 및 License Scanning 기능은 호환 가능한 Lockfile 없이 지원되지 않을 것입니다.

GitLab Runner에서 Windows CMD 폐기

  • GitLab 16.1에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab 11.11에서 Windows Batch executor, 즉 CMD 셸이 GitLab Runner에서 PowerShell을 선호하도록 폐기되었습니다. 그 이후에도 CMD 셸은 계속해서 GitLab Runner에서 지원되어왔습니다. 그러나 이것은 엔지니어 팀과 윈도우즈에서 Runner를 사용하는 고객들에게 추가적인 복잡성을 야기했습니다. 우리는 GitLab Runner에서 Windows CMD의 지원을 17.0에서 완전히 제거할 계획입니다. 고객들은 쉘 Executor에서 Runner를 사용할 때 PowerShell을 사용할 것을 계획해야 합니다. 고객들은 원하는 경우 리무벌 문제 issue 29479에 피드백이나 질문을 남길 수 있습니다.

fmt 작업을 Terraform Module CI/CD 템플릿에서 더 이상 사용하지 않음

Terraform Module CI/CD 템플릿의 fmt 작업이 Deprecated되었으며 GitLab 17.0에서 제거될 예정입니다. 다음 템플릿이 영향을 받습니다:

  • Terraform-Module.gitlab-ci.yml
  • Terraform/Module-Base.gitlab-ci.yml

아래 코드를 사용하여 매뉴얼으로 Terraform fmt 작업을 파이프라인에 추가할 수 있습니다:

fmt:
  image: hashicorp/terraform
  script: terraform fmt -chdir "$TF_ROOT" -check -diff -recursive

OpenTofu CI/CD 컴포넌트에서도 fmt 템플릿을 사용할 수 있습니다.

취약점 관리 기능에서 message 필드의 Deprecated

이 MR은 VulnerabilityCreate GraphQL 뮤테이션의 message 필드 및 취약점 내보내기의 AdditionalInfo 열에서 message 필드를 Deprecated합니다. 이전에 message 필드는 GitLab 16.0의 보안 보고서 스키마에서 제거되었으며 더 이상 사용되지 않습니다.

GitLab Runner Kubernetes 실행기의 terminationGracePeriodSeconds의 Deprecated

  • GitLab 16.3에서 발표됨
  • GitLab 17.0에서 지원 종료
  • GitLab 17.0에서 제거됨
  • 이 변경 사항에 대한 논의나 자세한 내용은 제거 예정 이슈를 확인하세요.

GitLab Runner Kubernetes 실행기 설정인 terminationGracePeriodSeconds이 Deprecated되었으며 GitLab 17.0에서 제거될 예정입니다. Kubernetes에서 GitLab Runner 워커 pod의 정리 및 종료를 관리하려면 대신 cleanupGracePeriodSecondspodTerminationGracePeriodSeconds를 구성해야 합니다. cleanupGracePeriodSecondspodTerminationGracePeriodSeconds의 사용 방법에 대한 정보는 GitLab Runner 실행기 문서를 참조하세요.

사용되지 않게 된 로그인 페이지 사용자 정의 텍스트와 관련된 매개변수

sign_in_texthelp_text 매개변수는 Settings API에서 사용되지 않게 되었습니다. 로그인 및 가입 페이지에 사용자 정의 텍스트를 추가하려면 Appearance APIdescription 필드를 사용하세요.

Windows Server 2019의 사용을 중단하고 2022로 전환

저희는 SaaS Windows 실행기용으로 Windows Server 2022를 최근에 발표했습니다 (베타). 이에 따라 GitLab 17.0에서 Windows 2019의 사용을 중단합니다.

Windows 2022로 마이그레이션하는 방법에 대해 자세히 알아보려면 GitLab SaaS 실행기에 대한 Windows 2022 지원 사용 가능을 참조하세요.

DingTalk OmniAuth 제공자

DingTalk OmniAuth 제공자를 제공하는 omniauth-dingtalk 젬은 다음 주요 릴리스인 GitLab 17.0에서 제거될 예정입니다. 본 젬은 사용이 매우 적으며, JiHu 에디션에 더 적합합니다.

Gitaly 구성에서 중복 스토리지

동일한 저장 경로를 가리키는 여러 Gitaly 스토리지를 구성하는 지원이 사용되지 않게 되어 GitLab 17.0에서 제거될 예정입니다. 17.0 이후에는 이 유형의 구성은 오류를 발생시킬 것입니다.

이 유형의 구성을 지원하지 않는 이유는 백그라운드 리포지터리 유지 관리에 문제를 일으키고, 이후의 Gitaly 리포지터리 구현과 호환되지 않기 때문입니다.

인스턴스 관리자는 gitaly['configuration'] 섹션의 storage 항목을 업데이트하여 각 리포지터리가 고유한 경로로 구성되도록 gitlab.rb 구성 파일을 업데이트해야 합니다.

하위 파이프라인에서 파일 유형 변수 확장 수정

이전에 파일 유형 CI/CD 변수를 다른 CI/CD 변수에서 참조하려고 하면, CI/CD 변수는 파일 내용을 포함하도록 확장되었습니다. 이 동작은 전형적인 쉘 변수 확장 규칙을 준수하지 않았기 때문에 잘못되었습니다. CI/CD 변수 참조는 파일의 내용이 아닌 파일 경로만 포함되도록 확장되어야 합니다. 이 문제는 GitLab 15.7에서 대부분의 경우에 대해 수정되었습니다. 유감스럽게도, 하위 파이프라인으로 CI/CD 변수를 전달하는 것은 아직 수정되지 않았지만, GitLab 17.0에서 수정될 예정입니다.

이 변경으로 .gitlab-ci.yml 파일에 구성된 변수는 파일 변수를 참조하고 하위 파이프라인으로 전달할 수 있으며, 파일 변수는 하위 파이프라인으로 전달될 것입니다. 하위 파이프라인은 변수 참조를 파일 경로로 확장하고 파일 내용이 아닌 파일 경로를 포함할 것입니다.

이 사라진 사항은 하위 파이프라인에서 파일 변수를 확장하는 데 의존하는 사용자의 작업 흐름을 방해할 수 있습니다.

Geo: 설계 및 프로젝트에 대한 레거시 복제 세부 정보 경로가 사용되지 않음으로 표시되어 자체 서비스 프레임워크로 전환

레거시 데이터 유형을 Geo self-service framework로 마이그레이션하는 일환으로 다음 복제 세부 정보 루트가 사용되지 않음으로 표시되어 있는 것에 주목하세요:

  • 디자인 /admin/geo/replication/designs/admin/geo/sites/<Geo Node/Site ID>/replication/design_management_repositories로 대체됩니다.
  • 프로젝트 /admin/geo/replication/projects/admin/geo/sites/<Geo Node/Site ID>/replication/projects로 대체됩니다.

GitLab 16.4부터 17.0까지 레거시 루트에 대한 조회는 자동으로 새 루트로 리디렉션됩니다. 17.0에서 리디렉션을 제거할 것입니다. 레거시 루트를 사용할 수 있는 북마크나 스크립트를 업데이트하세요.

GitLab Helm 차트 값 gitlab.kas.privateApi.tls.*가 사용되지 않음으로 표시되었어 자체 서비스 프레임워크로 전환

global.kas.tls.* Helm 값들을 도입하여 KAS와 Helm 차트 컴포넌트 간의 TLS 통신을 용이하게하기 위한 것입니다. 이전 값 gitlab.kas.privateApi.tls.enabledgitlab.kas.privateApi.tls.secretName은 사용되지 않음으로 표시되어 있으며, GitLab 17.0에서 제거될 예정입니다.

새 값은 KAS에 대해 TLS를 활성화하는 간소화된 포괄적인 방법을 제공하기 때문에 gitlab.kas.privateApi.tls.* 대신 global.kas.tls.*를 사용해야 합니다. 추가 정보는 다음을 참조하세요.

  • global.kas.tls.* 값을 도입하는 병함 요청.
  • 사용되지 않게 된 gitlab.kas.privateApi.tls.*에 대한 문서.
  • global.kas.tls.*에 대한 문서.

GitLab Runner provenance metadata SLSA v0.2 statement

  • GitLab 16.8에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

러너(runner)는 확인 유형의 메타데이터를 생성하며 현재 기본값은 SLSA v0.2를 준수하는 문장을 생성하는 것입니다. SLSA v1.0이 출시되어 지금은 GitLab에서 지원하고 있기 때문에 v0.2 문장은 더 이상 사용되지 않으며, 제거가 GitLab 17.0에서 계획되어 있습니다. SLSA v1.0 문장은 GitLab 17.0에서 새로운 기본 문장 형식이 될 예정입니다.

</div>

지원되지 않는 방법을 통한 GraphQL API 액세스

  • GitLab 17.0에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

GitLab 17.0부터, GraphQL에 대한 액세스를 이미 문서화된 지원되는 토큰 유형을 통해서만 제한합니다. 이미 문서화되어 지원되는 토큰 유형을 사용하고 있는 고객들에게는 중단될 내용이 없습니다.

dependencyProxyTotalSizeInBytes 필드의 GraphQL deprecation

  • GitLab 16.1에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

GraphQL을 사용하여 GitLab 의존성 프록시에서 사용하는 리포지터리의 용량을 요청할 수 있습니다. 그러나 dependencyProxyTotalSizeInBytes 필드는 대부분의 경우에 충분하지 않은 ~2Gb (바이트)의 크기로 제한되어 있습니다. 따라서 dependencyProxyTotalSizeInBytes는 사용되지 않게되며, GitLab 17.0에서 제거될 예정입니다.

대신에 GitLab 16.1에서 도입된 dependencyProxyTotalSizeBytes를 사용하세요.

confidential 필드가 internal로 변경된 GraphQL deprecation

  • GitLab 15.5에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

노트confidential 필드는 사용되지 않게 되며 internal로 이름이 변경될 것입니다.

registrySizeEstimated 필드가 사용되지 않게된 GraphQL deprecation

  • GitLab 16.2에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

명확한 이해를 위해, GraphQL 필드 registrySizeEstimatedcontainerRegistrySizeIsEstimated로 이름이 변경되어 이에 따라 맞춰졌습니다. registrySizeEstimated는 GitLab 16.2에서 사용되지 않게되며, GitLab 17.0에서 제거될 예정입니다. 대신에 GitLab 16.2에서 도입된 containerRegistrySizeIsEstimated를 사용하세요.

totalWeight 필드가 사용되지 않게된 GraphQL deprecation

  • GitLab 16.3에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

GraphQL을 사용하여 이슈 보드의 총 가중치를 조회할 수 있습니다. 그러나 totalWeight 필드는 최대 크기인 2147483647로 제한되어 있습니다. 따라서 totalWeight는 사용되지 않게되며, GitLab 17.0에서 제거될 예정입니다.

대신에 GitLab 16.2에서 도입된 totalIssueWeight를 사용하세요.

GraphQL 네트워크 정책 자원이 사용되지 않게됨

  • GitLab 14.8에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

networkPolicies GraphQL 자원이 사용되지 않게되며, GitLab 17.0에서 제거될 예정입니다. GitLab 15.0부터이 필드는 데이터를 반환하지 않았습니다.

GraphQL 타입, RunnerMembershipFilterCiRunnerMembershipFilter로 이름이 변경됨

  • GitLab 16.0에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중지 예정 이슈를 참조하세요.

GraphQL 타입인 RunnerMembershipFilterCiRunnerMembershipFilter로 이름이 변경되었습니다. GitLab 17.0에서 RunnerMembershipFilter의 별칭이 제거될 것입니다.

GraphQL: canDestroycanDelete 지원을 폐기합니다

  • GitLab 16.6에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용을 알아보려면 폐기 이슈를 참조하십시오.

패키지 레지스트리 사용자 인터페이스는 GitLab GraphQL API에 의존합니다. 모두가 쉽게 기여할 수 있도록하기 위해 프론트엔드는 GitLab 모든 제품 영역에서 일관되게 코딩되는 것이 중요합니다. 그러나 이전에는 패키지 레지스트리 UI가 제품의 다른 영역과는 다르게 권한을 처리했습니다.

16.6에서 패키지 레지스트리를 GitLab의 나머지 부분과 일치시키기 위해 Types::PermissionTypes::Package 유형 아래에 새 UserPermissions 필드를 추가했습니다. 이 새 필드는 Package, PackageBase, 및 PackageDetailsType 유형에 대한 canDestroy 필드와 또한 ContainerRepository, ContainerRepositoryDetails, 및 ContainerRepositoryTag에 대한 canDelete 필드를 대체합니다. GitLab 17.0에서 canDestroycanDelete 필드가 제거될 것입니다.

이것은 17.0에서 완료될 중요한 변경 사항입니다.

기본 설정으로는 더 이상 HashiCorp Vault 통합에서 CI_JOB_JWT를 사용하지 않을 것입니다

  • GitLab 15.9에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용을 알아보려면 폐기 이슈를 참조하십시오.

JWT 및 OIDC를 사용하여 CI 워크플로의 보안을 향상시키기 위한 노력의 일환으로, 네이티브 HashiCorp 통합이 GitLab 16.0에서 업데이트되고 있습니다. Vault에서 비밀을 검색하는 데 secrets:vault 키워드를 사용하는 프로젝트는 ID 토큰을 사용하도록 구성해야 합니다. ID 토큰은 15.7에서 도입되었습니다.

이 변경에 대비하기 위해, 새로운 id_tokens 키워드를 사용하고 aud 클레임을 구성하십시오. 연결된 청중이 https://로 시작하는지 확인하십시오.

GitLab 15.9에서 15.11에서는 JSON Web Token (JWT) 액세스 제한활성화할 수 있습니다, 이로써 기존 토큰이 모든 작업에 노출되는 것을 방지하고 secrets:vault 키워드를 위한 ID 토큰 인증을 활성화합니다.

GitLab 16.0 및 이후:

  • 이 설정은 제거될 것입니다.
  • id_tokens 키워드를 사용하는 CI/CD 작업은 secrets:vault에 대해 ID 토큰을 사용할 수 있으며 CI_JOB_JWT* 토큰은 제공되지 않을 것입니다.
  • id_tokens 키워드를 사용하지 않는 작업은 GitLab 17.0 이전까지 계속하여 CI_JOB_JWT* 토큰을 사용할 수 있을 것입니다.

Auto DevOps 빌드에서 Heroku 이미지 업그레이드

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용을 알아보려면 폐기 이슈를 참조하십시오.

GitLab 17.0에서 auto-build-image 프로젝트는 heroku/builder:20 이미지에서 heroku/builder:22로 업그레이드될 것입니다.

새 이미지의 동작을 테스트하려면 CI/CD 변수 AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDERheroku/builder:22로 설정하십시오.

GitLab 17.0 이후에도 heroku/builder:20을 계속 사용하려면 AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDERheroku/builder:20으로 설정하십시오.

내부 컨테이너 레지스트리 API 태그 삭제 엔드포인트

  • GitLab 16.4에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용을 알아보려면 폐기 이슈를 참조하십시오.

나중에 OCI Distribution Spec에 의해 대체된 Docker Registry HTTP API V2 Spec은 태그 삭제 작업을 포함하지 않았으며, 동일한 목적을 달성하기 위해 삭제 유무를 확인하는 비안전하고 느린 해결책을 사용해야 했습니다.

태그 삭제는 중요한 기능이므로 우리는 GitLab 컨테이너 레지스트리에 태그 삭제 작업을 추가하여 도커 및 OCI 분배 사양의 범위를 넘어서 V2 API를 확장했습니다.

그 이후 OCI Distribution Spec은 일부 업데이트를 거쳤고 이제 DELETE /v2/<name>/manifests/<tag> 엔드포인트를 사용하여 태그 삭제 작업을 수행할 수 있습니다.

이로써 컨테이너 레지스트리에는 정확히 동일한 기능을 제공하는 두 가지 엔드포인트가 생겼습니다. DELETE /v2/<name>/tags/reference/<tag>는 사용자 정의 GitLab 태그 삭제 엔드포인트이고, DELETE /v2/<name>/manifests/<tag>는 GitLab 16.4에서 도입된 OCI 호환 태그 삭제 엔드포인트입니다.

사용자 정의 GitLab 태그 삭제 엔드포인트의 지원은 GitLab 16.4에서 폐기되었으며, GitLab 17.0에서 제거될 것입니다.

이 엔드포인트는 내부 컨테이너 레지스트리 애플리케이션 API에서 사용되며, 공개 GitLab 컨테이너 레지스트리 API와는 무관합니다. 대부분의 컨테이너 레지스트리 사용자에게는 조치가 필요하지 않을 것입니다. 새로운 OCI 호환 엔드포인트로 전환되는 동안 GitLab UI 및 API와 관련된 태그 삭제 기능은 그대로 유지될 것입니다.

내부 컨테이너 레지스트리 API에 액세스하고 원래의 태그 삭제 엔드포인트를 사용한다면 새 엔드포인트로 업데이트해야 합니다.

JWT /-/jwks 인스턴스 엔드포인트가 폐기됨

  • GitLab 16.7에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용을 알아보려면 폐기 이슈를 참조하십시오.

GitLab 17.0에서 오래된 JSON 웹 토큰 버전의 폐기와 관련하여, /oauth/discovery/keys의 별칭인 /-/jwks 엔드포인트는 더 이상 필요하지 않으며 제거될 것입니다. /-/jwks의 사용 사례를 /oauth/discovery/keys로 교체하십시오. 예를 들어, https://gitlab.example.com/-/jwkshttps://gitlab.example.com/oauth/discovery/keys로 변경하십시오.

레거시 Geo Prometheus 메트릭

프로젝트를 Geo self-service framework로 이관한 후 일부 Prometheus 메트릭을 비사용으로 표시했습니다. 아래는 비사용으로 표시된 Geo 관련 Prometheus 메트릭이며, 17.0에서 제거될 예정입니다. 테이블은 비사용으로 표시된 메트릭과 각각의 대체품을 나열합니다. 대체품은 GitLab 16.3.0 이후에 사용할 수 있습니다.

비사용으로 표시된 메트릭 대체품 메트릭
geo_repositories_synced geo_project_repositories_synced
geo_repositories_failed geo_project_repositories_failed
geo_repositories_checksummed geo_project_repositories_checksummed
geo_repositories_checksum_failed geo_project_repositories_checksum_failed
geo_repositories_verified geo_project_repositories_verified
geo_repositories_verification_failed geo_project_repositories_verification_failed
geo_repositories_checksum_mismatch 사용 불가
geo_repositories_retrying_verification 사용 불가

</div>

라이선스 디렉터리이 비사용됨

지금까지 GitLab에서는 프로젝트 및 해당 라이선스를 사용하는 컴포넌트의 모든 라이선스 디렉터리을 볼 수 있습니다. 16.8부터 라이선스 디렉터리은 비사용으로 표시되어 17.0에서 제거될 예정으로, 중대한 변경 사항으로 처리됩니다. 그룹 의존성 디렉터리의 릴리스와 프로젝트 및 그룹 의존성 디렉터리에서 라이선스로 필터링하는 기능이 도입되어 이제 프로젝트 또는 그룹이 사용하는 모든 라이선스에 액세스할 수 있습니다.

sbt 1.0.X에 대한 라이선스 스캐닝 지원

GitLab 17.0에서는 sbt 1.0.x에 대한 라이선스 스캐닝 지원이 제거됩니다.

사용자는 sbt 1.0.x에서 업그레이드하는 것이 좋습니다.

Ubuntu 18.04용 Linux 패키지

  • GitLab 16.8에서 발표됨
  • GitLab 17.0에서 제거됨
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 비사용 알림 문제를 확인하세요.

Ubuntu 18.04의 표준 지원은 2023년 6월에 종료되었습니다.

GitLab 17.0부터는 Ubuntu 18.04용 Linux 패키지를 제공하지 않습니다.

GitLab 17.0 이상을 위해 다음을 준비하세요:

  1. Ubuntu 18.04에서 실행 중인 GitLab 인스턴스를 Ubuntu 20.04 또는 Ubuntu 22.04로 이동합니다.
  2. 사용 중인 Ubuntu 버전용 Linux 패키지를 사용하여 GitLab 인스턴스를 업그레이드합니다.

리포지터리 디렉터리 디렉터리 Rake 작업

gitlab-rake gitlab:list_repos Rake 작업이 작동하지 않으며, GitLab 17.0에서 제거될 것입니다. GitLab을 이전하는 경우에는 백업 및 복원 을 대신 사용하세요.

Maintainer 역할을 사용하여 GraphQL API를 통해 패키지 설정 변경 가능

Maintainer 역할을 가진 사용자가 GraphQL API를 사용하여 그룹의 패키지 및 레지스트리 설정을 변경하는 기능이 GitLab 15.8에서 비사용으로 표시되었으며, GitLab 17.0에서 제거될 예정입니다. 이러한 설정에는 다음이 포함됩니다:

GitLab 17.0 이상에서는 패키지 및 레지스트리 설정을 변경하려면 그룹의 소유자 역할이 필요합니다. 변경 사항은 GitLab UI 또는 GraphQL API를 통해 적용할 수 있습니다.

Maven 버전 3.8.8 이하의 지원이 종료됨

GitLab 17.0에서는 Maven 버전 3.8.8 이하에 대한 Dependency Scanning 및 License Scanning 지원이 중단됩니다.

사용자는 3.8.8 이상으로 업그레이드하는 것이 좋습니다.

Sidekiq 옵션의 Min concurrency와 Max concurrency

  • Linux 패키지(Omnibus) 설치의 경우, GitLab 16.9에서 sidekiq['min_concurrency']sidekiq['max_concurrency'] 설정은 폐기되었고, GitLab 17.0에서 제거될 것입니다.

    GitLab 16.9 이후에 sidekiq['concurrency']를 사용하여 각 프로세스에서 스레드 수를 명시적으로 설정할 수 있습니다.

    위의 변경 사항은 Linux 패키지(Omnibus) 설치에만 적용됩니다.

  • GitLab 헬름 차트 설치의 경우, SIDEKIQ_CONCURRENCY_MIN 및/또는 SIDEKIQ_CONCURRENCY_MAXsidekiq 서브 차트에 extraEnv로 전달하는 것이 GitLab 16.10에서 폐기되며, GitLab 17.0에서 제거될 것입니다.

    각 프로세스에서 스레드 수를 명시적으로 설정하려면 concurrency 옵션을 사용할 수 있습니다.

/users REST API 엔드포인트의 오프셋 페이지네이션이 폐기됨

GitLab 16.5에서 /users REST API의 오프셋 페이지네이션이 폐기되었으며, GitLab 17.0에서 제거될 것입니다. 대신 키셋 페이지네이션을 사용하세요.

이전 버전의 JSON 웹 토큰이 폐기됨

ID 토큰은 OIDC를 지원하는 GitLab 15.7에서 소개되었습니다. 이러한 토큰은 이전의 JSON 웹 토큰(JWT)보다 구성 가능하며, OIDC와 호환되며, 명시적으로 ID 토큰이 구성된 CI/CD 작업에서만 사용할 수 있습니다. 이전의 CI_JOB_JWT* JSON 웹 토큰은 모든 작업에서 노출되는 반면, ID 토큰은 더 안전하며 다음과 같은 이전의 JSON 웹 토큰이 폐기됩니다:

  • CI_JOB_JWT
  • CI_JOB_JWT_V1
  • CI_JOB_JWT_V2

이 변경에 대비하기 위해 토큰이 폐기되지 않도록 Build 사다리에게서 ID 토큰을 사용하도록 설정하세요. OIDC 규격을 준수하기 위해 iss 클레임은 이제 완전한 도메인 이름(예: https://example.com)을 사용하며, 이전에는 CI_JOB_JWT_V2 토큰과 함께 소개되었습니다.

GitLab 15.9부터 15.11까지는 JSON 웹 토큰 (JWT) 액세스 제한 설정을 사용하여 이전 토큰이 모든 작업에 노출되지 않도록 하고, secrets:vault 키워드에 대한 ID 토큰 인증을 활성화하세요.

GitLab 16.0 이상에서:

  • 이 설정은 제거될 것입니다.
  • id_tokens 키워드를 사용하는 CI/CD 작업은 secrets:vault와 함께 ID 토큰을 사용할 수 있으며, CI_JOB_JWT* 토큰을 사용할 수 없습니다.
  • id_tokens 키워드를 사용하지 않는 작업은 GitLab 17.0 이전까지 계속해서 CI_JOB_JWT* 토큰을 사용할 수 있습니다.

GitLab 17.0에서 폐기된 토큰은 완전히 제거되어 CI/CD 작업에서 더 이상 사용할 수 없습니다.

PostgreSQL 13 더 이상 지원되지 않음

  • GitLab 16.0에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 deprecated 문제를 참조하세요.

GitLab은 포스트그리SQL의 연간 업그레이드 주기를 따릅니다.

PostgreSQL 13의 지원은 GitLab 17.0에서 제거 예정입니다. GitLab 17.0에서는 PostgreSQL 14가 최소 필요한 PostgreSQL 버전이 됩니다.

PostgreSQL 13은 완전한 GitLab 16 릴리스 주기 동안 지원될 예정입니다. GitLab 17.0 이전에 업그레이드하려는 인스턴스에 대해 PostgreSQL 14도 지원될 것입니다. Omnibus Linux 패키지를 사용하여 설치한 단일 PostgreSQL 인스턴스를 실행 중이라면, 16.11에서 자동 업그레이드를 시도할 수 있습니다. 업그레이드를 수용할만큼 충분한 디스크 공간이 있는지 확인하십시오. 자세한 내용은 Omnibus 데이터베이스 설명서를 참조하십시오.

Proxy 기반 DAST 지원 중단

  • GitLab 16.6에서 발표됨
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 deprecated 문제を参照してください。

GitLab 17.0부터 Proxy 기반 DAST는 더 이상 지원되지 않습니다. 프로젝트의 보안 결과를 동적 분석을 통해 분석하려면 브라우저 기반 DAST로 마이그레이션하십시오. Proxy 기반 DAST를 기반으로 하는 베타 기능인 Breach and Attack Simulation도 17.0 이후로 더 이상 지원되지 않습니다.

실행 중인 Sidekiq의 대기열 선택기는 폐기 예정

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 지원 종료
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 deprecated 문제를 참조하십시오.

대기열 선택기(일련의 대기열을 청취하는 여러 프로세스를 갖는 것) 및 부정 설정을 사용하여 Sidekiq를 실행하고 있으면 이것이 폐기 예정이며 17.0에서 완전히 제거될 것입니다.

대기열 선택기를 대부분의 프로세스에 모든 대기열을 수신 대기 마이그레이션할 수 있습니다. 이를 위해 현재 Sidekiq가 4개의 프로세스로 실행 중인 경우(/etc/gitlab/gitlab.rbsidekiq['queue_groups']에 4개의 요소로 표시됨) 대기열 선택기(sidekiq['queue_selector'] = true)로 설정되어 있는 경우 Sidekiq를 모든 4개의 프로세스에서 모든 대기열을 수신 대기 변경할 수 있습니다. 예를들면 sidekiq['queue_groups'] = ['*'] * 4입니다. 이 접근 방식은 또한 참조 아키텍처에서 추천됩니다. Sidekiq는 기계의 CPU 수와 동일하게 효과적으로 많은 프로세스로 실행될 수 있음에 유의하십시오.

위 접근 방법은 대부분의 인스턴스에 대해 권장되지만, Sidekiq는 라우팅 규칙을 사용하여 실행될 수도 있습니다. GitLab.com에서도 사용 중인 라우팅 규칙으로부터 대기열 선택기로의 마이그레이션 가이드를 따를 수 있습니다. 잡을 완전히 잃지 않도록 마이그레이션할 때 주의해야 합니다.

GitLab 17.0에서 SAST 분석기 커버리지 변경

우리는 기본적으로 지원하는 분석기의 수를 줄이고 GitLab SAST에서 더 빠르고 일관된 사용자 경험을 제공하는 장기 전략의 일환입니다.

GitLab 17.0에서 다음을 수행할 것입니다:

  1. SAST CI/CD 템플릿에서 일련의 언어별 분석기를 삭제하고 그들의 커버리지를 GitLab 지원 검출 규칙Semgrep 기반 분석기에 대체할 것입니다. 다음 분석기는 이제 폐기되었으며 GitLab 17.0에서 지원 종료에 도달할 것입니다:
    1. Brakeman (Ruby, Ruby on Rails)
    2. Flawfinder (C, C++)
    3. MobSF (Android, iOS)
    4. NodeJS Scan (Node.js)
    5. PHPCS Security Audit (PHP)
  2. SAST CI/CD 템플릿을 변경하여 Kotlin 및 Scala 코드에 대한 SpotBugs 기반 분석기를 실행하지 않도록 하고 이 대신 Semgrep 기반 분석기에서 GitLab 지원 검출 규칙을 사용하여 스캔할 것입니다.

즉시, 폐기된 분석기는 보안 업데이트만 받을 것이며 나머지 일상적인 개선 사항이나 업데이트는 보장되지 않습니다. 분석기가 GitLab 17.0에서 지원 종료에 도달한 후에는 추가 업데이트가 제공되지 않을 것입니다. 그러나 우리는 이러한 분석기에 대한 이전에 게시된 컨테이너 이미지를 삭제하지 않을 것이며 사용자 지정 CI/CD 파이프라인 작업 정의를 사용하여 그들을 실행하는 기능을 삭제하지 않을 것입니다.

안전한 취약점 관리 시스템은 기존의 대부분 결과를 새로운 검출 규칙과 일치하도록 업데이트할 것입니다. 새 분석기로 이주되지 않는 결과는 자동으로 해결될 것입니다. 더 자세한 내용은 취약점 번역 설명서를 참조하세요.

제거된 분석기에 사용자 정의를 적용하거나 현재 파이프라인에서 Semgrep 기반 분석기를 비활성화한 경우, 이 변경에 대한 제거(in-house,elifecycle) 이슈에 자세히 설명된 대로 조치를 취해야 합니다.

</div>

_EXCLUDED_ANALYZERS 변수를 사용하여 스캔 실행 정책을 시행하면 프로젝트 변수가 무시될 것입니다

Enforce SEP variables with the highest precedence을 전달하고 확인한 후, 사용자가 파이프라인 구성에서 _EXCLUDED_PATHS를 설정하고이를 제외 분석기 설정 중 프로젝트 변수를 설정하지 못하게 하는 의도하지 않은 동작을 발견했습니다.

스캔 실행 변수의 적절한 집행을 보장하기 위해, _EXCLUDED_ANALYZERS 또는 _EXCLUDED_PATHS 변수가 GitLab 스캔 작업을 사용하여 스캔 실행 정책에 지정된 경우 기존의 제외된 분석기에 대한 프로젝트 변수를 무시하고 기본값으로 설정될 것입니다.

사용자는 17.0 이전에 이러한 동작을 강제로 사용할 수 있습니다. 17.0에서는 _EXCLUDED_ANALYZERS/_EXCLUDED_PATHS 변수를 활용하는 프로젝트가 해당 변수가 정의된 스캔 실행 정책을 무시되며 기본 설정으로 변경될 것입니다.

보안 분석기 주요 버전 업데이트

보안 분석 단계가 GitLab 17.0 릴리스와 함께 그 분석기의 주요 버전을 업데이트할 것입니다.

기본 포함된 템플릿을 사용하지 않거나 분석기 버전을 고정시킨 경우에는 CI/CD 작업 정의를 업데이트하여 고정된 버전을 제거하거나 최신 주요 버전으로 업데이트해야 합니다.

GitLab 16.0-16.11 사용자는 17.0 릴리스 이전에는 분석기 업데이트를 계속하여 경험할 것이며, 그 후에는 새 주요 버전의 분석기에 대해서만 새로운 버그 및 릴리스된 기능이 출시될 것입니다.

우리는 유지 보수 정책에 따라 버그 및 기능을 폐기된 버전으로 백포트하지 않습니다. 필요한 경우, 보안 패치는 최신 3개의 마이너 릴리스 내에서 백포트될 것입니다.

구체적으로 다음 분석기들이 폐기되어 GitLab 17.0 릴리스 이후로는 더 이상 업데이트되지 않을 것입니다:

  • 컨테이너 스캐닝: 버전 6
  • 의존성 스캐닝: 버전 4
  • DAST: 버전 4
  • DAST API: 버전 3
  • Fuzz API: 버전 3
  • 시크릿 검출: 버전 5
  • 정적 응용프로그램 보안 테스트 (SAST): 모든 분석기의 버전 4
    • brakeman
    • flawfinder
    • kubesec
    • mobsf
    • nodejs-scan
    • phpcs-security-audit
    • pmd-apex
    • semgrep
    • sobelow
    • spotbugs

보안 정책 필드 match_on_inclusion이 더 이상 사용되지 않습니다

스캔 결과 정책에 대한 추가 필터 지원에서 newly_detected 필드를 new_needs_triagenew_dismissed 두 가지 옵션으로 나누었습니다. 보안 정책 YAML에 두 옵션을 모두 포함하면 원래 newly_detected 필드와 동일한 결과를 얻을 수 있습니다. 그러나 이제 new_needs_triage만 사용하여 기존에 무시된 발견을 필터링할 수 있습니다. 에픽 10203에서의 토론을 바탕으로 match_on_inclusion 필드의 이름을 YAML 정의에서 더 명확한 match_on_inclusion_license로 변경했습니다.

보안 정책 필드 newly_detected가 더 이상 사용되지 않습니다

스캔 결과 정책에 대한 추가 필터 지원에서 newly_detected 필드를 new_needs_triagenew_dismissed 두 가지 옵션으로 나누었습니다. 보안 정책 YAML에 두 옵션을 모두 포함하면 원래 newly_detected 필드와 동일한 결과를 얻을 수 있습니다. 그러나 이제 new_needs_triage만 사용하여 기존에 무시된 발견을 필터링할 수 있습니다.

자체 호스트 Sentry 버전 21.4.1 및 이전 버전 지원이 제거됨

자체 호스트 Sentry 버전 21.4.1 이전이 제거 예정이며 GitLab 17.0부터 제거될 예정입니다.

자체 호스트 Sentry 버전이 21.4.1이거나 그보다 이전인 경우 GitLab 17.0 이후에 업그레이드한 후에 GitLab 인스턴스에서 오류를 수집할 수 없을 수 있습니다. GitLab 인스턴스에서 오류를 Sentry 인스턴스로 계속 전송하려면 Sentry를 버전 21.5.0 이상으로 업그레이드하세요. 자세한 정보는 Sentry 문서를 참조하세요.

note
제거 예정 지원은 관리자를 위한 GitLab 인스턴스 오류 추적 기능에 해당합니다. 제거 예정 지원은 개발자의 자체 배포 애플리케이션의 GitLab 오류 추적과 관련되지 않습니다.

백업을 위한 사용자 정의 스키마 지원이 제거됨

Linux 패키지 설치의 경우 /etc/gitlab/gitlab.rb에서 gitlab_rails['backup_pg_schema'] = '<스키마_이름>'을 설정하거나, 자체 컴파일 설치의 경우 config/gitlab.yml을 편집하여 GitLab을 사용자 정의 스키마를 사용하도록 구성할 수 있습니다.

이 구성 설정은 사용 가능했지만 효과가 없었으며 의도했던 목적을 수행하지 않았습니다. 이 구성 설정은 GitLab 17.0에서 제거될 예정입니다.

GitHub 가져오기 Rake 작업

GitLab 16.6에서 GitHub 가져오기 Rake 작업이 더 이상 사용되지 않습니다. 이 Rake 작업은 API에서 지원하는 여러 기능이 부족하며 현재 유지되지 않습니다.

GitLab 17.0에서는 이 Rake 작업이 제거될 예정입니다.

대신 GitHub 리포지터리는 API 또는 UI를 사용하여 가져올 수 있습니다.

Visual Reviews 도구가 더 이상 사용되지 않습니다

고객 사용 및 기능이 제한적이어서 Review Apps의 Visual Reviews 기능이 제거 예정이며 GitLab 17.0 이전에 Visual Reviews 사용을 중지해야 합니다. 대체할 계획은 없으며 사용자는 GitLab 17.0 이전에 Visual Reviews 사용을 중지해야 합니다.

gitlab-runner exec 명령이 더 이상 사용되지 않습니다

gitlab-runner exec 명령이 제거 예정이며 GitLab Runner에서 16.0에서 완전히 제거될 예정입니다. gitlab-runner exec 기능은 로컬 시스템에서 GitLab CI 파이프라인을 확인하고 GitLab 인스턴스에 업데이트를 커밋하지 않고도 유효성을 검사할 수 있는 기능을 제공하기 위해 초기에 개발되었습니다. 그러나 GitLab CI의 지속적인 진화로 gitlab-runner exec에 모든 GitLab CI 기능을 복제하는 것은 더 이상 유효하지 않았습니다. 파이프라인 구문 및 유효성 검사 시뮬레이션은 GitLab 파이프라인 편집기에서 사용할 수 있습니다.

GitLab 에이전트를 위한 Kubernetes의 풀 기반 배포 기능은 폐기됨

  • GitLab 16.2에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

우리는 Flux 및 관련 통합을 선호하는 방향으로 GitLab 에이전트를 위한 내장 풀 기반 배포 기능을 폐기합니다.

GitLab 에이전트를 Kubernetes deprecated되지 않았습니다. 이 변경은 에이전트의 풀 기반 기능에만 영향을 미칩니다. 다른 모든 기능은 그대로 유지되며 GitLab은 Kubernetes에 대한 에이전트를 계속해서 지원할 것입니다.

풀 기반 배포에 에이전트를 사용하고 있다면 Flux로 이전해야 합니다. GitOps를 위한 성숙한 CNCF 프로젝트인 Flux와 통합하기로 결정하여 2023년 2월에 Flux와 GitLab을 통합하기로 결정했습니다.

트리거 작업이 하위 파이프라인 상태를 완벽하게 반영할 수 있습니다

  • GitLab 15.9에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

하위 파이프라인이 경고가 포함된 통과(passed with warnings) 상태인 경우와 같이 몇 가지 경우에서, strategy: depend를 사용하는 트리거 작업은 하위 파이프라인의 상태를 완벽하게 반영하지 못한 경우가 있었습니다. GitLab 17.0에서 트리거 작업은 하위 파이프라인과 정확히 동일한 상태를 보여줄 것입니다. 만약 귀하의 파이프라인이 이 동작에 의존했다면 더 정확한 상태를 처리하도록 파이프라인을 업데이트해야 합니다.

Self-Managed GitLab에서의 Twitter OmniAuth 로그인 옵션이 deprecated됨

  • GitLab 16.3에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

Twitter OAuth 1.0a OmniAuth는 저용량 사용 및 젬 지원 부족으로 인해 GitLab 17.0에서 Self-Managed GitLab 인스턴스에서 deprecated되고 제거될 것입니다. 대신 다른 지원되는 OmniAuth 제공자를 사용하세요.

통합 승인 규칙이 deprecated

  • GitLab 16.1에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

통합 승인 규칙은 더 유연성을 제공하는 여러 승인 규칙을 선호하여 deprecated되었습니다. 당신은 여러 승인 규칙으로 통합 승인 규칙을 변경하지 않을 수도 있습니다. 매뉴얼으로 마이그레이션하는 데 도움이 되도록, 우리는 마이그레이션 문서를 도입했습니다.

통합 승인 규칙이 제거되기 전에 매뉴얼으로 마이그레이션하지 않는다면, GitLab은 자동으로 귀하의 설정을 마이그레이션할 것입니다. 자동 마이그레이션을 통해 더 정교한 설정이 가능하므로, 마이그레이션을 미룰 경우 자동 마이그레이션은 귀하가 선호하는 것보다 더 제한적인 규칙으로 끝날 수 있습니다. 귀하가 예상보다 더 많은 승인이 필요한 문제가 있는 경우 자동 마이그레이션 규칙을 확인하세요.

GitLab 15.11에서 통합 승인 규칙의 UI 지원이 제거되었습니다. 여전히 API를 통해 통합 승인 규칙에 액세스할 수 있습니다.

리눅스에서 GitLab SaaS 러너의 운영 체제 버전 업그레이드

  • GitLab 16.9에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

GitLab은 Linux용 SaaS 러너에서 작업을 실행하는데 사용되는 일시적인 VM의 컨테이너 최적화 운영 체제(COS)를 업그레이드하고 있습니다. 해당 COS 업그레이드에는 버전 19.03.15에서 버전 23.0.5로의 도커 엔진 업그레이드가 포함되어 있어 알려진 호환성 문제를 도입합니다.

20.10 이전의 Docker-in-Docker 또는 Kaniko 이미지의 경우, 컨테이너 런타임을 감지하지 못하고 실패할 수 있습니다.

자세한 정보는 리눅스용 SaaS 러너의 운영 체제 버전 업그레이드를 참조하세요.

취약점 신뢰도 필드

  • GitLab 15.4에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

GitLab 15.3에서 버전 15 이하의 보안 보고서 스키마가 deprecated되었습니다. confidence 속성은 사실상 GitLab 15.4에서 스키마 버전 15-0-0을 지원하므로 삭제됩니다. 보고서와 공개 API 간의 일관성을 유지하기 위해, GraphQL API의 취약점 관련 구성요소의 confidence 속성은 deprecated되고 GitLab 17.0에서 제거될 것입니다.

after_script 키워드가 취소된 작업에 대해 실행

  • GitLab 16.8에서 발표
  • GitLab 17.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하세요.

after_script CI/CD 키워드는 작업의 주요 script 섹션 이후에 추가 명령을 실행하는 데 사용됩니다. 이는 주로 작업에 의해 사용된 환경 또는 리소스를 정리하는 데 사용됩니다. 많은 사용자들에게, 작업이 취소된 경우 after_script 명령이 실행되지 않는 것이 예상치 못하고 원치 않았습니다. 17.0에서 키워드는 작업이 취소된 후에도 명령을 실행하도록 업데이트될 것입니다. after_script 키워드를 사용하는 CI/CD 구성이 취소된 작업에 대해 실행될 수 있도록 확인하세요.

dependency_files이 더 이상 사용되지 않습니다

오늘날의 GitLab에서 프로젝트의 의존성 디렉터리은 의존성 스캔 보고서의 dependency_files 내용을 사용하여 생성됩니다. 그러나 그룹 의존성 디렉터리과 일관성 유지를 위해 GitLab 17.0부터 프로젝트의 의존성 디렉터리은 GitLab의 PostgreSQL 데이터베이스에 저장된 CycloneDX SBOM 보고서 artefacts을 사용합니다. 따라서 의존성 스캔 보고서 스키마의 dependency_files 속성이 더 이상 사용되지 않으며, 17.0에서 제거될 예정입니다.

이에 따라 dependency_path도 17.0에서 더 이상 사용되지 않으며 제거될 것입니다. GitLab은 비슷한 정보를 제공하기 위해 CycloneDX 사양을 사용하여 의존성 그래프를 구현할 것입니다.

또한, Container Scanning CI 작업은 더 이상 의존성 스캔 보고서를 생성하지 않을 것입니다. 이는 CycloneDX SBOM 보고서로 대체되었기 때문입니다. Container Scanning의 CS_DISABLE_DEPENDENCY_LIST 환경 변수는 더 이상 사용되지 않으며 17.0에서도 제거될 예정입니다.

DORA API의 metric 필터 및 value 필드가 더 이상 사용되지 않습니다

여러 DORA 메트릭을 동시에 쿼리할 수 있는 새로운 메트릭 필드를 사용할 수 있게 되었습니다. Graphql DORA API의 metric 필터 및 value 필드는 GitLab 17.0에서 제거될 예정입니다.

omniauth-azure-oauth2 gem이 더 이상 사용되지 않습니다

GitLab 사용자는 omniauth-azure-oauth2 gem을 사용하여 GitLab에 인증할 수 있습니다. 17.0에서 이 gem은 omniauth_openid_connect gem으로 대체될 것입니다. 이 새로운 gem은 이전 gem과 동일한 기능을 모두 포함하며 상위 호환 유지보수가 되어 있으며 보안 및 집중화된 유지보수에 더 적합합니다.

이 변경으로 사용자는 마이그레이션 시 OAuth2 제공자에 다시 연결해야 합니다. 중단을 피하려면 17.0 이전에 새 제공자로 omniauth_openid_connect을 추가해야 합니다. 사용자는 새로운 로그인 버튼을 볼 수 있으며 자격 증명을 매뉴얼으로 다시 연결해야 합니다. 17.0 이전에 omniauth_openid_connect gem을 구현하지 않는 경우 사용자는 더 이상 Azure 로그인 버튼을 사용하여 로그인할 수 없으며 올바른 gem이 관리자에 의해 구현될 때까지 사용자 이름과 암호를 사용하여 로그인해야 합니다.

omnibus_gitconfig 구성 항목이 더 이상 사용되지 않습니다

omnibus_gitconfig['system'] 구성 항목이 더 이상 사용되지 않습니다. Gitaly에 대한 사용자 정의 Git 구성을 설정하기 위해 gitaly[:configuration][:git][:config] 아래에서 Git을 직접 구성해야 합니다. 예를 들어:

  gitaly[:configuration][:git][:config] = [
    {
      key: 'fetch.fsckObjects',
      value: 'true',
    },
    # ...
  ]

구성 키의 형식은 기존에 CLI 플래그 git -c <configuration>을 통해 git에 전달된 형식과 일치해야 합니다.

기존 키를 예상 형식으로 변환하는 데 문제가 있는 경우 기본적으로 Gitaly의 Linux 패키지 생성된 구성 파일에있는 올바른 형식의 기존 키를 확인하십시오. 기본적으로 구성 파일은 /var/opt/gitlab/gitaly/config.toml에 위치합니다.

Gitaly에서 관리되는 다음 구성 옵션은 제거되어야 합니다. 이러한 키를 Gitaly로 마이그레이션할 필요가 없습니다.

  • pack.threads=1
  • receive.advertisePushOptions=true
  • receive.fsckObjects=true
  • repack.writeBitmaps=true
  • transfer.hideRefs=^refs/tmp/
  • transfer.hideRefs=^refs/keep-around/
  • transfer.hideRefs=^refs/remotes/
  • core.alternateRefsCommand="exit 0 #"
  • core.fsyncObjectFiles=true
  • fetch.writeCommitGraph=true

postgres_exporter['per_table_stats'] 구성 설정

Linux 패키지는 postgres_exporter['per_table_stats'] 구성 설정을 제어하는 per_table_stats 쿼리를 제공합니다.

PostgreSQL 수출품은 이제 동일한 메트릭을 제공하는 stat_user_tables 수집기를 제공합니다. postgres_exporter['per_table_stats']가 활성화 된 경우 대신 postgres_exporter['flags']['collector.stat_user_tables']를 활성화하십시오.

npm 패키지 업로드는 이제 비동기로 발생합니다

  • GitLab 16.9에서 발표됨
  • GitLab 17.0에서 제거됨 (중단 변경)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중단 사항 이슈를 참조하세요.

GitLab 패키지 레지스트리는 npm 및 Yarn을 지원합니다. npm 또는 Yarn 패키지를 업로드하면 업로드가 동기적으로 진행됩니다. 그러나 동기 업로드에는 알려진 문제가 있습니다. 예를 들어 GitLab은 overrides와 같은 기능을 지원하지 않습니다.

17.0부터 npm 및 Yarn 패키지는 비동기적으로 업로드될 것입니다. 이는 패키지가 게시되자마자 사용 가능하다고 기대하는 파이프라인이 있을 수 있으므로 중단 변경입니다.

일시적 해결책으로 패키지를 확인하기 위해 패키지 API를 사용해야 합니다.

</div>

GitLab 16.9

‘lfs_check’ 피처 플래그의 더 이상 사용하지 않음

  • GitLab 16.6에서 발표됨
  • GitLab 16.9에서 제거됨
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중단 사항 이슈를 참조하세요.

GitLab 16.9에서는 ‘lfs_check’ 피처 플래그를 제거할 것입니다. 이 피처 플래그는 4년 전에 도입되었으며 LFS 무결성 확인을 활성화하는지 여부를 제어합니다. 이 피처 플래그는 기본적으로 활성화되어 있지만 일부 고객은 LFS 무결성 확인에 대한 성능 문제를 경험하고 명시적으로 비활성화했습니다.

LFS 무결성 확인의 성능을 대폭 향상시킨 후, 이제 이 피처 플래그를 제거할 준비가 되었습니다. 피처 플래그가 제거되면 현재 비활성화된 환경에서 자동으로 기능이 활성화될 것입니다.

이 피처 플래그가 환경에서 비활성화된 경우, 성능 문제에 대해 걱정이 될 경우 제거되기 전에 이를 활성화하고 성능을 모니터링해야 합니다. 활성화한 후 성능 문제가 발견된 경우, 이 피드백 이슈에 알려주세요.

GitLab 16.8

openSUSE Leap 15.4 패키지

  • GitLab 16.5에서 발표됨
  • GitLab 16.8에서 제거됨
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중단 사항 이슈를 참조하세요.

openSUSE Leap 15.4의 지원 및 보안 업데이트는 2023년 11월 종료됩니다.

GitLab 15.4는 openSUSE Leap 15.5를 위한 패키지를 제공했습니다. GitLab 15.8 이후로는 openSUSE Leap 15.4를 위한 패키지를 제공하지 않을 것입니다.

GitLab 15.8 이후를 위해 준비하려면 다음을 수행해야 합니다:

  1. openSUSE Leap 15.4에서 openSUSE Leap 15.5로 인스턴스 이동
  2. openSUSE Leap 15.4 GitLab 패키지에서 openSUSE Leap 15.5 GitLab 패키지로 전환하기

GitLab 16.7

Shimo 통합

  • GitLab 15.7에서 발표됨
  • GitLab 16.7에서 제거됨 (중단 변경)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중단 사항 이슈를 참조하세요.

Shimo Workspace 통합이 중단 예정이며 JiHu GitLab 코드베이스로 이동될 것입니다.

user_email_lookup_limit API 필드

  • GitLab 14.9에서 발표됨
  • GitLab 16.7에서 제거됨 (중단 변경)

user_email_lookup_limit API 필드가 GitLab 14.9에서 사용되지 않게 되었으며 GitLab 16.7에서 제거됩니다. 이 기능이 제거될 때까지 user_email_lookup_limitsearch_rate_limit에 별칭이 지정되며 기존 워크플로우는 여전히 작동합니다.

user_email_lookup_limit의 레이트 제한을 변경하는 모든 API 호출은 search_rate_limit 대신에 수행해야 합니다.

GitLab 16.6

작업 토큰 허용 디렉터리이 공개 및 내부 프로젝트를 다룹니다

  • GitLab 16.3에서 발표됨
  • GitLab 16.6에서 제거됨 (중단 변경)
  • 이 변경 사항을 논의하거나 자세히 알아보려면 중단 사항 이슈를 참조하세요.

16.6부터 public 또는 internal인 프로젝트는 이 프로젝트의 액세스 제한이 활성화되었을 때, 프로젝트의 허용 디렉터리에 없는 프로젝트에서 작업 토큰 요청을 승인하지 않게 됩니다.

이 프로젝트의 액세스 제한 설정이 활성화된 public 또는 internal 프로젝트가 있는 경우, 작업 토큰 요청을 하는 모든 프로젝트를 계속하여 프로젝트의 허용 디렉터리에 추가해야 합니다.

GitLab 16.5

비 LDAP 동기화된 멤버를 잠긴 LDAP 그룹에 추가하는 것은 폐지되었습니다

  • GitLab 16.0에서 발표
  • GitLab 16.5에서 제거 예정
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지된 이슈를 참조하세요.

ldap_settings_unlock_groups_by_owners 피처 플래그를 활성화하면 LDAP 동기화되지 않은 사용자를 잠긴 LDAP 그룹에 추가할 수 있었습니다. 이 기능은 항상 기본적으로 비활성화되었으며 피처 플래그로만 제공되었습니다. 저희는 이 기능을 제거하여 SAML 통합과의 연속성을 유지하고, 비동기화된 그룹 멤버를 허용하는 것이 디렉터리 서비스를 사용하는 “진리의 단일 진실 공급원” 원칙을 해치기 때문에 이런 결정을 내렸습니다. 이 기능이 제거된 후에는 LDAP 그룹 멤버 중 LDAP와 동기화되지 않은 멤버들은 해당 그룹에 액세스 권한을 잃게 됩니다.

Geo: 하우스키퍼 레이크 작업

  • GitLab 16.3에서 발표
  • GitLab 16.5에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지된 이슈를 참조하세요.

복제 및 검증을 Geo self-service framework (SSF)로 이전하는 일환으로 프로젝트 리포지터리의 레거시 복제가 제거되었습니다. 이에 따라 기존의 레거시 코드에 의존하는 다음 레이크 작업도 제거되었습니다. 이 레이크 작업에서 발생하는 작업은 이제 주기적으로 또는 트리거 이벤트에 기반하여 자동으로 트리거됩니다.

레이크 작업 대체
geo:git:housekeeping:full_repack UI로 이동. SSF에는 해당하는 레이크 작업이 없습니다.
geo:git:housekeeping:gc 새 리포지터리에 대해 항상 실행된 후, 필요할 때 실행됩니다. SSF에는 해당하는 레이크 작업이 없습니다.
geo:git:housekeeping:incremental_repack 필요할 때 실행됩니다. SSF에는 해당하는 레이크 작업이 없습니다.
geo:run_orphaned_project_registry_cleaner 고아 레지스트리를 제거하는 일관성 워커에 의해 정기적으로 실행됩니다. SSF에는 해당하는 레이크 작업이 없습니다.
geo:verification:repository:reset UI로 이동. SSF에는 해당하는 레이크 작업이 없습니다.
geo:verification:wiki:reset UI로 이동. SSF에는 해당하는 레이크 작업이 없습니다.

</div>

GitLab 16.3

번들된 Grafana의 폐지 및 비활성화

  • GitLab 16.0에서 발표
  • GitLab 16.3에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지된 이슈를 참조하세요.

Omnibus GitLab과 번들된 Grafana의 버전이 16.0에서 폐지 및 비활성화되었으며 16.3에서 제거될 예정입니다. 번들된 Grafana를 사용 중이라면 다음 중 하나로 마이그레이션해야 합니다:

현재 제공되는 Grafana 버전은 더 이상 지원되지 않습니다.

GitLab 버전 16.0부터 16.2까지는 여전히 번들된 Grafana를 다시 사용할 수 있습니다. 그러나 16.3부터는 번들된 Grafana를 다시 사용할 수 없게 됩니다.

라이선스 컴플라이언스 CI 템플릿

  • GitLab 15.9에서 발표
  • GitLab 16.3에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐지된 이슈를 참조하세요.

업데이트: 이전에 우리는 기존의 라이선스 컴플라이언스 CI 템플릿을 GitLab 16.0에서 제거할 것이라고 발표했습니다. 그러나 CycloneDX 파일의 라이선스 스캔에 대한 성능 이슈로 인해 이를 대신하여 16.3에서 제거할 예정입니다.

GitLab의 라이선스 컴플라이언스 CI/CD 템플릿은 더 이상 사용되지 않으며, GitLab 16.3 릴리즈에서 제거 예정입니다.

GitLab을 계속하여 라이선스 컴플라이언스에 사용하려면 CI/CD 파이프라인에서 라이선스 컴플라이언스 템플릿을 제거하고 의존성 스캔 템플릿을 추가하세요. 의존성 스캔 템플릿은 이제 필요한 라이선스 정보를 수집할 수 있으므로 별도의 라이선스 컴플라이언스 작업을 실행할 필요가 없어졌습니다.

라이선스 컴플라이언스 CI/CD 템플릿을 제거하기 전에, 새로운 라이선스 스캔 방법을 지원하는 버전으로 인스턴스가 업그레이드되었는지 확인하세요.

대규모로 빠르게 의존성 스캐너를 시작하려면 그룹 수준에서 스캔 실행 정책을 설정하여 그룹의 모든 프로젝트에 대해 SBOM에 기반한 라이선스 스캔을 강제할 수 있습니다. 그런 다음 CI/CD 구성에서 Jobs/License-Scanning.gitlab-ci.yml 템플릿 추가를 제거할 수 있습니다.

이전의 라이선스 컴플라이언스 기능을 계속하여 사용하려면 LICENSE_MANAGEMENT_VERSION CI 변수를 4로 설정하세요. 이 변수는 프로젝트, 그룹 또는 인스턴스 레벨에서 설정할 수 있습니다. 이 구성 변경을 통해 새로운 방법을 도입하지 않고 기존 버전의 라이선스 컴플라이언스를 계속하여 사용할 수 있습니다.

이전의 레거시 분석기의 버그와 취약점은 더 이상 수정되지 않을 것입니다.

CI 파이프라인에 포함 GitLab <= 15.8 15.9 <= GitLab < 16.3 GitLab >= 16.3
DS와 LS 템플릿 모두 포함 LS 작업을 통해 라이선스 데이터 사용 LS 작업을 통해 라이선스 데이터 사용 DS 작업을 통해 라이선스 데이터 사용
DS 템플릿은 포함되지만 LS 템플릿은 포함되지 않음 라이선스 데이터 없음 DS 작업을 통해 라이선스 데이터 사용 DS 작업을 통해 라이선스 데이터 사용
LS 템플릿은 포함되지만 DS 템플릿은 포함되지 않음 LS 작업을 통해 라이선스 데이터 사용 LS 작업을 통해 라이선스 데이터 사용 라이선스 데이터 없음

RSA 키 크기 제한

  • GitLab 16.3에서 발표됨
  • GitLab 16.3에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

Go 버전 1.20.7 이후로 maxRSAKeySize 상수가 추가되어 RSA 키를 최대 8192비트로 제한합니다. 결과적으로 8192비트보다 큰 RSA 키는 더 이상 GitLab에서 작동하지 않습니다. 8192비트보다 큰 RSA 키는 더 작은 크기로 다시 생성해야 합니다.

로그에 tls: server sent certificate containing RSA key larger than 8192 bits와 같은 오류가 포함된 것을 발견할 수 있습니다. 키의 길이를 테스트하려면 다음 명령을 사용하세요: openssl rsa -in <your-key-file> -text -noout | grep "Key:".

트위터 OmniAuth 로그인 옵션이 GitLab.com에서 제거됨

  • GitLab 16.3에서 발표됨
  • GitLab 16.3에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

낮은 사용률, gem 지원 부족 및 이 기능에 대한 기능적 로그인 옵션이 없어서 GitLab.com에서 Twitter OAuth 1.0a OmniAuth가 폐지 예정이며 GitLab 16.3에서 제거됩니다. Twitter로 GitLab.com에 로그인하는 경우 지원되는 OmniAuth 제공자의 비밀번호나 다른 방법으로 로그인할 수 있습니다.

</div>

GitLab 16.1

Alpine 3.12, 3.13, 3.14를 기반으로 하는 GitLab 러너 이미지

  • GitLab 15.11에서 발표됨
  • GitLab 16.1에서 지원 종료
  • GitLab 16.1에서 제거됨
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

다음과 같은 끝 지원 Alpine 버전을 기반으로한 러너 이미지의 게시를 중단합니다:

  • Alpine 3.12
  • Alpine 3.13
  • Alpine 3.14 (2023년 5월 23일에 지원 종료됨)

GitLab 16.0

Auto DevOps의 기본값으로는 더 이상 PostgreSQL 데이터베이스를 프로비저닝하지 않습니다.

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

현재 Auto DevOps는 클러스터 내 PostgreSQL 데이터베이스를 기본적으로 프로비저닝합니다. GitLab 16.0에서는 데이터베이스가 선택한 사용자에게만 프로비저닝됩니다. 이 변경은 더 견고한 데이터베이스 관리가 필요한 프로덕션 배포를 지원합니다.

Auto DevOps가 클러스터 내 데이터베이스를 프로비저닝하려면 POSTGRES_ENABLED CI/CD 변수를 true로 설정하세요.

Azure Storage Driver의 기본 루트 접두어 설정이 올바르게 변경됩니다.

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

컨테이너 레지스트리의 Azure Storage Driver는 기본 루트 디렉터리로 //로 작성됩니다. 이 기본 루트 디렉터리는 Azure UI 내에서 /<no-name>/로 표시됩니다. 이 전환 사진이 오래된 스토리지 드라이버를 사용하는 이전 배포를 지원하기 위해 기존 행동을 유지했습니다. 그러나 Azure로 다른 스토리지 드라이버로 이동할 때 이 동작은 스토리지 드라이버가 trimlegacyrootprefix: true로 추가 선행 슬래시 없이 루트 경로를 구성할 때까지 모든 데이터를 숨깁니다.

스토리지 드라이버의 새로운 기본 설정은 trimlegacyrootprefix: true로, /가 기본 루트 디렉터리가 될 것입니다. 현재 구성에 trimlegacyrootprefix: false를 추가하여 장애가 발생하지 않도록 할 수 있습니다.

이 폐지 변경 사항은 GitLab 16.0에서 발생할 것입니다.

번들된 Grafana Helm 차트는 폐지 예정입니다.

  • GitLab 15.10에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

GitLab Helm 차트와 함께 번들된 Grafana Helm 차트가 폐지 예정이며 GitLab Helm 차트 7.0 릴리스( GitLab 16.0과 함께 릴리스됨)에서 제거될 것입니다.

번들된 Grafana Helm 차트는 GitLab Helm 차트의 Prometheus 메트릭에 연결된 Grafana UI를 제공하는 선택적 서비스입니다.

GitLab Helm 차트가 현재 제공하는 Grafana 버전은 더 이상 지원되지 않는 Grafana 버전입니다. 번들된 Grafana를 사용 중이라면 Grafana Labs의 새로운 차트 버전 또는 신뢰할 수 있는 제공업체의 Grafana Operator로 전환해야 합니다.

새 Grafana 인스턴스에서 GitLab이 제공하는 Prometheus를 데이터 소스로 구성 하고 Grafana를 GitLab UI에 연결할 수 있습니다.

CAS OmniAuth 제공자

  • GitLab 15.3에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세한 내용을 알아보려면 폐지 예정 이슈를 참조하세요.

GitLab에 CAS OmniAuth 제공자를 제공하는 omniauth-cas3 젬은 다음 주요 릴리스인 GitLab 16.0에서 제거될 예정입니다. 이 젬은 사용률이 매우 낮으며 상류 유지보수가 없어 GitLab의 OmniAuth 2.0 업그레이드를 방해하고 있습니다.

CI/CD 작업에서 Hashicorp Vault에서 비밀이 반환되지 않을 때 실패함

네이티브 HashiCorp Vault 통합을 사용할 때, Vault에서 비밀이 반환되지 않으면 CI/CD 작업이 실패합니다. 구성이 항상 비밀을 반환하거나 GitLab 16.0 이전에 이 변경 사항을 처리하도록 파이프라인을 업데이트하세요.

멀티 모듈 안드로이드 프로젝트에서 MobSF 기반 SAST 분석기 동작 변경

업데이트: 이전에 MobSF 기반 GitLab SAST 분석기가 멀티 모듈 안드로이드 프로젝트를 스캔하는 방식을 변경한다고 발표했습니다. 해당 변경 사항은 취소되었으며 별도의 조치가 필요하지 않습니다.

단일 모듈을 스캔할 방식을 변경하는 대신 멀티 모듈 지원을 개선했습니다.

/approvals API 엔드포인트를 사용하여 Merge Request 승인 변경

Merge Request에서 필요한 승인을 변경하려면 더 이상 GitLab 14.0에서 폐지된 /approvals API 엔드포인트를 사용하지 않아야 합니다.

대신, Merge Request의 승인 규칙을 만들거나 업데이트하려면 /approval_rules 엔드포인트를 사용하세요. Merge Request 수준 규칙을 만들기 또는 업데이트할 수 있습니다.

프로젝트 수준 Conan 검색 엔드포인트가 프로젝트별 결과를 반환함

프로젝트 수준의 Conan 리포지터리 또는 인스턴스 수준의 엔드포인트를 사용하여 GitLab Conan 리포지터리를 사용할 수 있습니다. 각 수준은 conan 검색 명령을 지원합니다. 그러나 프로젝트 수준의 검색 엔드포인트는 대상 프로젝트 외부의 패키지도 반환합니다.

이 의도하지 않은 기능은 GitLab 15.8에서 폐지되며 GitLab 16.0에서 제거될 예정입니다. 프로젝트 수준의 검색 엔드포인트는 대상 프로젝트에서만 패키지를 반환하게 될 것입니다.

GitLab Runner Helm 차트의 구성 필드

GitLab 13.6부터 사용자는 GitLab Runner Helm 차트에서 모든 러너 구성을 지정할 수 있습니다. 이 기능을 구현할 때, GitLab Helm 차트 구성에 GitLab Runner에 특정한 값이 폐지되었습니다. 폐지된 값들은 GitLab 16.0에서 제거될 예정입니다.

환경 변수를 사용하여 Redis 구성 파일 경로 구성은 폐지됨

GITLAB_REDIS_CACHE_CONFIG_FILE 또는 GITLAB_REDIS_QUEUES_CONFIG_FILE와 같은 환경 변수를 사용하여 Redis 구성 파일 위치를 지정할 수 없습니다. 대신에 config/redis.cache.yml 또는 config/redis.queues.yml과 같은 기본 구성 파일 위치를 사용하세요.

Docker를 참조하는 컨테이너 스캔 변수

변수 이름이 DOCKER_로 시작하는 모든 컨테이너 스캔 변수가 폐지되었습니다. 이에는 DOCKER_IMAGE, DOCKER_PASSWORD, DOCKER_USER, DOCKERFILE_PATH 변수가 포함됩니다. 이러한 변수들의 지원은 GitLab 16.0 릴리즈에서 제거될 예정입니다. 폐지된 이름 대신 새로운 변수 이름CS_IMAGE, CS_REGISTRY_PASSWORD, CS_REGISTRY_USER, CS_DOCKERFILE_PATH를 사용하세요.

컨테이너 레지스트리 풀 스루 캐시

컨테이너 레지스트리 풀 스루 캐시가 GitLab 15.8에서 폐지되며 GitLab 16.0에서 제거될 예정입니다. 풀 스루 캐시는 상위 자체 Docker Distribution 프로젝트의 일부입니다. 그러나 Docker Hub에서 컨테이너 이미지를 프록시하고 캐시할 수 있는 GitLab Dependency Proxy로 교체함으로써 풀 스루 캐시를 제거합니다. 풀 스루 캐시를 제거함으로써 상위 클라이언트 코드를 제거하면서도 기능을 희생하지 않을 수 있습니다.

GitLab for Jira Cloud 앱의 쿠키 인증

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 논의 또는 자세한 내용은 제거 사항 이슈를 참조하세요.

Jira 클라우드용 GitLab의 쿠키 인증은 이제 OAuth 인증을 선호하는 방향으로 사용되지 않게 되었습니다. Self-Managed형 시스템에서는 GitLab for Jira 클라우드 앱을 계속 사용하려면 OAuth 인증을 설정해야 합니다. OAuth가 없으면 연결된 네임스페이스를 관리할 수 없습니다.

DAST API 템플릿을 사용한 DAST API 스캔이 사용되지 않게 됨

  • GitLab 15.7에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 논의 또는 자세한 내용은 제거 사항 이슈를 참조하세요.

새 DAST API 분석기 및 DAST-API.gitlab-ci.yml 템플릿으로 이동함에 따라 DAST 분석기를 사용하여 API를 스캔하는 기능이 제거될 예정입니다. API 스캔에 DAST.gitlab-ci.yml 또는 DAST-latest.gitlab-ci.yml 템플릿을 사용하는 것은 GitLab 15.7에서 사용 중지되며, GitLab 16.0에서 더 이상 작동하지 않습니다. API 구성 세부 정보에 대해서는 DAST API 분석기 설명서를 참조하세요.

DAST API 변수

  • GitLab 15.7에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 논의 또는 자세한 내용은 제거 사항 이슈를 참조하세요.

GitLab 15.6에서 새 DAST API 분석기로 전환됨에 따라 두 가지 레거시 DAST API 변수가 폐기됩니다. DAST_API_HOST_OVERRIDEDAST_API_SPECIFICATION 변수는 더 이상 DAST API 스캔에 사용되지 않을 것입니다.

DAST_API_HOST_OVERRIDE는 OpenAPI 명세서에서 호스트를 자동으로 재정의하기 위해 DAST_API_TARGET_URL을 사용하도록 대체되었습니다.

DAST_API_SPECIFICATIONDAST_API_OPENAPI으로 대체하여 테스트를 안내하는 데 계속해서 OpenAPI 명세서를 사용하려면 사용자는 DAST_API_SPECIFICATION 변수를 DAST_API_OPENAPI 변수로 대체해야 합니다. 값은 그대로 유지되지만 변수 이름을 대체해야 합니다.

이 두 가지 변수는 GitLab 16.0에서 제거될 예정입니다.

DAST 보고서 변수가 사용되지 않게 됨

  • GitLab 15.7에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 논의 또는 자세한 내용은 제거 사항 이슈를 참조하세요.

GitLab 15.7에서 새 브라우저 기반 DAST 분석기 GA로 진행 중에 우리는 이 분석기를 언젠가는 기본 DAST 분석기로 만들기 위해 노력 중입니다. 이에 대비하여 다음과 같은 레거시 DAST 변수가 선언되어 제거 및 제약 조치가 예정되어 있습니다: DAST_HTML_REPORT, DAST_XML_REPORT, 그리고 DAST_MARKDOWN_REPORT. 이러한 보고서는 레거시 DAST 분석기에 의존하며, 새 브라우저 기반 분석기에서 이러한 보고서를 구현할 계획은 없습니다. GitLab 16.0부터는 이러한 보고서 아티팩트가 더 이상 생성되지 않을 것입니다.

이 세 가지 변수는 GitLab 16.0에서 제거될 예정입니다.

기본 CI/CD 작업 토큰(CI_JOB_TOKEN)의 범위가 변경되었습니다.

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 논의 또는 자세한 내용은 제거 사항 이슈를 참조하세요.

GitLab 14.4에서 프로젝트의 CI/CD 작업 토큰(프로젝트 작업 토큰 액세스 제한 참조)을 제한하는 기능을 소개했습니다. 프로젝트의 파이프라인에서 다른 프로젝트에 액세스하는 것을 방지할 수 있습니다. 다른 구성 없이 활성화된 경우, 파이프라인으로부터 다른 프로젝트에 액세스할 수 없습니다. 파이프라인으로부터 다른 프로젝트에 액세스하려면 해당 프로젝트를 명시적으로 Limit CI_JOB_TOKEN access 설정의 허용 디렉터리에 나열해야 하며, 모든 프로젝트에서 메인테이너여야 합니다.

15.9에서 작업 토큰 기능이 업데이트되어 작업 토큰으로 프로젝트에 액세스를 허용하는 보다 안전한 설정이 추가되었습니다. 이전 설정과 유사하게, 다른 프로젝트로부터의 작업 토큰이 자동으로 프로젝트에 액세스할 수 없습니다. 이 새 설정을 사용하여 다른 프로젝트가 작업 토큰으로 프로젝트에 액세스하도록 선택적으로 허용할 수 있습니다. 이 새 설정에서는 자신의 프로젝트에서는 메인테이너여야 하지만 다른 프로젝트에서는 게스트 역할을 가질 필요가 있습니다.

따라서 제한 설정은 보다 나은 액세스 허용 설정을 선호한다는 이유로 폐기되었습니다. 16.0에서 제한 설정은 기본적으로 모든 새 프로젝트에서 비활성화될 것입니다. 현재 이 설정이 활성화된 프로젝트에서는 계속해서 기대한 대로 작동하지만, 허용 디렉터리에 더 이상 프로젝트를 추가할 수 없게 될 것입니다. 18.0에서 우리는 제한 설정을 완전히 제거하고 모든 프로젝트를 위해 액세스 허용 설정을 활성화할 계획입니다. 이 변경으로 인해 프로젝트 간의 더 높은 수준의 보안이 보장됩니다. 제한 설정을 현재 사용 중이라면, 프로젝트를 액세스 허용 설정을 사용하도록 업데이트해야 합니다. 다른 프로젝트가 작업 토큰으로 프로젝트에 액세스하는 경우, 이 프로젝트를 액세스 허용 허용디렉터리에 추가해야 합니다.

본 변경에 대비하여, GitLab.com 또는 Self-Managed형 GitLab 15.9 이후의 사용자는 액세스 허용 설정을 미리 활성화하고 다른 프로젝트를 추가할 수 있습니다. 18.0부터는 이 설정을 비활성화할 수 없습니다.

16.3에서 이러한 설정의 이름이 의미를 명확히하기 위해 변경되었습니다: 폐기된 제한 CI_JOB_TOKEN 액세스 설정은 이제 이 프로젝트에서의 액세스 제한이라고 불리며, 이 프로젝트에 대한 CI_JOB_TOKEN 액세스를 허용을 위한 새로운 설정은 이제 이 프로젝트로의 액세스 제한으로 불립니다.

Java 13, 14, 15, 및 16의 Dependency Scanning 지원이 중지됨

GitLab은 Java 13, 14, 15, 및 16의 Dependency Scanning 지원을 중지하고, 향후 GitLab 16.0 릴리즈에서 해당 지원을 제거할 계획입니다. 이는 Oracle의 지원 정책과 일치하며, Oracle Premier 및 Extended Support가 이러한 버전에 대해 종료되었습니다. 또한, GitLab은 향후 LTS 버전에서의 Dependency Scanning Java 지원에 중점을 둘 것입니다.

updated_atupdated_at가 함께 사용되지 않았을 때 Deployment API에서 오류가 발생함

이제 Deployment API는 updated_at 필터링과 updated_at 정렬을 함께 사용하지 않을 때 오류를 반환합니다. 일부 사용자는 updated_at으로 “최신” 배포를 가져오기 위해 updated_at 정렬을 사용하지 않고 필터링을 사용하고 있었는데, 이는 잘못된 결과를 초래할 수 있습니다. 대신 함께 사용하거나, ‘finished_at’로 필터링하고 ‘finished_at’로 정렬하는 것이 “최신 배포”를 일관되게 얻을 수 있는 방법입니다.

레거시 Gitaly 구성 방법의 사용 중지

Gitaly를 구성하기 위해 환경 변수 GIT_CONFIG_SYSTEMGIT_CONFIG_GLOBAL을 사용하는 것은 deprecated되었습니다. 이러한 변수는 표준 config.toml Gitaly 구성으로 교체되고 있습니다.

Gitaly를 구성하기 위해 GIT_CONFIG_SYSTEMGIT_CONFIG_GLOBAL을 사용하는 GitLab 인스턴스는 대신 config.toml을 사용하도록 전환해야 합니다.

레거시 Consul http 메트릭의 사용 중지

GitLab Omnibus 패키지에서 제공되는 Consul은 GitLab 16.0부터 이전에 사용되던 기존에 사용 중지된 Consul 메트릭을 더 이상 제공하지 않을 것입니다.

GitLab 14.0에서는 Consul이 1.9.6으로 업데이트되었는데, 이로 인해 consul.http 경로에서 일부 텔레미트 메트릭이 사용 중지되었습니다. GitLab 16.0에서는 consul.http 경로가 제거될 것입니다.

Consul 메트릭을 사용하고 있는 경우, consul.http 대신 consul.api.http를 사용하도록 업데이트하세요. 더 많은 정보는 Consul 1.9.0에 대한 사용 중지 사항을 참조하세요.

CI_PRE_CLONE_SCRIPT 변수가 GitLab SaaS에서 사용 중지 및 제거 예정

GitLab SaaS Runners에서 지원하는 CI_PRE_CLONE_SCRIPT 변수가 GitLab 15.9에서 사용 중지되며, 16.0에서 제거될 예정입니다. CI_PRE_CLONE_SCRIPT 변수를 사용하면 CI/CD 작업에서 실행하기 전에 러너가 Git init 및 get fetch를 수행할 수 있습니다. 이 기능이 작동하는 방법에 대한 자세한 정보는 Pre-clone script을 참조하세요. 대체로 pre_get_sources_script를 사용할 수 있습니다.

그룹에 대한 Developer 역할로 프로젝트 가져오기 기능의 사용 중지

그룹의 Developer 역할을 가진 사용자가 해당 그룹으로 프로젝트를 가져오는 기능은 GitLab 15.8에서 사용 중지되며, GitLab 16.0에서 제거될 예정입니다. GitLab 16.0부터 해당 그룹으로 프로젝트를 가져오려면 적어도 Maintainer 역할을 가진 사용자만 가능할 것입니다.

PHP 및 Python의 개발 의존성이 보고됩니다.

GitLab 16.0에서 GitLab Dependency Scanning 분석기는 Python/pipenv 및 PHP/composer 프로젝트의 개발 의존성을 보고합니다. 이러한 개발 의존성을 보고하고 싶지 않은 사용자는 CI/CD 파일에서 DS_INCLUDE_DEV_DEPENDENCIES: false를 설정해야 합니다.

마크다운에 Grafana 패널 추가는 더 이상 지원되지 않습니다

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 중단 문제를 참조하세요.

GitLab Flavored Markdown에서 Grafana 패널을 추가하는 기능은 15.9에서 폐기 예정이며, 16.0에서 제거될 예정입니다. 이 기능은 GitLab Observability UI를 사용하여 차트를 임베드할 수 있도록 대체할 계획입니다.

CI/CD 매개변수 길이의 강제적 검증

  • GitLab 15.9에서 공지됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 중단 문제를 참조하세요.

CI/CD 작업 이름은 엄격한 255자 제한이 있지만, 다른 CI/CD 매개변수는 아직 해당 제한을 갖는지 확인하는 유효성 검증이 없습니다. GitLab 16.0에서는 다음도 255자로 엄격하게 제한하기 위해 검증이 추가될 것입니다:

  • stage 키워드
  • 파이프라인용 Git 브랜치 또는 태그 이름인 ref
  • 외부 CI/CD 통합에서 사용하는 descriptiontarget_url 매개변수

자체 호스팅된 인스턴스의 사용자들은 255자를 초과하는 매개변수를 사용하지 않도록 파이프라인을 업데이트해야 합니다. GitLab.com 사용자들은 해당 데이터베이스에서 이미 제한되어 있기 때문에 어떠한 변경도 필요하지 않습니다.

환경 검색 쿼리는 최소 세 글자가 필요합니다

  • GitLab 15.10에서 공지됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 중단 문제를 참조하세요.

GitLab 16.0부터 API로 환경을 검색할 때 최소 세 글자를 사용해야 합니다. 이 변경 사항은 검색 작업의 확장 가능성을 보장하기 위한 것입니다.

  • GitLab 15.9에서 공지됨
  • GitLab 16.0에서 제거 예정 (breaking change)

GraphQL API에서 ReleaseAssetLink 유형external 필드는 릴리스 링크가 GitLab 인스턴스 내부 또는 외부에 있는지 표시하는 데 사용되었습니다. GitLab 15.9부터 모든 릴리스 링크를 외부로 처리하므로, 이 필드는 15.9에서 폐기되었으며, 16.0에서 제거될 예정입니다. 업무 흐름에 어떠한 방해도 생기지 않도록 external 필드 사용을 중단해야 합니다. 해당 필드는 제거되고 대체되지 않을 것이기 때문입니다.

릴리스 및 릴리스 링크 API에서의 외부 필드

  • GitLab 15.9에서 공지됨
  • GitLab 16.0에서 제거 예정 (breaking change)

릴리스 API릴리스 링크 API에서 external 필드는 릴리스 링크가 GitLab 인스턴스 내부 또는 외부에 있는지 표시하는 데 사용되었습니다. GitLab 15.9부터 모든 릴리스 링크를 외부로 처리하므로, 이 필드는 15.9에서 폐기되었으며, 16.0에서 제거될 예정입니다. 업무 흐름에 어떠한 방해도 생기지 않도록 external 필드 사용을 중단해야 합니다. 해당 필드는 제거되고 대체되지 않을 것이기 때문입니다.

Geo: 프로젝트 리포지터리 재다운로드 기능은 폐기 예정

  • GitLab 15.11에서 공지됨
  • GitLab 16.0에서 제거 예정
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 중단 문제를 참조하세요.

보조 Geo 사이트에서 “프로젝트 리포지터리 재다운로드” 버튼은 폐기되었습니다. 재다운로드 논리에는 발생할 경우 해결하기 어려운 데이터 일관성 문제가 있습니다. 해당 버튼은 GitLab 16.0에서 제거될 것입니다.

GitLab 관리자는 보호된 브랜치 또는 태그 수정 권한을 갖어야 함

  • GitLab 16.0에서 공지됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 중단 문제를 참조하세요.

GitLab 관리자는 보호된 브랜치나 태그에 대해 명시적으로 권한을 부여받지 않는 한 해당 브랜치 또는 태그에 대한 푸시 및 Merge과 같은 작업을 수행할 수 없습니다. 이러한 작업에는 보호된 브랜치로 푸시 및 Merge, 브랜치 보호 해제, 보호된 태그 생성 등이 포함됩니다.

GitLab 자체 모니터링 프로젝트

  • GitLab 14.9에서 공지됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 중단 문제를 참조하세요.

GitLab 자체 모니터링은 자체 호스팅 GitLab 인스턴스의 관리자들에게 인스턴스 건강을 모니터링하는 도구를 제공합니다. 이 기능은 GitLab 14.9에서 폐기되었으며, 16.0에서 제거 예정입니다.

GitLab.com 가져오기 도구

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거됨
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 제거된 기능에 대한 문제를 참조하십시오.

GitLab.com 가져오기 도구는 GitLab 15.8에서 사용이 중지되며 GitLab 16.0에서 제거될 예정입니다.

GitLab.com 가져오기 도구는 2015년에 도입되었으며 UI를 통해 GitLab.com에서 프로젝트를 Self-Managed형 GitLab 인스턴스로 가져오기 위한 기능입니다. 이 기능은 Self-Managed형 인스턴스에서만 사용할 수 있습니다. 직접 전송에 의한 GitLab 그룹 및 프로젝트 이전이 GitLab.com 가져오기 도구를 대체하며 더 일관된 가져오기 기능을 제공합니다.

개요를 보려면 이전된 그룹 항목이전된 프로젝트 항목을 참조하십시오.

GraphQL API 러너 상태에서 paused 반환되지 않음

GitLab 러너 GraphQL API 엔드포인트는 GitLab 16.0에서 상태로 paused 또는 active를 반환하지 않을 것입니다. REST API의 향후 v5에서도 GitLab 러너의 엔드포인트는 paused 또는 active를 반환하지 않을 것입니다.

러너의 상태는 러너 연락처 상태에만 관련되며 다음과 같은 것들을 포함합니다: online, offline, 또는 not_connected. 상태 paused 또는 active는 더 이상 나타나지 않을 것입니다.

러너가 paused인지 확인할 때, API 사용자는 paused 속성이 true인지 확인하는 것이 좋습니다. 러너가 active인지 확인할 때에는 pausedfalse인지 확인하세요.

Jira 클라우드용 Jira DVCS 커넥터

Jira 클라우드용 Jira DVCS 커넥터가 제거될 예정이며 GitLab 16.0에서 제거될 예정입니다. Jira 클라우드에서 Jira DVCS 커넥터를 사용하고 있다면 GitLab for Jira 클라우드 앱로 마이그레이션하십시오.

또한, Jira 8.13 이전에서는 Jira DVCS 커넥터가 사용 중지되었습니다. Jira 8.14 이후에는 Jira 서버 또는 Jira 데이터 센터에서만 Jira DVCS 커넥터를 사용할 수 있습니다.

GitLab Helm 차트의 KAS 메트릭스 포트

gitlab.kas.metrics.portGitLab Helm 차트에서 혼돈을 피하기 위해 새로운 gitlab.kas.observability.port 구성 필드로 대체되었습니다. 이 포트는 메트릭뿐만 아니라 훨씬 더 많은 용도로 사용되며, 이에 따라 이러한 변경이 이루어졌습니다.

레거시 Gitaly 구성 방법

Omnibus GitLab 내의 Gitaly 구성이 표준 Gitaly 구성과 일치하는 단일 구성 구조에 모든 Gitaly 관련 구성 키가 업데이트되었습니다. 따라서 이전의 구성 구조는 사용 중지됩니다.

단일 구성 구조는 GitLab 15.10부터 사용할 수 있지만 하위 호환성은 유지됩니다. 제거되면 Gitaly는 단일 구성 구조를 사용하여 구성해야 합니다. 최대한 빨리 Gitaly 구성을 업데이트해야 합니다.

레거시 Praefect 구성 방법

이전에는 Praefect 구성 키가 구성 파일 전체에 흩어져 있었습니다. 이제 이러한 구성은 Praefect 구성과 일치하는 단일 구성 구조로 이동되어 이전의 구성 방법은 사용 중지됩니다.

단일 구성 구조는 GitLab 15.9부터 사용할 수 있지만 하위 호환성은 유지됩니다. 제거되면 Praefect는 단일 구성 구조를 사용하여 구성해야 합니다. 가능한 빨리 Praefect 구성을 업데이트해야 합니다.

레거시 URL 대체 또는 제거됨

GitLab 16.0에서는 GitLab 애플리케이션에서 레거시 URL이 제거됩니다.

GitLab 9.0에서 서브그룹이 도입되었을 때 URL에 / - / 구분 기호가 추가되어 그룹 경로의 끝을 나타내도록 했습니다. 이제 모든 GitLab URL은 프로젝트, 그룹 및 인스턴스 레벨 기능에 대해 이 구분 기호를 사용합니다.

/-/ 구분 기호를 사용하지 않는 URL은 GitLab 16.0에서 제거될 예정입니다. 이러한 URL의 전체 디렉터리과 대체품에 대해서는 이슈 28848를 참조하세요.

레거시 URL을 참조하는 스크립트 또는 즐겨찾기를 업데이트하세요. 이 변경 사항은 GitLab API에는 영향을 미치지 않습니다.

License-Check 및 License Compliance 페이지의 정책 탭

License-Check 기능은 이제 사용이 중단되었으며 GitLab 16.0에서 제거 예정입니다. 또한 License Compliance 페이지의 정책 탭 및 License-Check 기능 관련 모든 API도 사용이 중단되었으며 GitLab 16.0에서 제거 예정입니다. 감지된 라이선스를 기반으로 승인을 강제 적용하려는 사용자는 대신 새로운 라이선스 승인 정책을 생성하는 것을 권장합니다.

외부 승인과 함께 개인 액세스 토큰 및 배포 토큰의 액세스 제한

외부 승인이 활성화되면 개인 액세스 토큰(PAT) 및 배포 토큰은 더 이상 컨테이너 또는 패키지 레지스트리에 액세스할 수 없어야 합니다. 이 방어적인 보안 조치는 16.0에서 배포될 예정입니다. 이러한 레지스트리를 액세스하기 위해 PAT 및 배포 토큰을 사용하는 사용자에게는 이 조치가 해당 토큰의 사용을 중단시킵니다. 컨테이너 또는 패키지 레지스트리에 토큰을 사용하려면 외부 승인을 비활성화하세요.

GitLab Helm 차트의 주요 번들된 Helm 차트 업데이트

GitLab 16.0과 일치하도록, GitLab Helm 차트는 7.0 주요 버전을 릴리스할 예정입니다. 다음과 같은 주요 번들된 차트 업데이트가 포함됩니다:

전체 GitLab Helm 차트 7.0 업그레이드 절차는 업그레이드 문서에서 확인할 수 있습니다.

관리되는 라이선스 API

관리되는 라이선스 API는 이제 사용이 중단되었으며 GitLab 16.0에서 제거 예정입니다.

프로젝트 당 활성 파이프라인 수 제한 (ci_active_pipelines)

  • GitLab 15.3에서 발표됨
  • GitLab 16.0에서 제거됨
  • 이 변경 사항을 논의하거나 자세히 알아보려면 제거에 대한 이슈를 참조하세요.

프로젝트 당 활성 파이프라인 수의 최대 제한은 기본적으로 사용되지 않았으며 GitLab 16.0에서 제거될 것입니다. 이 제한은 Rails 콘솔에서 ci_active_pipelines에서 구성할 수도 있습니다. 대신 유사한 보호를 제공하는 다른 권장 속도 제한을 사용하세요:

Prometheus를 통해 성능 메트릭 모니터링

  • GitLab 14.7에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue)를 참조하세요.

Prometheus 인스턴스에 저장된 데이터를 표시함으로써 GitLab은 사용자가 성능 메트릭을 확인할 수 있도록 합니다. 또한 GitLab은 이러한 메트릭의 시각화를 대시보드에서 표시합니다. 사용자는 이전에 구성된 외부 Prometheus 인스턴스에 연결하거나 GitLab Managed App으로 Prometheus를 설정할 수 있습니다. 그러나 Kubernetes 클러스터와의 인증 기반 통합이 GitLab에서 사용 중지되었기 때문에 Prometheus에 의존하는 GitLab의 메트릭 기능 또한 사용 중지되었습니다. 이에는 대시보드에서의 메트릭 시각화도 포함됩니다. GitLab은 Opstrace를 기반으로 한 단일 사용자 경험을 개발 중입니다. Opstrace 통합에 대한 작업은 이슈에서 확인할 수 있습니다.

만료되지 않는 액세스 토큰

  • GitLab 15.4에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue)를 참조하세요.

만료 날짜가 없는 액세스 토큰은 계속해서 유효하며, 이는 액세스 토큰이 유출된 경우 보안 위협이 될 수 있습니다. GitLab 15.3부터 액세스 토큰에 기본 만료 날짜를 지정하기 시작했습니다.

GitLab 16.0에서는 만료 날짜가 없는 개인 액세스 토큰, 프로젝트 액세스 토큰 또는 그룹 액세스 토큰은 자동으로 1년의 만료 날짜가 지정됩니다.

기본 적용되기 전에 회사의 보안 정책에 따라 액세스 토큰에 만료 날짜를 지정하는 것이 권장됩니다:

  • GitLab.com의 경우 16.0 마일스톤에서
  • GitLab의 Self-Managed 버전은 16.0으로 업그레이드될 때

표준이 아닌 기본 Redis 포트 사용 중지예정

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue)를 참조하세요.

GitLab이 Redis 구성 파일이 없이 시작되면, GitLab은 localhost:6380, localhost:6381, localhost:6382에서 각각 세 개의 Redis 서버에 연결할 수 있다고 가정합니다. 이 동작을 변경하여 GitLab은 localhost:6379에서 한 개의 Redis 서버가 있다고 가정합니다.

세 개의 서버를 유지하려는 관리자들은 config/redis.cache.yml, config/redis.queues.yml, config/redis.shared_state.yml 파일을 편집하여 Redis URL을 구성해야 합니다.

즉시 프로젝트 삭제 옵션이 삭제 보호 설정으로부터 사용 중지됨

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue)를 참조하세요.

관리자 영역의 그룹 및 프로젝트 삭제 보호 설정에는 그룹 및 프로젝트를 즉시 삭제하는 옵션이 포함되어 있었습니다. 16.0부터 이 옵션이 더 이상 사용되지 않으며 지연된 그룹 및 프로젝트 삭제가 기본 동작으로 설정됩니다.

이 옵션은 더 이상 그룹 설정에 표시되지 않을 것입니다. Self-Managed 사용자는 삭제 지연 기간을 정의할 수 있으며, SaaS 사용자는 7일의 기본 보유 기간을 가집니다. 사용자는 프로젝트 설정에서 프로젝트를 즉시 삭제하거나, 그룹 설정에서 그룹을 삭제할 수 있습니다.

그룹 및 프로젝트를 즉시 삭제하는 기본 옵션이 사용 중지된 이유는 사용자가 실수로 이 작업을 수행하고 영구적으로 그룹 및 프로젝트를 잃지 않도록 방지하기 위함입니다.

PipelineSecurityReportFinding 이름 GraphQL 필드

  • GitLab 15.1에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue를 참조하세요.

이전에 PipelineSecurityReportFinding GraphQL 타입이 업데이트되었으며 새로운 title 필드가 포함되었습니다. 이는 기존의 name 필드의 별칭으로, 보다 구체적이지 않은 name 필드가 중복되어 제거될 예정입니다. name 필드는 GitLab 16.0에서 PipelineSecurityReportFinding 유형에서 제거될 것입니다.

PostgreSQL 12 사용 중지예정

  • GitLab 15.0에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue를 참조하세요.

PostgreSQL 12의 지원이 GitLab 16.0에서 제거될 예정입니다. GitLab 16.0에서는 PostgreSQL 13이 최소 필요 버전이 됩니다.

PostgreSQL 12는 전체 GitLab 15 릴리스 주기 동안 지원될 것입니다. PostgreSQL 13는 GitLab 16.0 이전에 업그레이드하려는 인스턴스에서도 지원될 것입니다.

PostgreSQL 13의 지원은 GitLab 15.2에서 Geo에 추가되었습니다.

프로젝트 API 필드 operations_access_level 사용 중지예정

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 제거(issue)를 참조하세요.

Projects API에서 operations_access_level 필드를 사용 중지합니다. 이 필드는 특정 기능을 제어하기 위해 releases_access_level, environments_access_level, feature_flags_access_level, infrastructure_access_level, monitor_access_level 필드로 대체되었습니다.

베어 리포지터리 가져오기용 Rake 작업

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거 예정
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

베어 리포지터리 가져오기용 Rake 작업(gitlab:import:repos)은 GitLab 15.8에서 사용이 중단되며 GitLab 16.0에서 제거될 예정입니다.

이 Rake 작업은 디렉터리 트리의 리포지터리를 GitLab 인스턴스로 가져옵니다. 이러한 리포지터리는 Rake 작업이 작동하려면 이전에 GitLab에서 관리되었어야 합니다. 여기서 Rake 작업은 특정 디렉터리 구조나 특정 사용자 지정 Git 설정에 의존합니다(gitlab.fullpath).

이 Rake 작업을 사용하여 리포지터리를 가져오는 것에는 제한 사항이 있습니다. 이 Rake 작업은:

  • 프로젝트 및 프로젝트 위키 리포지터리에 대해서만 알고 있으며, 디자인, 그룹 위키 또는 스니펫 리포지터리를 지원하지 않습니다.
  • 해시되지 않은 리포지터리를 가져오도록 허용하지만 해당 기능은 지원하지 않습니다.
  • Git 설정 gitlab.fullpath가 설정되어 있어야 합니다. Epic 8953에서 이 설정 지원 제거가 제안됩니다.

gitlab:import:repos Rake 작업을 사용하는 다른 방법은 다음과 같습니다:

Redis 5 사용 중단

  • GitLab 15.3에서 발표됨
  • GitLab 15.6에서 지원 종료
  • GitLab 16.0에서 제거될 예정 (중단 변경)
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

GitLab 13.9에서 Omnibus GitLab 패키지 및 GitLab Helm 차트 4.9에서 Redis 버전이 Redis 6로 업데이트되었습니다. Redis 5는 2022년 4월에 지원이 종료되며 GitLab 15.6부터 더 이상 지원되지 않습니다. 사용 중인 개별 Redis 5.0 인스턴스가 있으면 GitLab 16.0 이상으로 업그레이드하기 전에 Redis 6.0 이상으로 업그레이드해야 합니다.

POST /jobs/request Runner 엔드포인트에서 job_age 매개변수 제거

  • GitLab 15.2에서 발표됨
  • GitLab 16.0에서 제거될 예정 (중단 변경)
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

GitLab 러너와 통신에 사용되는 POST /jobs/request API 엔드포인트에서 반환된 job_age 매개변수는 GitLab 또는 러너 기능에 의해 사용된 적이 없습니다. 이 매개변수는 GitLab 16.0에서 제거될 예정입니다.

이 엔드포인트에서 반환된 매개변수를 사용 중인 사용자는 이 변경으로 인해 애플리케이션이 중단될 수 있습니다. 그러나 GitLab의 공식 버전 및 GitLab.com의 공유 러너를 사용하는 경우에는 중단 변경 사항이 없습니다.

GitLab 16.0에서 SAST 분석기 커버리지 변경

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거될 예정 (중단 변경)
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

GitLab SAST는 다양한 분석기를 사용하여 취약점을 검사합니다.

GitLab SAST에서 기본적으로 지원하는 분석기 수를 줄이고 있으며, 이는 서로 다른 프로그래밍 언어에서 더 빠르고 일관된 사용자 경험을 제공하기 위한 장기전략의 일부입니다.

GitLab 16.0부터 GitLab SAST CI/CD 템플릿은 .NET용 Security Code Scan 기반 분석기를 더 이상 사용하지 않을 것이며, 지원 종료 상태가 될 것입니다. 이 분석기를 SAST CI/CD 템플릿에서 제거하고 Semgrep 기반 분석기로 대체할 것입니다.

즉시, 해당 분석기는 보안 업데이트만 받게 됩니다. 루틴 개선 사항이나 업데이트는 보장되지 않습니다. 해당 분석기가 GitLab 16.0에서 지원 종료가 되면 더 이상 업데이트가 제공되지 않습니다. 그러나 미리 게시된 컨테이너 이미지를 삭제하거나 사용자 정의 CI/CD 파이프라인 작업을 통해 실행할 수 없게 할 계획은 없습니다.

이미 제거된 분석기에서 취약점을 해결했으면 해당 분석기를 이전에 실행에서 제외했는지, 프로젝트의 취약점 보고서에서 처음으로 보고된 분석기에 따라 시스템 동작이 달라집니다.

자세한 내용은 취약점 번역 문서를 참조하세요.

영향을 받는 분석기에 사용자 지정이 적용된 경우 또는 현재 파이프라인에서 Semgrep 기반 분석기를 비활성화한 경우 이 변경 사항에 대한 폐기 문제에서의 조치를 취해야 합니다.

업데이트: 우리는 이 변경 사항의 범위를 축소했습니다. GitLab 16.0에서 다음과 같은 변경 사항을 더 이상 적용하지 않을 것입니다:

  1. PHPCS Security Audit를 기반으로 한 분석기 지원을 제거하고 Semgrep 기반 분석기에 GitLab 관리 감지 규칙으로 대체하기.
  2. Scala를 SpotBugs 기반 분석기의 범위에서 제외하고 Semgrep 기반 분석기에서 GitLab 관리 감지 규칙으로 대체하기.

PHPCS Security Audit 기반 분석기 지원을 제거하는 작업은 이슈 364060에서 추적되며, Scala 스캔을 Semgrep 기반 분석기로 마이그레이션하는 작업은 이슈 362958에서 추적됩니다.

Secure analyzers major version update

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

보안 단계는 GitLab 16.0 릴리스와 함께 분석기의 주요 버전을 업그레이드할 것입니다. 이 업그레이드로 분석기의 명확한 구분이 가능해지며 다음과 같은 사항으로 나눌 것입니다:

  • 2023년 5월 22일 이전에 릴리스된 것
  • 2023년 5월 22일 이후에 릴리스된 것

기본 제공 템플릿을 사용하지 않거나 분석기 버전을 고정시킨 경우 CI/CD 작업 정의를 업데이트하여 고정된 버전을 제거하거나 최신 주요 버전으로 업데이트해야 합니다. GitLab 13.0~15.10을 사용하는 사용자는 GitLab 16.0이 출시될 때까지 분석기 업데이트를 계속할 수 있으며, 그 후에는 새 주요 버전에서만 새로 고침된 버그 및 릴리스된 기능이 출시됩니다. 우리는 유지 보수 정책에 따라 버그와 기능을 폐기된 버전으로 되감지하지 않습니다. 필요한 경우 보안 패치는 최근 3개의 마이너 릴리스에 되감지될 것입니다. 구체적으로 다음 항목들이 폐기되어 16.0 GitLab 릴리스 이후로 더 이상 업데이트되지 않을 것입니다:

  • API Fuzzing: version 2
  • Container Scanning: version 5
  • Coverage-guided fuzz testing: version 3
  • Dependency Scanning: version 3
  • Dynamic Application Security Testing (DAST): version 3
  • DAST API: version 2
  • IaC Scanning: version 3
  • License Scanning: version 4
  • Secret Detection: version 4
  • Static Application Security Testing (SAST): 모든 분석기의 version 3
    • brakeman: version 3
    • flawfinder: version 3
    • kubesec: version 3
    • mobsf: version 3
    • nodejs-scan: version 3
    • phpcs-security-audit: version 3
    • pmd-apex: version 3
    • security-code-scan: version 3
    • semgrep: version 3
    • sobelow: version 3
    • spotbugs: version 3

Secure scanning CI/CD templates will use new job rules

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

보안 스캔을 위한 GitLab 관리 CI/CD 템플릿은 GitLab 16.0 릴리스에서 업데이트될 것입니다. 이 업데이트에는 이미 최신 버전의 CI/CD 템플릿에서 출시된 개선 사항이 포함될 것입니다. 이러한 변경 사항을 최신 템플릿 버전에서 이미 출시했는데, 이는 사용자 정의된 CI/CD 파이프라인 구성을 방해할 수 있기 때문입니다.

모든 업데이트된 템플릿에서 SAST_DISABLEDDEPENDENCY_SCANNING_DISABLED과 같은 변수 정의를 업데이트하여 값이 "true"인 경우에만 스캔이 비활성화되도록 합니다. 이전에는 값이 "false"라고 해도 스캔이 비활성화되었습니다.

다음 템플릿이 업데이트될 것입니다:

16.0 릴리스 이전에 위에서 나열된 템플릿을 사용하거나 _DISABLED 변수를 사용하지만 "true" 이외의 값을 설정한 경우 파이프라인을 테스트하는 것을 권장합니다.

업데이트: 이전에 영향을 받는 템플릿의 rulesMerge Request 파이프라인에서 기본적으로 실행되도록 업데이트할 것임을 발표했었습니다. 그러나 deprecated 이슈에서 토의된 호환성 문제로 인해 GitLab 16.0에서는 이 변경을 적용하지 않을 것입니다. 그러나 위에서 설명한대로 _DISABLED 변수의 변경은 여전히 배포될 것입니다.

Security report schemas version 14.x.x

  • GitLab 15.3에서 발표됨
  • GitLab 16.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 deprecated 이슈를 참조하세요.

14.x.x 버전 보안 보고서 스키마가 폐기되었습니다.

GitLab 15.8 이상의 버전에서 14.x.x 버전 스키마를 사용하는 보안 보고서 스캐너 통합는 파이프라인의 Security 탭에 폐기 경고가 표시됩니다.

GitLab 16.0 이상에서는 해당 기능이 제거될 것입니다. 14.x.x 버전 스키마를 사용하는 보안 보고서는 파이프라인의 Security 탭에서 오류를 발생시킬 것입니다.

더 많은 정보는 보안 보고서 유효성 검사를 참조하세요.

Kubernetes용 GitLab 에이전트 설정에서의 Starboard 지시어

  • GitLab 15.4에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

GitLab의 운영용 컨테이너 스캔 기능은 이제 Starboard가 설치되어야 하는 필요가 없어졌습니다. 따라서 Kubernetes용 GitLab 에이전트의 설정 파일에서 starboard: 지시어를 사용하는 것은 이제 사용이 중지되었으며, GitLab 16.0에서 제거 예정입니다. 구성 파일을 업데이트하여 container_scanning: 지시어를 사용하도록 하세요.

Windows Server 2004 및 20H2를 기반으로 하는 GitLab Runner 이미지의 게시 중단

  • GitLab 16.0에서 발표됨
  • GitLab 16.0에서 제거 예정
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

GitLab 16.0부터는 Windows Server 2004 및 20H2를 기반으로 하는 GitLab Runner 이미지가 제공되지 않을 것입니다. 이러한 운영 체제는 지원 중단될 예정입니다.

Praefect 사용자 정의 메트릭 엔드포인트 구성 지원

  • GitLab 15.9에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

GitLab 15.9에서 prometheus_exclude_database_from_default_metrics 구성 값을 사용하는 지원이 중지되며, GitLab 16.0에서 제거될 예정입니다. 이 구성 값을 사용하는 것은 성능이 좋지 않기 때문에 해당 구성 값을 제거하게 되었습니다. 이 변경으로 /metrics에서 다음 메트릭을 사용할 수 없게됩니다:

  • gitaly_praefect_unavailable_repositories.
  • gitaly_praefect_verification_queue_depth.
  • gitaly_praefect_replication_queue_depth.

이로 인해 메트릭 수집 대상을 추가하여 /db_metrics도 스크래핑해야 할 수 있습니다.

Terraform 상태 이름에 있는 점(.) 지원이 기존 상태를 손상시킬 수 있음

  • GitLab 15.7에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

이전에는 점을 포함하는 Terraform 상태 이름을 지원하지 않았습니다. 그러나 여전히 이러한 상태 이름을 사용할 수 있는 우회 방법을 사용할 수 있었습니다.

GitLab 15.7에서 점을 포함하는 상태 이름을 완전히 지원하게 되었습니다. 따라서 이러한 상태 이름을 처리하기 위해 우회 방법을 사용한 경우 작업이 실패할 수 있거나 처음으로 Terraform을 실행한 것처럼 보일 수도 있습니다.

이 문제를 해결하려면:

  1. 점과 그 뒤에 오는 문자를 제외한 상태 파일을 가리키는 모든 참조를 변경하십시오.
    • 예를 들어, 상태 이름이 state.name인 경우 모든 참조를 state로 변경하십시오.
  2. Terraform 명령을 실행하십시오.

점을 포함한 전체 상태 이름을 사용하려면, GitLab에서 관리되는 Terraform 상태로 이전해야 합니다.

Kubernetes를 위한 에이전트의 API는 더 이상 폐기된 토큰을 반환하지 않음

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

현재 클러스터 에이전트 API의 GET 요청은 폐기된 토큰을 반환할 수 있습니다. 그러나 GitLab 16.0에서 GET 요청은 폐기된 토큰을 반환하지 않을 것입니다.

이 업데이트를 받아들이기 위해 이 엔드포인트에 대한 호출을 확인하고 폐기된 토큰을 사용하지 않도록 해야 합니다.

이 변경은 다음의 REST 및 GraphQL API 엔드포인트에 영향을 미칩니다:

Phabricator 작업 가져오기 도구는 폐기됨

  • GitLab 15.7에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

Phabricator 작업 가져오기 도구가 폐기되고 있습니다. Phabricator 자체는 2021년 6월 1일 이후로 더 이상 활발하게 유지보수되지 않고 있습니다. 이 도구를 사용한 가져오기 활동을 관찰하지 못했습니다. GitLab과 관련된 오픈 이슈에 대한 활동이 없었습니다.

최신 Terraform 템플릿은 현재 안정적인 템플릿을 덮어씁니다

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세한 내용을 알아보려면 제거 문제를 참조하세요.

매번 주요 GitLab 버전이 업데이트될 때마다 안정적인 Terraform 템플릿을 최신 템플릿으로 업데이트합니다. 이 변경으로 quickstartbase 템플릿이 영향을 받습니다.

새 템플릿은 기본 규칙을 함께 제공하므로 업데이트는 Terraform 파이프라인을 손상시킬 수 있습니다. 예를 들어, 만약 Terraform 작업이 하류 파이프라인으로 트리거되는 경우 규칙이 GitLab 16.0에서 작업을 트리거하지 못할 수 있습니다.

변경에 대응하기 위해 .gitlab-ci.yml 파일의 rules을 조정해야 할 수 있습니다.

/draft 퀵 액션의 토글 동작 변경

  • GitLab 15.4에서 발표됨
  • GitLab 16.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 Deprecated 이슈를 참조하세요.

Merge Request의 드래프트 상태를 토글하는 동작을 더 명확하게 하기 위해 /draft 퀵 액션의 토글 동작을 폐기하고 제거합니다. GitLab 16.0 릴리스부터, /draft는 Merge Request를 드래프트 상태로 설정하며, 새로운 /ready 퀵 액션을 사용하여 드래프트 상태를 제거할 것입니다.

vulnerabilityFindingDismiss 뮤테이션에서 id 필드 사용

  • GitLab 15.3에서 발표됨
  • GitLab 16.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 Deprecated 이슈를 참조하세요.

vulnerabilityFindingDismiss GraphQL 뮤테이션을 사용하여 취약점 발견의 상태를 Dismissed로 설정할 수 있습니다. 이전에는 이 뮤테이션에서 고유하게 발견을 식별하기 위해 id 필드가 사용되었습니다. 그러나 이는 파이프라인 보안 탭에서 발견을 해제하는 데 사용되지 않았습니다. 그래서 식별자로서의 id 필드 사용이 중단되고 uuid 필드를 대신 사용하게 되었습니다. uuid 필드를 식별자로 사용하면 파이프라인 보안 탭에서 발견을 해제할 수 있습니다.

제 3자 컨테이너 레지스트리 사용이 폐지됨

  • GitLab 15.8에서 발표됨
  • GitLab 16.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 Deprecated 이슈를 참조하세요.

GitLab 15.8에서 GitLab과의 연동에 외부 레지스트리를 인증 엔드포인트로 사용하는 것이 폐지되었으며, GitLab 16.0에서 지원 종료가 예정되어 있습니다. 이는 외부 레지스트리를 Self-Managed형 고객이 GitLab 사용자 인터페이스에 연결하여 컨테이너 이미지를 찾고 보고 삭제하는 데 영향을 미칩니다.

GitLab의 컨테이너 레지스트리와 제 3자 컨테이너 레지스트리를 모두 지원하는 것은 유지 관리, 코드 품질 및 하위 호환성에 대한 도전이 됩니다. 이는 우리가 효율적으로 유지하는 것을 방해합니다. 결과적으로 앞으로 이러한 기능을 지원하지 않을 것입니다.

이 변경 사항은 파이프라인을 통해 외부 레지스트리로 컨테이너 이미지를 가져오고 푸시하는 데 영향을 미치지 않습니다.

GitLab.com을 위한 새로운 GitLab 컨테이너 레지스트리 버전을 출시한 이후, 우리는 정리 정책과 같은 중요한 성능 향상을 이루기 위해 새로운 기능을 추가하기 시작했습니다. 우리는 새로운 기능을 제공하고 있으며, 이러한 대부분은 GitLab 컨테이너 레지스트리에서만 사용 가능한 기능을 요구할 것입니다. 이 폐지로 인해 향후 사용자들이 더 견고한 통합된 레지스트리 경험 및 기능 세트를 제공하는 데 집중함으로써 장기적으로 부서진 경험과 사용자의 분열을 줄일 수 있게 될 것입니다.

앞으로는 GitLab 컨테이너 레지스트리에서만 사용 가능한 새로운 기능을 개발하고 출시하는 데 집중할 것입니다.

경로 끝에 글로벌 ID가 포함된 작업 항목 경로는 폐지됨

  • GitLab 15.10에서 발표됨
  • GitLab 16.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 Deprecated 이슈를 참조하세요.

작업 항목 URL에 글로벌 ID를 사용하는 것은 폐지되었습니다. 앞으로는 내부 ID (IID)만 지원됩니다.

GitLab은 여러 작업 항목 유형을 지원하므로 https://gitlab.com/gitlab-org/gitlab/-/work_items/<global_id>와 같은 경로는 작업 또는 OKR과 같은 것을 표시할 수 있습니다.

GitLab 15.10에서는 이러한 경로에서 내부 ID (IID)를 사용하도록하여 다음과 같은 형식으로 쿼리 매개변수를 추가함으로써 지원을 추가하였습니다: https://gitlab.com/gitlab-org/gitlab/-/work_items/<iid>?iid_path=true.

GitLab 16.0에서는 작업 항목 경로에서 글로벌 ID를 사용하는 기능이 제거됩니다. 경로 끝의 번호는 쿼리 매개변수를 추가하지 않고도 내부 ID (IID)로 간주됩니다. 다음 형식만 지원됩니다: https://gitlab.com/gitlab-org/gitlab/-/work_items/<iid>.

ZenTao 통합

  • GitLab 15.7에서 발표됨
  • GitLab 16.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 Deprecated 이슈를 참조하세요.

ZenTao 제품 통합이 폐지되고 JiHu GitLab 코드베이스로 이전될 것입니다.

CI_BUILD_* 사전 정의된 변수

  • GitLab 14.8에서 발표됨
  • GitLab 16.0에서 삭제됨 (breaking change)
  • 이 변경 사항에 대해 논의하거나 자세히 알아보려면 Deprecated 이슈를 참조하세요.

CI_BUILD_*로 시작하는 사전 정의된 CI/CD 변수들은 GitLab 9.0에서 폐기되었으며, GitLab 16.0에서 삭제될 것입니다. 이러한 변수를 여전히 사용하는 경우 해당하는 사전 정의된 변수로 바꾸어야 합니다. 기능적으로 완전히 동일한 대체 변수들은 다음과 같습니다:

삭제된 변수 대체 변수
CI_BUILD_BEFORE_SHA CI_COMMIT_BEFORE_SHA
CI_BUILD_ID CI_JOB_ID
CI_BUILD_MANUAL CI_JOB_MANUAL
CI_BUILD_NAME CI_JOB_NAME
CI_BUILD_REF CI_COMMIT_SHA
CI_BUILD_REF_NAME CI_COMMIT_REF_NAME
CI_BUILD_REF_SLUG CI_COMMIT_REF_SLUG
CI_BUILD_REPO CI_REPOSITORY_URL
CI_BUILD_STAGE CI_JOB_STAGE
CI_BUILD_TAG CI_COMMIT_TAG
CI_BUILD_TOKEN CI_JOB_TOKEN
CI_BUILD_TRIGGERED CI_PIPELINE_TRIGGERED

POST ci/lint API 엔드포인트가 사용되지 않게 됨

POST ci/lint API 엔드포인트는 15.7에서 사용되지 않게 되었으며, 16.0에서 제거될 예정입니다. 이 엔드포인트는 CI/CD 구성 옵션의 전체 범위를 검증하지 않습니다. 대신에 POST /projects/:id/ci/lint를 사용하세요. 이를 통해 CI/CD 구성이 적절하게 검증됩니다.

DORA API의 environment_tier 매개변수

혼란과 중복을 피하기 위해 environment_tier 매개변수가 environment_tiers 매개변수로 대체됩니다. 새로운 environment_tiers 매개변수를 사용하면 DORA API에서 동시에 여러 티어에 대한 집계된 데이터를 반환할 수 있습니다. environment_tier 매개변수는 GitLab 16.0에서 제거될 예정입니다.

started 이터레이션 상태

이터레이션 GraphQL API이터레이션 REST API에서 started 이터레이션 상태가 사용되지 않게 됩니다.

GraphQL API 버전은 GitLab 16.0에서 제거될 예정입니다. 이 상태는 다른 시간 기반 엔티티(예: 마일스톤)의 네이밍과 일치하는 current 상태(이미 사용 가능함)로 대체됩니다.

다음 v5 REST API 버전 이전까지는 REST API 버전에서 started 상태를 계속 지원할 계획입니다.

vulnerabilityFindingDismiss GraphQL 뮤테이션

VulnerabilityFindingDismiss GraphQL 뮤테이션이 사용되지 않게 되었으며, GitLab 16.0에서 제거될 예정입니다. 이 뮤테이션은 취약점 발견 ID가 사용자에게 제공되지 않았기 때문에 자주 사용되지 않았습니다(이 필드는 15.3에서 사용되지 않게 됨). 사용자는 대신 취약점 보고서에서 취약점을 해제하기 위해 VulnerabilityDismiss를, CI 파이프라인 보안 탭에서 보안 발견을 해제하기 위해 SecurityFindingDismiss를 사용해야 합니다.

GitLab 15.11

openSUSE Leap 15.3 패키지

  • GitLab 15.8에서 발표됨
  • GitLab 15.11에서 제거될 예정임
  • 이 변경에 대한 토론하거나 더 알아보려면 사용되지 않게 된 문제를 참조하세요.

openSUSE Leap 15.3의 배포 지원 및 보안 업데이트는 2022년 12월에 종료되었습니다.

GitLab 15.7부터 openSUSE Leap 15.4용 패키지를 제공하기 시작했으며, 15.11에서 openSUSE Leap 15.3용 패키지 제공을 중단할 것입니다.

  • openSUSE Leap 15.3 패키지에서 제공하는 것을 15.4 패키지로 전환하세요.

GitLab 15.10

Openstack Swift 및 Rackspace API를 사용한 자동 백업 업로드

Openstack Swift와 Rackspace API를 사용한 원격 스토리지로 백업을 업로드하는 지원이 사용되지 않게 됩니다. 이러한 API의 지원은 더 이상 활발히 유지되지 않는 써드파티 라이브러리에 의존하고 있으며 Ruby 3을 위해 업데이트되지 않았습니다. GitLab은 보안 패치에 대한 최신 업데이트를 유지하기 위해 Ruby 2의 EOL 이전에 Ruby 3로 전환하고 있습니다.

  • OpenStack을 사용 중이라면 Swift 대신 S3 API를 사용하도록 구성을 변경해야 합니다.
  • Rackspace 스토리지를 사용 중이라면 다른 제공 업체로 전환하거나 백업 작업이 완료된 후 백업 파일을 매뉴얼으로 업로드해야 합니다.

GitLab 15.9

Web IDE에서 Live Preview 더 이상 사용 불가

Web IDE의 Live Preview 기능은 정적 웹 애플리케이션의 클라이언트 측 미리보기를 제공하기 위해 만들어졌으나, 복잡한 구성 단계와 지원되는 프로젝트 유형의 한정된 집합으로 인해 유용성이 제한되었습니다. GitLab 15.7에서 Web IDE Beta를 도입함으로써 전체 서버 측 실행 환경에 연결할 수 있게 되었습니다. Web IDE에 확장 프로그램 설치를 지원할 예정이며, Live Preview보다 더 고급화된 워크플로우를 지원할 예정입니다. GitLab 15.9부터 Web IDE에서 Live Preview를 더 이상 사용할 수 없습니다.

쿠버네티스와의 인증서 기반 통합을 위한 SaaS

  • GitLab 14.5에서 발표
  • GitLab 15.9에서 삭제됨 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

쿠버네티스와의 인증서 기반 통합은 폐지되고 제거될 예정입니다. GitLab SaaS 고객으로서 새로운 네임스페이스에서는 GitLab 15.0부터 인증서 기반 접근 방식을 사용하여 GitLab과 클러스터를 연동할 수 없게 될 것입니다. 현재 사용자를 위한 통합은 네임스페이스 단위로 활성화될 것입니다.

더 견고하고 안전하며 미래에 사용될 쿠버네티스와의 통합을 위해 저희는 쿠버네티스 클러스터와 GitLab을 연결하기 위해 쿠버네티스용 에이전트를 사용하는 것을 권장합니다. 어떻게 마이그레이션하나요?

명시적인 제거 날짜가 설정되어 있지만, 새로운 솔루션이 기능적으로 동등해질 때까지 이 기능을 제거할 계획은 없습니다. 제거에 대한 더 많은 정보는 이 이슈에서 확인하세요.

폐지에 대한 업데이트 및 자세한 내용은 이 에픽을 팔로우하세요.

GitLab의 Self-Managed형 고객은 피처 플래그와 함께 해당 기능을 계속 사용할 수 있습니다.

</div>

omniauth-authentiq 젬 더 이상 사용 불가

  • GitLab 15.9에서 발표
  • GitLab 15.9에서 삭제됨 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

omniauth-authentiq는 GitLab의 일부인 OmniAuth 전략 젬입니다. 인증 서비스를 제공하는 기업인 Authentiq가 종료되어 해당 젬이 제거됩니다.

</div>

GitLab 15.7

.gitlab-ci.yml에서의 파일 유형 변수 확장

  • GitLab 15.5에서 발표
  • GitLab 15.7에서 삭제됨 (breaking change)
  • 이 변경에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

이전에 파일 변수의 값을 확장하는 변수는 파일 형식 변수의 값이 확장되었습니다. 예를 들어, 파일 내용입니다. 이 동작은 전형적인 셸 변수 확장 규칙을 준수하지 않아 잘못된 동작이었습니다. 파일 유형 변수에 저장된 비밀이나 민감한 정보를 노출하기 위해 사용자는 해당 변수를 입력 매개변수로 사용하여 $echo 명령을 실행할 수 있었습니다.

이 변경은 해당 문제를 해결하지만, 해당 동작을 우회하는 사용자의 워크플로우를 방해할 수 있습니다. 이 변경으로 참조하거나 별칭 파일 변수를 적용하는 작업 변수 확장은 해당 변수의 파일 이름이나 경로로 확장되며, 파일 내용처럼 확장되지 않습니다.

Flowdock 통합

  • GitLab 15.7에서 발표
  • GitLab 15.7에서 삭제됨
  • 이 변경에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

2022년 12월 22일 기준으로, Flowdock 통합은 2022년 8월 15일에 서비스가 종료되었기 때문에 제거될 예정입니다.

GitLab 15.6

Git 리포지터리 저장을 위한 NFS

  • GitLab 14.0에서 발표
  • GitLab 15.6에서 삭제됨

Gitaly 클러스터의 일반적인 가능성(GitLAb 13.0에서 소개)에 따라 Git 리포지터리 저장을 위한 NFS에 대한 개발(버그 수정, 성능 향상 등)이 GitLab 14.0에서 폐기되었습니다. 우리는 14.x를 통해 Git 리포지터리를 위한 NFS에 대한 기술 지원을 계속 제공할 것이지만, 2022년 11월 22일에 NFS에 대한 모든 지원을 중단할 것입니다. 이것은 원래 2022년 5월 22일에 계획되어 있었지만, Gitaly 클러스터의 계속된 성숙을 허용하기 위해 지원 기한을 연장한 것입니다. 추가 정보는 공식 지원 성명서를 참조하세요.

Gitaly 클러스터는 다음과 같은 고객에게 엄청난 이점을 제공합니다:

현재 NFS를 사용 중인 고객은 Gitaly 클러스터로의 마이그레이션을 계획하기 위해 저희의 문서를 검토해 보시기 바랍니다.

GitLab 15.4

번들된 Grafana 폐지 예정

  • GitLab 15.3에서 발표
  • GitLab 15.4에서 삭제됨
  • 이 변경에 대한 토론이나 자세한 내용은 폐지 이슈를 참조하세요.

GitLab 15.4에서 번들된 Grafana를 GitLab이 유지하는 Grafana 포크로 교체할 것입니다.

Grafana에 대한 확인된 CVE가 있으며, 이 보안 취약점을 완화하기 위해 이전 버전의 Grafana는 장기 지원을 더 이상 받지 않기 때문에 저희 자체 포크로 교체해야 합니다.

기존 버전의 Grafana를 사용할 때, 저희 번들된 버전 또는 외부의 Grafana 인스턴스를 사용 중에도 호환성 문제가 발생하지 않을 것으로 예상됩니다.

SAST 분석기 통합 및 CI/CD 템플릿 변경

  • GitLab 14.8에서 발표됨
  • GitLab 15.4에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하십시오.

GitLab SAST는 다양한 분석기를 사용하여 취약점을 검사합니다.

우리는 장기적인 전략의 일환으로 GitLab SAST에서 사용되는 분석기의 수를 줄이고 더 나은 및 일관된 사용자 경험을 제공하기 위해 노력하고 있습니다. 분석기 세트를 간소화하는 것은 빠른 반복, 더 나은 결과, 그리고 더 큰 효율성을 가능하게 할 것입니다(대부분의 경우 CI 러너 사용량이 줄어듭니다).

GitLab 15.4에서 GitLab SAST는 더 이상 다음 분석기를 사용하지 않습니다:

note
이 변경은 원래 GitLab 15.0에서 계획되었으나 GitLab 15.4로 연기되었습니다.

이 분석기는 GitLab 관리 SAST CI/CD 템플릿에서 제거되고 Semgrep 기반 분석기로 대체될 것입니다. 즉시, 이러한 분석기는 보안 업데이트만 받게 될 것이며, 기타 일반적인 개선 사항이나 업데이트는 보장되지 않습니다. 이러한 분석기가 지원 종료 상태에 도달하면 추가 업데이트가 제공되지 않을 것입니다. 이러한 분석기에 대해 이전에 발표된 컨테이너 이미지는 삭제되지 않을 것이며, 해당 변경은 폐기, 제거 또는 중단 변경 발표로 발표될 것입니다.

또한, SpotBugs 분석기의 범위에서 Java를 제거하고 Semgrep 기반 분석기로 대체할 것입니다. 이 변경으로 Java 코드를 스캔하는 것이 더 간단해지며, 더 이상 컴파일이 필요하지 않습니다. 이 변경은 GitLab 관리 SAST CI/CD 템플릿의 자동 언어 감지 부분에 반영될 것입니다. SpotBugs 기반 분석기는 앞으로 Groovy, Kotlin 및 Scala를 계속 지원할 것입니다.

이미 폐기된 분석기 중 하나로부터 취약점 결과를 이미 무시했다면, 대체 방법이 이전 상태를 존중하려고 시도할 것입니다. 시스템 동작은 다음에 따라 달라집니다:

  • 과거에 Semgrep 기반 분석기를 실행에서 제외했는지 여부
  • 프로젝트의 취약점 보고서에 표시된 취약점을 가장 먼저 발견한 분석기

자세한 내용은 취약점 번역 설명서를 참조하십시오.

이러한 분석기 중 하나에 사용자 정의를 적용했거나 현재 파이프라인에서 Semgrep 분석기를 비활성화했다면, 이 변경에 대한 폐기 이슈에 자세히 기술된 대로 조치를 취해야 합니다.

</div>

GitLab 15.3

취약점 보고서 상태로 정렬

  • GitLab 15.0에서 발표됨
  • GitLab 15.3에서 제거됨
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하십시오.

State 열로 취약점 보고서를 정렬하는 기능이 GitLab 14.10에서 사용 중지되고 피처 플래그 뒤에 감춰졌습니다. 층 모델의 재구성으로 인해 이 값으로 정렬하는 것이 여전히 성능을 유지하려면 추가적인 재구성이 필요했습니다. State 열의 정렬에 대한 사용이 매우 낮기 때문에 이 피처 플래그는 코드베이스를 단순화하고 원치 않는 성능 저하를 방지하기 위해 제거될 것입니다.

취약점 보고서 도구로 정렬

  • GitLab 15.1에서 발표됨
  • GitLab 15.3에서 제거됨
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하십시오.

도구 열(스캔 유형)로 취약점 보고서를 정렬하는 기능이 GitLab 14.10에서 사용 중지되고 피처 플래그 뒤에 감춰졌습니다. 층 모델의 재구성으로 인해 이 값으로 정렬하는 것이 여전히 성능을 유지하려면 추가적인 재구성이 필요했습니다. 도구 열의 정렬에 대한 사용이 매우 낮기 때문에 이 피처 플래그는 코드베이스를 단순화하고 원치 않는 성능 저하를 방지하기 위해 GitLab 15.3에서 제거될 것입니다.

GitLab 15.1

Debian 9 지원 폐기

  • GitLab 14.9에서 발표됨
  • GitLab 15.1에서 제거됨

Debian 9 Stretch의 장기 서비스 및 지원(LTSS)는 2022년 7월에 종료됩니다. 따라서, GitLab 패키지를 위한 Debian 9 배포를 더 이상 지원하지 않을 것입니다. 사용자는 Debian 10이나 Debian 11로 업그레이드할 수 있습니다.

GitLab 15.0

리포지터리 푸시 이벤트에 대한 감사 이벤트

  • GitLab 14.3에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토론하거나 자세히 알아보려면 폐기 이슈를 참조하십시오.

리포지터리 이벤트에 대한 감사 이벤트는 이제 폐기되었으며 GitLab 15.0에서 제거될 것입니다.

이러한 이벤트는 항상 기본적으로 비활성화되어 있었으며 피처 플래그로 매뉴얼으로 활성화해야 했습니다. 이러한 활성화는 너무 많은 이벤트가 생성되어 GitLab 인스턴스의 성능을 현격하게 저하시킬 수 있기 때문에 제거될 것입니다.

오브젝트 스토리지를 위한 배경 업로드

  • GitLab 14.9에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab의 오브젝트 스토리지 기능의 전반적인 복잡성과 유지 보수 부담을 줄이기 위해 파일을 업로드하기 위해 background_upload 사용 지원이 폐기되고 GitLab 15.0에서 완전히 제거될 예정입니다. 15.0별 변경 사항오브젝트 스토리지의 제거된 백그라운드 업로드 설정을 확인하세요.

이는 일부 오브젝트 스토리지 공급업체에 영향을 미칩니다:

  • OpenStack: OpenStack을 사용하는 고객은 Swift 대신 S3 API를 사용하도록 구성을 변경해야 합니다.
  • RackSpace: RackSpace 기반 오브젝트 스토리지를 사용하는 고객은 데이터를 다른 공급업체로 이관해야 합니다.

GitLab은 영향을 받는 고객을 지원하기 위해 추가 지침을 게시할 예정입니다.

CI/CD 작업 이름 길이 제한

  • GitLab 14.6에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab 15.0에서 CI/CD 작업 이름의 문자 수를 255자로 제한할 예정입니다. 255자 제한을 초과하는 작업 이름을 가진 파이프라인은 15.0 릴리스 이후로 작동하지 않게 됩니다.

인스턴스(공유) 러너를 프로젝트(특정) 러너로 변경

  • GitLab 14.5에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론이나 자세한 내용은 폐기 문제를 참조하세요.

GitLab 15.0에서 더 이상 인스턴스(공유) 러너를 프로젝트(특정) 러너로 변경할 수 없습니다.

사용자들은 종종 실수로 인스턴스 러너를 프로젝트 러너로 변경하고 나중에 다시 변경할 수 없는 경우가 있습니다. GitLab은 프로젝트 러너를 공유 러너로 변경하는 것을 허용하지 않습니다. 하나의 프로젝트를 위해 설정된 러너가 전체 인스턴스의 작업을 실행하도록 설정될 수 있기 때문에 보안 문제가 발생합니다. 여러 프로젝트에 러너를 추가해야 하는 관리자들은 한 프로젝트에 러너를 등록한 다음 관리자 보기로 이동하여 추가 프로젝트를 선택할 수 있습니다.

컨테이너 네트워크 및 호스트 보안

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)

GitLab의 컨테이너 네트워크 보안 및 컨테이너 호스트 보안 카테고리와 관련된 모든 기능이 GitLab 14.8에서 폐기되었으며 GitLab 15.0에서 제거될 예정입니다. 이러한 기능의 대체품이 필요한 사용자들은 외부에서 설치하고 관리할 수 있는 다음 오픈 소스 프로젝트를 평가하는 것을 권장합니다: AppArmor, Cilium, Falco, FluentD, Pod Security Admission. 이러한 기술을 GitLab에 통합하려면 원하는 Helm 차트를 클러스터 관리 프로젝트 템플릿에 추가하세요. 이러한 Helm 차트를 프로덕션 환경에 배포하려면 GitLab CI/CD를 통해 명령을 호출하세요.

이 변경의 일환으로 다음과 같은 특정 기능들이 GitLab에서 더 이상 사용되지 않으며 GitLab 15.0에서 제거될 예정입니다:

  • 보안 및 규정 준수 > 위협 모니터링 페이지.
  • 보안 및 규정 준수 > 정책 페이지에서 찾을 수 있는 Network Policy 보안 정책 유형.
  • GitLab을 통해 다음 기술과의 통합을 관리하는 기능: AppArmor, Cilium, Falco, FluentD 및 Pod Security Policies.
  • 위와 관련된 모든 API.

이 변경에 대한 추가적인 컨텍스트 또는 피드백을 제공하려면 저희의 오픈 폐기 문제를 참조하세요.

14.0.0 미만의 컨테이너 스캐닝 스키마

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거 예정

GitLab 15.0에서 14.0.0 미만 버전의 컨테이너 스캐닝 보고 스키마는 더 이상 지원되지 않을 예정입니다. 보고서에서 선언된 스키마 버전을 준수하지 않는 보고서는 GitLab 15.0에서 더 이상 지원되지 않을 것입니다.

파이프라인 작업 아티팩트로 컨테이너 스캐닝 보안 보고서를 출력하여 GitLab과 통합하는 서드파티 도구가 영향을 받습니다. 모든 출력 보고서가 14.0.0 이상의 정확한 스키마를 준수하도록 보장해야 합니다. 낮은 버전의 보고서나 선언된 스키마 버전을 준수하지 않는 보고서는 처리되지 않으며 취약점 결과가 MR(Merge Request), 파이프라인 또는 취약점 보고서에 표시되지 않을 것입니다.

전환을 돕기 위해 GitLab 14.10부터 미준수 보고서는 취약점 보고서에 경고가 표시됩니다.

14.0.0 미만의 커버리지 가이드 퍼징 스키마

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거 예정

GitLab 15.0에서 14.0.0 미만 버전의 커버리지 가이드 퍼징 보고 스키마는 더 이상 지원되지 않을 예정입니다. 보고서에서 선언된 스키마 버전을 준수하지 않는 보고서는 GitLab 15.0에서 더 이상 지원되지 않을 것입니다.

파이프라인 작업 아티팩트로 커버리지 가이드 퍼징 보안 보고서를 출력하여 GitLab과 통합하는 서드파티 도구가 영향을 받습니다. 모든 출력 보고서가 14.0.0 이상의 정확한 스키마를 준수하도록 보장해야 합니다. 낮은 버전의 보고서나 선언된 스키마 버전을 준수하지 않는 보고서는 처리되지 않으며 취약점 결과가 MR(Merge Request), 파이프라인 또는 취약점 보고서에 표시되지 않을 것입니다.

전환을 돕기 위해 GitLab 14.10부터 미준수 보고서는 취약점 보고서에 경고가 표시됩니다.

14.0.0 이하 DAST 스키마

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨

DAST 보고서 스키마는 14.0.0보다 이전 버전이 GitLab 15.0에서 더 이상 지원되지 않습니다. 보고서 중 선언된 스키마 버전을 통과하지 못하는 경우 GitLab 15.0부터 더 이상 지원되지 않을 것입니다.

GitLab와 파이프라인 작업 artifact로 DAST 보안 보고서를 출력하여 GitLab과 통합하는 제3자 도구가 영향을 받습니다. 모든 출력 보고서가 올바른 스키마를 준수하는지, 최소 버전이 14.0.0인지 확인해야 합니다. 낮은 버전의 보고서 또는 선언된 스키마 버전을 통과하지 못하는 보고서는 처리되지 않으며 취약점 결과는 MR, 파이프라인 또는 취약점 보고서에 표시되지 않습니다.

이 전환이 도움이 되도록, GitLab 14.10부터는 불합격 보고서가 경고가 표시됩니다.

Dependency Scanning Python 3.9 및 3.6 이미지 폐기

파이썬 프로젝트에서 의존성 스캐닝을 사용하는 경우, 기본적으로 Python 3.6을 사용하는 gemnasium-python:2 이미지와 Python 3.9를 사용하는 사용자 정의 gemnasium-python:2-python-3.9 이미지를 폐기합니다. GitLab 15.0부터의 새 기본 이미지는 Python 3.9로, 이는 지원되는 버전이며 3.6은 지원되지 않음을 참조하십시오.

Python 3.9 또는 3.9 호환 프로젝트를 사용하는 사용자는 조치를 취할 필요가 없으며, GitLab 15.0에서 의존성 스캐닝이 작동하기 시작해야 합니다. 새 컨테이너를 테스트하려면 프로젝트에서 테스트 파이프라인을 실행하세요 (15.0에서 제거될 것입니다). Python 3.9 이미지를 사용하세요:

gemnasium-python-dependency_scanning:
  image:
    name: registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium-python:2-python-3.9

Python 3.6을 사용하는 사용자는 GitLab 15.0부터 기본 템플릿을 더 이상 사용할 수 없습니다. 사용자는 폐기된 gemnasium-python:2 분석기 이미지를 사용하도록 전환해야 합니다. 이에 영향을 받는 경우 이 이슈에 댓글을 남기세요하여 필요한 경우 제거 기간을 연장할 수 있도록 합니다.

3.9 특별 예외 이미지를 사용하는 사용자는 대신 기본 값을 사용하고 컨테이너를 더 이상 재정의하지 말아야 합니다. 3.9 특별 예외 이미지를 사용 중인지 확인하려면 .gitlab-ci.yml 파일에서 다음 참조를 확인하세요:

gemnasium-python-dependency_scanning:
  image:
    name: registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium-python:2-python-3.9

의존성 스캐닝 기본 Java 버전을 17로 변경

GitLab 15.0에서 의존성 스캐닝을 위해 스캐너가 기대하는 Java의 기본 버전이 11에서 17로 업데이트됩니다. Java 17은 가장 최신의 장기 지원(LTS) 버전입니다. 의존성 스캐닝은 여전히 지원되는 버전(8, 11, 13, 14, 15, 16, 17)을 지원하며 기본 버전만 변경됩니다. 프로젝트가 이전 기본 Java 11을 사용하는 경우 DS_Java_Version 변수를 일치시키도록 설정하세요.

14.0.0 이하 의존성 스캐닝 스키마

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨

의존성 스캐닝 보고서 스키마는 14.0.0보다 이전 버전이 GitLab 15.0에서 더 이상 지원되지 않습니다. 보고서 중 선언된 스키마 버전을 통과하지 못하는 경우 GitLab 15.0부터 더 이상 지원되지 않을 것입니다.

GitLab와 파이프라인 작업 artifact로 의존성 스캐닝 보안 보고서를 출력하여 GitLab과 통합하는 제3자 도구가 영향을 받습니다. 모든 출력 보고서가 올바른 스키마를 준수하는지, 최소 버전이 14.0.0인지 확인해야 합니다. 낮은 버전의 보고서 또는 선언된 스키마 버전을 통과하지 못하는 보고서는 처리되지 않으며 취약점 결과는 MR, 파이프라인 또는 취약점 보고서에 표시되지 않습니다.

이 전환이 도움이 되도록, GitLab 14.10부터는 불합격 보고서가 경고가 표시됩니다.

Geo 관리자 UI 경로 폐기

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거됨
  • 이 변경에 대한 토론이나 자세한 내용을 알아보려면 폐기 사항 이슈을 확인하세요.

GitLab 13.0에서 Geo 관리자 UI에서 새 프로젝트 및 디자인 복제 세부 사항 경로를 도입했습니다. 이러한 경로는 /admin/geo/replication/projects/admin/geo/replication/designs입니다. 이전 경로를 유지하며 이를 새 경로로 리디렉션했습니다. GitLab 15.0에서는 이전 경로인 /admin/geo/projects/admin/geo/designs의 지원이 제거됩니다. 이전 경로를 사용할 수 있도록 북마크 또는 스크립트를 업데이트하세요.

사용자 정의 Geo:db:* Rake 작업 폐기

  • GitLab 14.8에서 발표
  • GitLab 15.0에서 폐기 예정
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 사안을 참조하세요.

GitLab 14.8에서 Geo 추적 데이터베이스를 Rails’ 6에서 지원하는 다중 데이터베이스로 전환한 후에 이제 내장된 작업으로 geo:db:* Rake 작업을 대체하고 있습니다. 다음과 같은 geo:db:* 작업은 각각 해당하는 db:*:geo 작업으로 대체될 것입니다:

  • geo:db:drop -> db:drop:geo
  • geo:db:create -> db:create:geo
  • geo:db:setup -> db:setup:geo
  • geo:db:migrate -> db:migrate:geo
  • geo:db:rollback -> db:rollback:geo
  • geo:db:version -> db:version:geo
  • geo:db:reset -> db:reset:geo
  • geo:db:seed -> db:seed:geo
  • geo:schema:load:geo -> db:schema:load:geo
  • geo:db:schema:dump -> db:schema:dump:geo
  • geo:db:migrate:up -> db:migrate:up:geo
  • geo:db:migrate:down -> db:migrate:down:geo
  • geo:db:migrate:redo -> db:migrate:redo:geo
  • geo:db:migrate:status -> db:migrate:status:geo
  • geo:db:test:prepare -> db:test:prepare:geo
  • geo:db:test:load -> db:test:load:geo
  • geo:db:test:purge -> db:test:purge:geo

특성 플래그 PUSH_RULES_SUPERSEDE_CODE_OWNERS 폐기

  • GitLab 14.8에서 발표
  • GitLab 15.0에서 폐기 예정 (중단 변경)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 사안을 참조하세요.

특성 플래그 PUSH_RULES_SUPERSEDE_CODE_OWNERS는 GitLab 15.0에서 제거될 예정입니다. 이 제거로 인해 푸시 규칙이 코드 소유자를 대체하게 될 것입니다. 코드 소유자의 승인이 필요한 경우에도, 명시적으로 특정 사용자가 코드를 푸시할 수 있도록 허용하는 푸시 규칙이 코드 소유자 설정을 우선시합니다.

Elasticsearch 6.8 폐기

  • GitLab 14.8에서 발표
  • GitLab 15.0에서 폐기 예정 (중단 변경)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 사안을 참조하세요.

Elasticsearch 6.8은 GitLab 14.8에서 폐기 예정이며 GitLab 15.0에서 삭제될 예정입니다. Elasticsearch 6.8을 사용하는 고객은 GitLab 15.0로 업그레이드하기 전에 Elasticsearch 버전을 7.x로 업그레이드해야 합니다. 모든 Elasticsearch 개선 사항을 활용하기 위해 Elasticsearch 7의 최신 버전을 사용하는 것을 권장합니다.

또한 Elasticsearch 6.8은 Amazon OpenSearch과 호환되지 않으며, 우리는 GitLab 15.0에서 지원할 계획입니다.

보안 보고서 스키마 강제 유효성 검사

  • GitLab 14.7에서 발표
  • GitLab 15.0에서 폐기 예정
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 사안을 참조하세요.

보안 보고서 스키마의 14.0.0 이전 버전은 GitLab 15.0에서 더 이상 지원되지 않습니다. 보고서에서 선언된 스키마 버전을 준수하지 않는 보고서도 GitLab 15.0에서는 더 이상 지원되지 않을 것입니다.

보안 도구는 파이프라인 작업 artefakt로 GitLab과 통합하는 경우 영향을 받습니다. 모든 출력 보고서가 정확한 스키마를 준수함과 최소한 14.0.0 버전의 스키마를 사용함을 보장해야 합니다. 낮은 버전의 보고서나 선언된 스키마 버전을 검증하지 못하는 보고서는 처리되지 않으며 취약점 발견은 MR(Merge Request), 파이프라인 또는 취약성 보고서에 표시되지 않을 것입니다.

이 전환을 돕기 위해 GitLab 14.10부터 준수하지 않는 보고서는 취약성 보고서에서 경고가 표시될 것입니다.

외부 상태 확인 API 중단 변경

  • GitLab 14.8에서 발표
  • GitLab 15.0에서 제거 예정 (중단 변경)

외부 상태 확인 API는 원래 상태 확인을 통과하는 요청을 지원하도록 구현되었습니다. 이제 이러한 pass-by-default 요청이 폐기됩니다. 구체적으로 다음이 폐기되었습니다:

  • status 필드가 없는 요청
  • status 필드가 approved로 설정된 요청

GitLab 15.0부터 상태 확인은 status 필드가 존재하고 passed로 설정된 경우에만 업데이트됩니다. 다음과 같은 요청은 다음과 같은 결과를 초래할 것입니다:

  • status 필드가 없는 경우 422 오류로 거부됩니다. 자세한 정보는 해당 이슈를 참조하세요.
  • passed가 아닌 값이 포함된 경우 상태 확인이 실패합니다. 자세한 정보는 해당 이슈를 참조하세요.

이 변경과 일치하도록 외부 상태 확인을 나열하는 API 호출은 이제 approved가 아닌 passed의 값을 반환할 것입니다.

GitLab Pages 데몬으로 실행

  • GitLab 14.9에서 발표됨
  • GitLab 15.0에서 제거됨

15.0에서 GitLab Pages의 데몬 모드 지원이 제거될 예정입니다.

GitLab Serverless

  • GitLab 14.3에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경에 대해 논의하거나 자세히 알아보려면 제외 이슈를 참조하세요.

GitLab Serverless는 Knative 기반의 서버리스 개발을 지원하며 자동 배포 및 모니터링을 제공하는 기능 세트입니다.

우리는 GitLab Serverless 기능을 제거하기로 결정했습니다. 왜냐하면 이 기능이 사용자들과 잘 맞지 않았기 때문입니다. 게다가 Kubernetes 및 Knative의 지속적인 개발을 고려하면, 우리의 현재 구현은 최신 버전과도 작동하지 않습니다.

라이선스 컴플라이언스에서의 Godep 지원

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨
  • 이 변경에 대해 논의하거나 자세히 알아보려면 제외 이슈를 참조하세요.

Golang의 Godep 의존성 관리자는 2020년에 Go에 의해 사용 중지되었으며 Go 모듈로 대체되었습니다. 유지 보수 비용을 줄이기 위해 우리는 14.7부터 Godep 프로젝트의 라이선스 컴플라이언스를 사용 중단하고 GitLab 15.0에서 제거할 예정입니다.

GraphQL ID 및 GlobalID 호환성

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경에 대해 논의하거나 자세히 알아보려면 제외 이슈를 참조하세요.

우리는 역호환성을 위해 GraphQL 프로세서에 비표준 확장을 제거합니다. 이 확장은 GraphQL 쿼리의 유효성을 수정하여 일반적으로 거부되는 경우에도 ID 타입을 인수로 사용할 수 있도록 합니다. 일부 인수는 원래 ID 타입을 가지고 있었습니다. 이들은 특정 종류의 ID로 변경되었습니다. 이 변경은 다음과 같은 경우에 파급 효과가 있을 수 있습니다:

  • GraphQL을 사용합니다.
  • 쿼리 서명에서 ID 타입을 사용합니다.

일부 필드 인수는 여전히 ID 타입을 가지고 있습니다. 이는 일반적으로 IID 값이거나 네임스페이스 경로입니다. 예를 들면 Query.project(fullPath: ID!)입니다.

영향을 받는 필드 인수 및 영향을 받지 않는 필드 인수 디렉터리에 대한 자세한 내용은 제외 이슈를 참조하세요.

이 변경이 여러분에게 영향을 주는지를 테스트하려면 로컬에서 쿼리를 유효성 검사하고 GitLab 서버에서 가져온 스키마 데이터를 사용하여 테스트해 볼 수 있습니다. 해당 GitLab 인스턴스의 GraphQL 탐색기 도구를 사용하여 이를 수행할 수 있습니다. 예를 들면: https://gitlab.com/-/graphql-explorer.

예를 들어, 다음 쿼리가 이 변경을 보여줍니다:

# 폐기된 유형의 Query.issue(id:)를 사용하는 쿼리
# 경고: 이것은 GitLab 15.0 이후에 작동하지 않습니다.
query($id: ID!) {
  deprecated: issue(id: $id) {
    title, description
  }
}

위의 쿼리는 GitLab 15.0 이후에 작동하지 않을 것입니다. 왜냐하면 Query.issue(id:)의 유형은 실제로 IssueID!입니다.

대신에 다음 두 형태 중 하나를 사용해야 합니다:

# 계속해서 작동합니다
query($id: IssueID!) {
  a: issue(id: $id) {
    title, description
  }
  b: issue(id: "gid://gitlab/Issue/12345") {
    title, description
  }
}

이 쿼리는 현재 작동하며, GitLab 15.0 이후에도 계속해서 작동합니다. 첫 번째 형태의 쿼리(서명에서 ID를 명명된 유형으로 사용)를 다른 두 형태 중 하나로 변환해야 합니다(서명에서 올바른 유형을 사용하거나 인라인 인수 식을 사용).

패키지 설정을 위한 GraphQL 권한 변경

  • GitLab 14.9에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)

GitLab 패키지 단계는 패키지 레지스트리, 컨테이너 레지스트리 및 GitLab을 사용하여 모든 의존성을 관리하는 데 도움이 되는 의존성 프록시를 제공합니다. 각각의 제품 범주에는 API를 사용하여 조정할 수 있는 다양한 설정이 있습니다.

GraphQL의 권한 모델이 업데이트됩니다. 15.0 이후로 게스트, 리포터 및 개발자 역할을 하는 사용자는 더 이상 다음 설정을 업데이트할 수 없습니다:

GitLab Runner SSH 실행기를 위한 호스트 필요 사항

  • GitLab 14.5에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경에 대해 논의하거나 자세히 알아보려면 제외 이슈를 참조하세요.

GitLab 14.3에서 GitLab Runner의 config.toml 파일에 구성 설정을 추가했습니다. 이 설정인 [runners.ssh.disable_strict_host_key_checking]은 SSH 실행기에서 엄격한 호스트 키 확인을 사용할지 여부를 제어합니다.

GitLab 15.0 및 이후에서 이 구성 옵션의 기본값은 true에서 false로 변경될 예정입니다. 이는 GitLab Runner SSH 실행기를 사용할 때 엄격한 호스트 키 확인이 강제됨을 의미합니다.

License Compliance API에서의 레거시 승인 상태 이름

  • GitLab 14.6에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경에 대해 논의하거나 자세히 알아보려면 제외 이슈를 참조하세요.

우리는 managed_licenses API에서 라이선스 정책의 승인 상태에 대한 레거시 이름(blacklisted, approved)을 사용 중지했지만 여전히 우리의 API 쿼리 및 응답에서 사용 중입니다. 이들은 15.0에서 제거될 것입니다.

만약 당신이 우리의 License Compliance API를 사용 중이라면 approvedblacklisted 쿼리 매개변수를 사용 중지해야 합니다. 이제 이들은 alloweddenied입니다. 15.0에서 응답도 approvedblacklisted 사용을 중단하므로 15.0 릴리스 시에 여러분의 사용자 정의 도구를 조정해야 합니다.

```

레거시 데이터베이스 구성

  • GitLab 14.3에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

GitLab 데이터베이스 구성의 구문은 database.yml에 있으며 레거시 형식은 폐기되고 있습니다. 레거시 형식은 단일 PostgreSQL 어댑터를 사용했으며, 새로운 형식은 여러 데이터베이스를 지원하도록 변경 중입니다. main: 데이터베이스는 첫 번째 구성 항목으로 정의해야 합니다.

이 폐기는 주로 사용자가 소스에서 GitLab을 컴파일할 때 옴니버스가 이 구성을 자동으로 처리하기 때문에 영향을 미칩니다.

GitLab에서의 로깅

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

GitLab의 로깅 기능을 사용하면 ELK 스택 (Elasticsearch, Logstash 및 Kibana)을 설치하여 애플리케이션 로그를 집계하고 관리할 수 있습니다. 사용자는 GitLab에서 관련 로그를 검색할 수 있습니다. 그러나 Kubernetes 클러스터 및 GitLab 관리 앱과의 인증서 기반 통합을 폐기한 이후 GitLab 내에서의 로깅에 대한 권장 솔루션이 없어졌습니다. 자세한 정보는 GitLab과의 Opstrace 통합 문제를 따를 수 있습니다.

custom_hooks_dir 설정을 GitLab Shell에서 Gitaly로 이동

  • GitLab 14.9에서 발표됨
  • GitLab 15.0에서 제거 예정

custom_hooks_dir 설정은 이제 Gitaly에서 구성되며, GitLab Shell에서 GitLab 15.0에서 제거될 예정입니다.

OAuth 암시적 그랜트

  • GitLab 14.0에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)

다음 주요 릴리스인 GitLab 15.0에서 OAuth 암시적 그랜트 권한 부여 흐름이 제거될 예정입니다. OAuth 암시적 그랜트를 사용하는 모든 애플리케이션은 대체할 지원되는 OAuth 흐름으로 전환해야 합니다.

만료되지 않는 OAuth 토큰

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)

기본적으로 모든 새 애플리케이션은 2시간 후에 액세스 토큰이 만료됩니다. GitLab 14.2 이전에서는 OAuth 액세스 토큰의 만료 기간이 없었습니다. GitLab 15.0에서 기존 토큰에 대해 만료가 자동 생성됩니다.

GitLab 15.0이 출시되기 전에 액세스 토큰 만료옵션을 선택하여 활성화해야 합니다:

  1. 애플리케이션을 편집합니다.
  2. 액세스 토큰 만료를 선택하여 활성화합니다. 토큰은 폐기되거나 만료되지 않습니다.

OmniAuth Kerberos gem

  • GitLab 14.3에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

다음 주요 릴리스인 GitLab 15.0에서 omniauth-kerberos 젬이 제거될 예정입니다.

이 젬은 유지되지 않았으며 사용량이 매우 적습니다. 따라서 이 인증 방법에 대한 지원을 제거하고 기존 omniauth-kerberos 통합에서 Kerberos SPNEGO 통합을 사용하도록 권장합니다. 이 변경에 대한 업그레이드 지침을 따라 omniauth-kerberos 통합에서 지원되는 통합으로 업그레이드할 수 있습니다.

이전 패스워드 기반의 케르버스 통합을 폐기하는 게 아니라는 점을 유의하세요.

PAT 만료의 선택적 강제 수행

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

PAT 만료 강제 수행을 비활성화하는 기능은 보안적인 측면에서 일반적이지 않습니다. 이 이상한 기능이 사용자에게 예기치 않은 동작을 만들어낼 수 있다는 점에 관심을 가지고 있습니다. 보안 기능에서의 예기치 않은 동작은 기본적으로 위험하므로 이 기능을 제거하기로 결정했습니다.

SSH 만료의 선택적 강제 수행

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

SSH 만료 강제 수행을 비활성화하는 기능은 보안적인 측면에서 일반적이지 않습니다. 이 이상한 기능이 사용자에게 예기치 않은 동작을 만들어낼 수 있다는 점에 관심을 가지고 있습니다. 보안 기능에서의 예기치 않은 동작은 기본적으로 위험하므로 이 기능을 제거하기로 결정했습니다.

Java 8에 대한 Out-of-the-box SAST 지원

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 폐기 문제를 참조하세요.

GitLab SAST SpotBugs 분석기Java, Scala, Groovy 및 Kotlin 코드를 보안 취약점에 대해 스캔합니다. 기술적인 이유로 분석기는 스캔하기 전에 코드를 먼저 컴파일해야 합니다. 사전 컴파일 전략을 사용하지 않는 경우 분석기가 프로젝트 코드를 자동으로 컴파일하려고 시도합니다.

GitLab 15.0 이전 버전에서 분석기 이미지에는 Java 8 및 Java 11 런타임이 포함되어 컴파일이 용이하도록 지원되었습니다.

GitLab 15.0에서는:

  • 이미지 크기를 줄이기 위해 분석기 이미지에서 Java 8을 제거합니다.
  • Java 17을 분석기 이미지에 추가하여 Java 17로 컴파일하기 쉽도록 합니다.

분석기 환경에 Java 8이 필요하다면 이 변경을 위한 폐기 문제에서 설명된 조치를 취해야 합니다.

고급 검색 마이그레이션의 오래된 인덱스

고급 검색 마이그레이션은 보통 오랜 기간 동안 여러 코드 경로를 지원해야 하므로, 안전하게 정리할 수 있는 경우에 정리하는 것이 중요합니다. 우리는 GitLab 주요 버전 업그레이드를 안전한 시점으로 사용하여 완전히 마이그레이션되지 않은 인덱스의 역호환성을 제거합니다. 자세한 내용은 업그레이드 문서를 참조하세요.

익명화자

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨
  • 이 변경 사항을 논의하거나 자세히 알아보려면 사라질 사항 이슈를 확인하세요.

익명화자 기능은 일반적으로 사용되지 않으며, 대규모 데이터베이스에서 프로덕션 문제를 일으킬 수 있으며, 오브젝트 리포지터리 개발에 방해가 될 수 있습니다. 이것은 이제 사용이 중지된 상태이며, GitLab 15.0에서 제거될 예정입니다.

instanceStatisticsMeasurements GraphQL 노드를 통한 사용 트렌드 조회

instanceStatisticsMeasurements GraphQL 노드는 13.10에서 usageTrendsMeasurements로 이름이 변경되었으며, 이전 필드 이름이 사용이 중지되었습니다. 기존의 GraphQL 쿼리를 수정하려면 instanceStatisticsMeasurementsusageTrendsMeasurements로 대체하세요.

요청 프로파일링

요청 프로파일링은 GitLab 14.8에서 사용이 중지되었으며, GitLab 15.0에서 제거 예정입니다.

우리는 프로파일링 도구를 통합하고 보다 쉽게 접근할 수 있도록 만들고 있습니다. 우리는 이 기능의 사용을 평가했고, 광범위하게 사용되지 않는 것으로 확인했습니다. 또한 최신 버전의 루비로 업데이트되지 않거나 무거운 페이지 로드를 프로파일링할 때 빈번하게 충돌하는 몇 가지 타사 젬에 의존합니다.

자세한 내용은 사라질 사항 이슈의 요약 섹션을 확인하세요.

Premium 티어에서 필수 파이프라인 구성

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)

Premium 고객을 대상으로 한 필수 파이프라인 구성 기능은 GitLab 14.8에서 사용 중지되었으며, GitLab 15.0에서 제거되기로 예정되어 있습니다. 이 기능은 GitLab Ultimate 고객에게는 사용이 중지되지 않습니다.

본 특징을 GitLab의 Ultimate 티어로 이전하는 변경 사항은 이 기능이 주로 익스큐티브에서 수요가 있다는 점을 감안하여 우리의 가격 책정 철학과 더 잘 일치하도록 하기 위한 것입니다.

또한, 이 변경 사항은 GitLab이 다른 관련 Ultimate 티어 기능들과 일관된 철학으로 티어를 구성할 수 있도록 하는 데도 도움이 될 것입니다: 보안 정책컴플라이언스 프레임워크 파이프라인.

Retire-JS 의존성 스캐닝 도구

14.8부터 retire.js 작업은 의존성 스캐닝에서 사용이 중지되었습니다. 사용이 중지된 상태에서도 CI/CD 템플릿에 계속 포함될 예정입니다. retire.js는 2022년 5월 22일에 GitLab 15.0에서 의존성 스캐닝에서 제거될 예정입니다. 자바스크립트 스캔 기능은 여전히 Gemnasium에서 처리될 예정입니다.

DS_EXCLUDED_ANALYZERS를 사용하여 명시적으로 retire.js를 제외시킨 경우, 15.0에서 참조를 정리해야 합니다. retire-js-dependency_scanning과 관련하여 파이프라인의 의존성 스캐닝 구성을 사용자 정의했다면, 제거 전에 retire-js-dependency_scanning을 gemnasium-dependency_scanning으로 전환하여 파이프라인이 실패하지 않도록 해야 합니다. retire.js를 참조하기 위해 DS_EXCLUDED_ANALYZERS를 사용하지 않았거나 retire.js에 특별히 템플릿을 사용자 정의하지 않았다면 조치할 필요가 없습니다.

14.0.0 미만의 SAST 스키마

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨

GitLab 15.0에서 14.0.0 이전의 SAST 보고 스키마는 더 이상 지원되지 않을 것입니다. 보고서가 보고서에서 선언된 스키마 버전을 기준으로 유효성을 검사하지 못하거나 낮은 버전일 경우, 더 이상 처리되지 않을 것입니다.

GitLab과 통합하여 파이프라인 작업 인자로 SAST 보안 보고서를 출력하는 타사 도구가 영향을 받습니다. 모든 출력 보고서가 올바른 스키마를 준수하도록 보장해야 합니다. 14.10부터 미준수 보고서는 취약점 보고서에서 경고가 표시됩니다.

.NET 2.1에 대한 SAST 지원

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (중단 변경)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 중단 이슈를 참조하세요.

GitLab SAST 보안 코드 스캔 분석기는 .NET 코드의 보안 취약점을 검사합니다. 기술적인 이유로 분석기는 먼저 코드를 빌드한 후에 검사해야 합니다.

GitLab 15.0 이전 버전에서는 기본 분석기 이미지(버전 2)가 다음을 지원합니다:

  • .NET 2.1
  • .NET 3.0 및 .NET Core 3.0
  • .NET Core 3.1
  • .NET 5.0

GitLab 15.0에서는 이 분석기의 기본 major 버전을 버전 2에서 버전 3으로 변경할 것입니다. 이 변경은 다음과 같습니다:

3 버전은 GitLab 14.6에서 발표되었으며 옵션 업그레이드로 사용할 수 있습니다.

분석기 이미지의 기본값으로 .NET 2.1 지원을 필요로 하는 경우, 이 변경에 대한 중단 이슈에서 설명된 대로 조치해야 합니다.

Secret Detection 구성 변수 폐지

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정
  • 이 변경에 대해 토론하거나 자세히 알아보려면 중단 이슈를 참조하세요.

GitLab Secret Detection을 사용자 정의하는 것을 간단하고 더 안정적으로 만들기 위해 이전에 CI/CD 구성에서 설정할 수 있던 일부 변수를 폐지합니다.

다음 변수는 현재 허용되지만 GitLab 관리 CI/CD 템플릿과 상호작용이 나쁜 변수로 지금은 폐지됩니다:

  • SECRET_DETECTION_COMMIT_FROM
  • SECRET_DETECTION_COMMIT_TO
  • SECRET_DETECTION_COMMITS
  • SECRET_DETECTION_COMMITS_FILE

이전에 SECRET_DETECTION_ENTROPY_LEVEL을 사용하여 코드베이스의 문자열 엔트로피 수준만을 고려하는 규칙을 구성할 수 있었으나 이제는 사용하지 않는 폐지되었습니다. 이 유형의 엔트로피만을 고려한 규칙은 잘못된 결과(가짜 양성)를 많이 생성하여 더는 지원되지 않습니다.

GitLab 15.0에서 Secret Detection 분석기를 이러한 폐지된 옵션을 무시하도록 업데이트할 것입니다. 여전히 SECRET_DETECTION_HISTORIC_SCAN CI/CD 변수를 설정하여 커밋 기록의 기간 스캔을 구성할 수 있습니다.

자세한 내용은 이 변경에 대한 중단 이슈를 참조하세요.

14.0.0 미만의 Secret detection 스키마

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거 예정

Secret detection 보안 보고서 스키마의 14.0.0 이전 버전은 GitLab 15.0에서 더 이상 지원되지 않을 것입니다. 보고서가 선언된 스키마 버전을 준수하지 않는 보고서도 그 후부터는 더 이상 지원되지 않을 것입니다.

GitLab과 통합하여 파이프라인 작업 artifact로 Secret detection 보고서를 출력하는 타사 도구가 영향을 받습니다. 모든 출력 보고서가 정확한 스키마를 준수하도록 보장해야 합니다. 최소 버전이 14.0.0인 올바른 스키마를 준수하지 않거나 선언된 스키마 버전과 유효성을 검사하지 못하는 보고서는 MR, 파이프라인 또는 취약점 보고서에 표시되지 않을 것입니다.

전환을 돕기 위해 GitLab 14.10부터 비준수 보고서에 경고가 표시될 것입니다.

새 위치에 출판된 Secure 및 Protect 분석기 이미지

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경에 대해 토론하거나 자세히 알아보려면 중단 이슈를 참조하세요.

GitLab은 보안 취약점을 스캔하기 위한 분석기를 사용합니다. 각 분석기는 컨테이너 이미지로 배포됩니다.

GitLab 14.8부터 새 버전의 GitLab Secure 및 Protect 분석기가 registry.gitlab.com/security-products의 새 레지스트리 위치에 출판됩니다.

기본적으로 GitLab 관리 CI/CD 템플릿의 값을 다음과 같이 업데이트할 것입니다:

  • Container Scanning을 제외한 모든 분석기에 대해 기본값 SECURE_ANALYZERS_PREFIX를 새 이미지 레지스트리 위치로 업데이트할 것입니다.
  • Container Scanning의 경우 이미지 주소는 이미 업데이트되었습니다. Container Scanning에 대한 SECURE_ANALYZERS_PREFIX 변수는 없습니다.

미래 릴리스에서 registry.gitlab.com/gitlab-org/security-products/analyzers로의 이미지 출판을 중단할 것입니다. 이 경우 매뉴얼으로 이미지를 가져와 별도의 레지스트리에 푸시하는 경우 대비 조치를 취해야 합니다. 이는 일반적으로 오프라인 배포의 경우입니다. 그렇지 않으면 추가 업데이트를 받을 수 없을 것입니다.

자세한 내용은 중단 이슈를 참조하세요.

Secure and Protect analyzer major version update

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론 또는 자세한 내용은 제거 예정 이슈를 참조하세요.

Secure 및 Protect 단계는 GitLab 15.0 릴리스와 함께 분석기의 주요 버전을 업데이트할 것입니다. 이 주요 업데이트는 다음 사이에 분석기의 명확한 구분을 가능하게 할 것입니다:

  • 2022년 5월 22일 이전에 릴리스된 분석기는 엄격한 스키마 유효성 검사를 받지 않는 보고서를 생성합니다.
  • 2022년 5월 22일 이후에 릴리스된 분석기는 엄격한 스키마 유효성 검사를 받는 보고서를 생성합니다.

기본 포함 템플릿을 사용하지 않거나 분석기 버전을 고정시킨 경우 CI/CD 작업 정의를 업데이트하여 고정된 버전을 제거하거나 최신 주요 버전을 업데이트해야 합니다. GitLab 12.0-14.10 사용자는 GitLab 15.0 릴리스 이전까지 분석기 업데이트를 계속 이용할 수 있지만, 새로운 주요 버전의 분석기에서 고쳐진 버그 및 새로운 기능은 유지 관리 정책에 따라 이전 버전에서 제공되지 않을 것입니다. 필요한 보안 패치는 최신 3개의 부 버전에 걸쳐 백포트됩니다. 구체적으로, 다음이 제거 예정이며 GitLab 15.0 릴리스 이후에는 더 이상 업데이트되지 않습니다:

  • API 보안: 버전 1
  • 컨테이너 스캐닝: 버전 4
  • 커버리지-가이드 퍼즈 테스트: 버전 2
  • 의존성 스캐닝: 버전 2
  • 동적 응용 프로그램 보안 테스트 (DAST): 버전 2
  • 인프라 코드(IaC) 스캐닝: 버전 1
  • 라이선스 스캐닝: 버전 3
  • 시크릿 감지: 버전 3
  • 정적 응용 프로그램 보안 테스트 (SAST): 모든 분석기의 버전 2, 단 gosec는 현재 버전 3
    • bandit: 버전 2
    • brakeman: 버전 2
    • eslint: 버전 2
    • flawfinder: 버전 2
    • gosec: 버전 3
    • kubesec: 버전 2
    • mobsf: 버전 2
    • nodejs-scan: 버전 2
    • phpcs-security-audit: 버전 2
    • pmd-apex: 버전 2
    • security-code-scan: 버전 2
    • semgrep: 버전 2
    • sobelow: 버전 2
    • spotbugs: 버전 2

Sidekiq metrics and health checks configuration

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)
  • 이 변경 사항에 대한 토론 또는 자세한 내용은 제거 예정 이슈를 참조하세요.

단워크플로와 포트를 사용하여 Sidekiq 메트릭 및 상태 체크를 내보내는 것은 제거 예정입니다. 지원은 15.0에서 제거될 예정입니다.

우리는 Sidekiq를 업데이트하여 두 개의 별도 프로세스에서 메트릭 및 상태 체크를 내보내어 안정성과 가용성을 향상시키고 극단적인 경우 데이터 손실을 방지할 것입니다. 이들은 두 개의 별도 서버이므로, 15.0에서 명시적으로 메트릭 및 상태 체크용 별도 포트를 설정해야 합니다. sidekiq['health_checks_*']를 항상 gitlab.rb에 설정해야 합니다. 자세한 내용은 Sidekiq 구성 문서를 확인하세요.

이러한 변경 사항은 새 엔드포인트를 스크래이핑하기 위해 Prometheus 또는 k8s 상태 체크를 업데이트해야 하며, 그렇지 않으면 메트릭 또는 상태 체크가 사라질 것입니다.

제거 기간 동안 이러한 설정은 선택 사항이며 GitLab은 Sidekiq 상태 체크 포트를 sidekiq_exporter와 동일한 포트로 기본 설정하고 하나의 서버만 실행합니다 (현재 동작 방식을 변경하지 않음). 둘 다 설정되고 다른 포트가 제공되는 경우에만 별도의 메트릭 서버가 활성화되어 Sidekiq 메트릭을 제공하게 됩니다. 이는 15.0에서 Sidekiq의 동작 방식과 유사합니다.

Static Site Editor

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거 예정
  • 이 변경 사항에 대한 토론 또는 자세한 내용은 제거 예정 이슈를 참조하세요.

Static Site Editor는 GitLab 15.0에서 더 이상 사용할 수 없게 될 것입니다. GitLab 전역에서 Markdown 편집 경험을 향상시키는데 더 많은 이점을 제공합니다. Static Site Editor로의 들어오는 요청은 웹 IDE로 리디렉션될 것입니다.

현재 Static Site Editor의 사용자는 기존 프로젝트에서 구성 파일을 제거하는 방법을 포함한 자세한 정보를 확인할 수 있습니다. 문서를 확인하세요.

Support for SLES 12 SP2

  • GitLab 14.5에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)

SUSE Linux Enterprise Server (SLES) 12 SP2의 장기 서비스 및 지원(LTSS)은 2021년 3월 31일에 종료되었습니다. SP2의 CA 인증서에 만료된 DST 루트 인증서가 포함되어 있으며 새로운 CA 인증서 패키지 업데이트를 받지 않습니다. 우리는 일부 임시 조치를 시행했지만, 계속해서 빌드가 제대로 실행되도록 유지할 수 없을 것입니다.

Support for gRPC-aware proxy deployed between Gitaly and rest of GitLab

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거 예정 (breaking change)

Gitaly와 GitLab 나머지 부분 사이에 gRPC-aware 프록시를 배포하는 것은 권장되지 않거나 문서화되지는 않았지만 가능했습니다. 예를 들어 NGINX 및 Envoy. Gitaly 연결에 gRPC-aware 프록시를 사용하는 경우 해당 프록시 구성을 TCP 또는 TLS 프록시(OSI 레이어 4) 사용으로 변경해야 합니다. Gitaly Cluster는 13.12에서 gRPC-aware 프록시와 호환되지 않았습니다. 이제 모든 GitLab 설치는 gRPC-aware 프록시와 호환되지 않을 것입니다.

내부 RPC 트래픽 중 일부를 gRPC 대신 사용자 정의 프로토콜(대신으로 gRPC)을 통해 전송함으로써 처리량을 증가시키고 Go 쓰레기 수집 지연 시간을 줄일 수 있습니다. 더 많은 정보는 관련 이픽을 참조하세요.

Test coverage project CI/CD setting

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)

테스트 커버리지 구문을 설정하는 것을 간소화하기 위해, GitLab 15.0에서는 프로젝트 설정에서 테스트 커버리지 구문 분석 가 제거됩니다.

대신, 프로젝트의 .gitlab-ci.yml에서 coverage 키워드와 정규 표현식을 제공하여 Merge Request의 테스트 커버리지 결과를 설정할 수 있습니다.

GitLab에서의 추적

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 제거 문제를 참조하세요.

GitLab에서의 추적은 오픈 소스의 엔드 투 엔드 분산 추적 시스템인 Jaeger와의 통합입니다. GitLab 사용자는 배포된 애플리케이션의 성능을 파악하기 위해 자신의 Jaeger 인스턴스로 이동하여 주어진 요청을 처리하는 각 함수 또는 마이크로서비스를 추적할 수 있습니다. GitLab에서의 추적은 GitLab 14.7에서 사용 중지되며, 15.0에서 제거될 예정입니다. 가능한 대체 작업을 추적하려면 GitLab과의 Opstrace 통합 문제를 참조하세요.

컨테이너 레지스트리 그룹 레벨 API 업데이트

  • GitLab 14.5에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 제거 문제를 참조하세요.

15.0 마일스톤에서, 그룹에서 레지스트리 리포지터리를 가져오는 컨테이너 레지스트리 API에서 tagstags_count 파라미터의 지원이 제거될 예정입니다(그룹으로부터 레지스트리 리포지터리 가져오기).

GET /groups/:id/registry/repositories 엔드포인트는 유지되지만 태그에 대한 정보를 반환하지 않을 것입니다. 태그에 대한 정보를 얻으려면 기존의 GET /registry/repositories/:id 엔드포인트를 사용할 수 있으며, 이는 현재처럼 tagstag_count 옵션을 계속 지원할 것입니다. 후자는 각 이미지 리포지터리당 한 번씩 호출해야 합니다.

값 스트림 분석 필터링 계산 변경

  • GitLab 14.5에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 제거 문제를 참조하세요.

우리는 값 스트림 분석에서 날짜 필터링이 어떻게 작동하는 지를 변경하고 있습니다. 이제 이슈 또는 Merge Request이 생성된 시간으로 필터링하는 대신, 날짜 필터가 주어진 단계의 종료 이벤트 시간으로 필터링될 것입니다. 이 변경 사항이 적용된 후에는 완전히 다른 수치가 나타날 것입니다.

값 스트림 분석 메트릭을 모니터링하고 날짜 필터에 의존하는 경우, 데이터 손실을 피하려면 해당 변경 사항 이전에 데이터를 저장해야 합니다.

취약점 확인

  • GitLab 14.8에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)

취약점 확인 기능은 GitLab 14.8에서 사용 중지되며, GitLab 15.0에서 제거될 예정입니다. 대신 새 보안 승인 기능으로 이관하는 것을 권장합니다. 이를 위해 보안 및 규정 > 정책으로 이동하여 새로운 스캔 결과 정책을 생성할 수 있습니다.

새로운 보안 승인 기능은 취약점 확인과 유사합니다. 예를 들어, 둘 다 보안 취약점이 포함된 MR에 대한 승인을 요구할 수 있습니다. 그러나 보안 승인은 이전 경험을 여러 가지 방법으로 개선합니다:

  • 누가 보안 승인 규칙을 수정할 수 있는지를 선택할 수 있습니다. 그러므로 독립된 보안이나 규정 팀은 개발 프로젝트 관리자가 규칙을 수정하는 것을 막는 방식으로 규칙을 관리할 수 있습니다.
  • 여러 규칙을 생성하고 서로 체인으로 연결하여 각 스캐너 유형에 대한 서로 다른 심각도 임계값에 대한 필터링을 허용할 수 있습니다.
  • 보안 승인 규칙에 대한 변경 사항에 대해 원하는 변경을 위해 두 단계의 승인 프로세스를 강제할 수 있습니다.
  • 단일 보안 정책 집합을 여러 개발 프로젝트에 적용할 수 있도록 하여 단일 중앙 집중식 규칙 집합을 유지하도록 허용합니다.

기본 PackageType에 있는 Versions

  • GitLab 14.5에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 제거 문제를 참조하세요.

패키지 레지스트리 GraphQL API를 생성하기 위한 작업의 일환으로, 패키지 그룹은 기본 PackageType에 있는 Version 유형을 지원 중지하고 PackageDetailsType로 이동했습니다.

15.0 마일스톤에서, VersionPackageType에서 완전히 제거할 것입니다.

artifacts:reports:cobertura 키워드

  • GitLab 14.7에서 발표됨
  • GitLab 15.0에서 제거됨 (breaking change)
  • 이 변경 사항에 대해 토의하거나 자세히 알아보려면 제거 문제를 참조하세요.

현재, GitLab에서 테스트 커버리지 시각화는 Cobertura 보고서만 지원합니다. 15.0부터 artifacts:reports:cobertura 키워드가 artifacts:reports:coverage_report로 대체될 것입니다. Cobertura가 15.0에서 유일하게 지원되는 보고서 파일이지만, 이것은 GitLab이 다른 보고서 유형을 지원하기 위한 첫 번째 단계입니다.

defaultMergeCommitMessageWithDescription GraphQL API field

GraphQL API 필드 defaultMergeCommitMessageWithDescription이(가) 폐지되었으며 GitLab 15.0에서 제거될 예정입니다. 커밋 메시지 템플릿이 설정된 프로젝트의 경우 해당 템플릿을 무시합니다.

</div>

dependency_proxy_for_private_groups feature flag

우리는 GitLab-#11582로 인해 공개 그룹이 의존성 프록시를 사용하는 방식을 변경했기 때문에 feature flag를 추가했습니다. 이 변경 이전에는 인증 없이 의존성 프록시를 사용할 수 있었습니다. 변경으로 인해 의존성 프록시를 사용하려면 인증이 필요합니다.

15.0 마일스톤에서 feature flag를 완전히 제거할 예정입니다. 앞으로는 패키지의 단일 버전에 대한 파이프라인을 가져올 수는 있지만, 패키지의 모든 버전에 대한 모든 파이프라인을 가져와 메모리에 무한대의 개체를 가져와 성능에 영향을 줄 수 있는 versions 필드의 pipelines를 제거할 예정입니다.

pipelines 필드에서 버전 필드의version 필드

GraphQL에서 PackageDetailsType에서 사용할 수 있는 두 개의 pipelines 필드가 있습니다.

  • versions 필드의 pipelines 필드는 패키지의 모든 버전과 연결된 모든 파이프라인을 반환하며, 메모리에 무제한의 개체를 가져와 성능에 문제를 야기할 수 있습니다.
  • 특정 버전의 pipelines 필드는 해당 단일 패키지 버전과 연결된 파이프라인만 반환합니다.

가능한 성능 문제를 완화하기 위해 15.0 마일스톤에서 versions 필드의 pipelines 필드를 제거할 예정입니다. 이 변경으로 모든 버전의 모든 파이프라인을 가져올 수 없지만, 여전히 해당 버전에 대한 파이프라인은 남아 있는 pipelines 필드를 통해 가져올 수 있습니다.

PipelineSecurityReportFinding GraphQL의 projectFingerprint

PipelineSecurityReportFinding GraphQL 오브젝트의 projectFingerprint 필드가 폐지됩니다. 이 필드는 고유성을 결정하는 데 사용되는 보안 결과의 “지문”을 포함하고 있습니다. 지문을 계산하는 방법이 변경되어 다른 값이 생성되었습니다. 앞으로는 새로운 값은 UUID 필드에서 노출됩니다. 이전에 projectFingerprint 필드에서 사용 가능했던 데이터는 최종적으로 완전히 제거될 것입니다.

gitlab-ctlpromote-db 명령

GitLab 14.5에서, 우리는 어떤 Geo 보조 노드든 기본 노드로 승격시키기 위한 gitlab-ctl promote 명령을 소개했습니다. 이 명령은 멀티 노드 Geo 보조 사이트에서 데이터베이스 노드를 승격시키기 위해 사용되었던 gitlab-ctl promote-db를 대체합니다. gitlab-ctl promote-db는 여전히 기존 양식으로 작동하며, GitLab 15.0까지 사용할 수 있습니다. Geo 고객들에게는 새로운 gitlab-ctl promote 명령을 스테이징 환경에서 테스트하고 장애 조치 절차에 새 명령을 통합하는 것을 권장합니다.

gitlab-ctlpromote-to-primary-node 명령

GitLab 14.5에서, 우리는 장애 조치 중에 어떤 Geo 보조 노드든 기본 노드로 승격시키기 위한 gitlab-ctl promote 명령을 소개했습니다. 이 명령은 단일 노드 Geo 사이트에만 사용되었던 gitlab-ctl promote-to-primary-node을 대체했습니다. gitlab-ctl promote-to-primary-node는 여전히 기존 양식으로 작동하며, GitLab 15.0까지 사용할 수 있습니다. Geo 고객들에게는 새로운 gitlab-ctl promote 명령을 스테이징 환경에서 테스트하고 장애 조치 절차에 새 명령을 통합하는 것을 권장합니다.

CI/CD 구성에서 typetypes 키워드

typetypes CI/CD 키워드가 GitLab 15.0에서 제거될 예정입니다. 이러한 키워드를 사용하는 파이프라인은 작동을 중지하기 때문에 동일한 작동을 하는 stagestages로 전환해야 합니다.

apiFuzzingCiConfigurationCreate GraphQL 뮤테이션

API Fuzzing 구성 스니펫은 이제 클라이언트 측에서 생성되어 더 이상 API 요청이 필요하지 않습니다. 따라서 더 이상 사용되지 않는 apiFuzzingCiConfigurationCreate 뮤테이션을 폐지합니다.

bundler-audit Dependency Scanning tool

  • GitLab 14.6에서 발표됨
  • GitLab 15.0에 제거 예정 (breaking change)
  • 이 변경에 대해 논의하거나 자세히 알아보려면 deprecated issue를 참조하세요.

14.6부터 bundler-audit는 의존성 스캐닝에서 사용 중단되고 있습니다. 사용 중단되는 동안 CI/CD 템플릿에 계속 포함될 것입니다. 우리는 15.0에서 의존성 스캐닝에서 bundler-audit를 제거할 예정입니다. 이후에는 Ruby 스캐닝 기능이 여전히 Gemnasium으로 처리되고 있기 때문에 영향을 받지 않습니다.

DS_EXCLUDED_ANALYZERS를 사용하여 bundler-audit를 명시적으로 제외한 경우, 15.0에서 참조를 정리해야 합니다. 의존성 스캐닝 구성을 사용자 지정한 경우(예: bundler-audit-dependency_scanning 작업 편집) 15.0에서 제거되기 전에 pipeline이 실패하지 않도록 하기 위해 제거 전에 gemnasium-dependency_scanning으로 전환해야 합니다. bundler-audit를 참조하는 DS_EXCLUDED_ANALYZERS를 사용하지 않았거나 특별히 bundler-audit를 위해 템플릿을 사용자 지정한 경우 조치를 취할 필요가 없습니다.

컨테이너 레지스트리의 htpasswd 인증

  • GitLab 14.9에서 발표됨
  • GitLab 15.0에 제거 예정 (breaking change)

컨테이너 레지스트리는 htpasswd를 사용한 인증을 지원합니다. 이는 bcrypt로 해싱된 Apache htpasswd 파일에 의존합니다.

GitLab에서(the product의 맥락에서는 사용되지 않기 때문에) htpasswd 인증은 GitLab 14.9에서 사용 중단되고 GitLab 15.0에서 제거될 예정입니다.

</div>

GitLab 14.10

Composer 의존성 다운로드 권한 변경

  • GitLab 14.9에서 발표됨
  • GitLab 14.10에 제거 예정 (breaking change)

GitLab Composer 리포지터리를 사용하여 PHP 의존성을 푸시하고 검색하며 메타데이터를 가져오고 다운로드할 수 있습니다. 모든 이러한 작업에는 인증이 필요하지만 의존성을 다운로드하는 경우에는 인증이 필요하지 않습니다.

GitLab 14.9에서는 인증 없이 Composer 의존성을 다운로드하는 것이 사용 중단되며 GitLab 15.0에서 제거될 예정입니다. GitLab 15.0부터는 Composer 의존성을 다운로드하려면 인증해야 합니다.

GitLab 14.9

Configurable Gitaly per_repository election strategy

  • GitLab 14.8에서 발표됨
  • GitLab 14.9에 제거될 예정
  • 이 변경에 대해 논의하거나 자세히 알아보려면 deprecated issue를 참조하세요.

per_repository Gitaly 선출 전략의 구성은 deprecated되었습니다. `per_repositoryᅡ 14.0 버전 이후唯一한 옵션이었습니다.

이 변경은 코드베이스를 정리하기 위한 일환입니다.

통합된 에러 추적 기능이 기본으로 비활성화됨

  • GitLab 14.9에서 발표됨
  • GitLab 14.9에 제거 예정 (breaking change)
  • 이 변경에 대해 논의하거나 자세히 알아보려면 deprecated issue를 참조하세요.

GitLab 14.4에서 GitLab은 Sentry를 대체하는 통합된 에러 추적 백엔드를 출시했습니다. 이 기능은 데이터베이스 성능 문제를 발생시켰습니다. GitLab 14.9에서는 GitLab.com에서 통합된 에러 추적이 제거되었으며, GitLab Self-Managed에서는 기본적으로 비활성화됩니다. 이 기능의 향후 개발을 탐색하는 동안 프로젝트 설정에서 Sentry 에러 추적으로 변경하는 것을 고려해주십시오.

이 제거에 대한 추가적인 배경은 기본값으로 통합된 에러 추적 비활성화를 참조해주십시오. 피드백이 있으면 Feedback: 통합된 에러 추적 제거에 댓글을 추가해주십시오.

GitLab 14.8

openSUSE Leap 15.2 packages

  • GitLab 14.5에서 발표됨
  • GitLab 14.8에 제거될 예정
  • 이 변경에 대해 논의하거나 자세히 알아보려면 deprecated issue를 참조하세요.

openSUSE Leap 15.2의 배포 지원 및 보안 업데이트는 2021년 12월에 종료됩니다.

14.5부터 openSUSE Leap 15.3용 패키지를 제공할 예정이며, 14.8 마일스톤에서 openSUSE Leap 15.2용 패키지 제공을 중단할 것입니다.

GitLab 14.6

릴리스 CLI를 일반 패키지로 배포

  • GitLab 14.2에서 발표됨
  • GitLab 14.6에 제거될 예정

릴리스 CLI는 GitLab 14.2부터 일반 패키지로 출시됩니다. 우리는 GitLab 14.5까지는 바이너리로 S3에 배포할 것이며, GitLab 14.6에서 S3에서의 배포를 중단할 것입니다.

GitLab 14.5

작업러너(runner) pod의 이름을 도구상자로 변경

  • GitLab 14.2에서 발표됨
  • GitLab 14.5에서 제거됨

작업러너(runner) pod은 GitLab 애플리케이션 내에서 주기적인 정리 작업을 실행하는 데 사용되며 종종 GitLab 러너와 혼동됩니다. 따라서 작업러너(runner)의 이름이 도구상자로 변경될 것입니다.

결과적으로 하위 차트 gitlab/task-runner의 이름은 gitlab/toolbox로 변경될 것입니다. 결과적으로 생성된 pod은 주로 {{ .Release.Name }}-toolbox와 같은 형식으로 명명될 것이며, 종종 gitlab-toolbox가 될 것입니다. 해당 pod은 app=toolbox 라벨로 찾을 수 있습니다.

이 페이지에는 예정된 제품, 기능, 및 기능성에 관련된 정보가 포함되어 있습니다. 제시된 정보는 정보 제공을 목적으로 하며, 구매 또는 계획 목적으로 의존해서는 안 됨을 주의하시기 바랍니다. 모든 제품, 기능, 또는 기능성의 개발, 출시, 및 타이밍은 변경되거나 지연될 수 있으며, GitLab Inc.의 전적인 재량에 따라 결정됩니다.