GitLab 쿼리 언어(GLQL)
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab 쿼리 언어(GLQL)는 GitLab 전체를 위한 단일 쿼리 언어입니다. Markdown 코드 블록에 쿼리를 임베드합니다. GLQL로 구동되는 임베드된 뷰 피드백 이슈에서 피드백을 공유하세요. 쿼리 구문은 주로 논리 표현식으로 구성됩니다.
히스토리
- GitLab 17.4에서
glql_integration이라는 기능 플래그와 함께 도입. 기본적으로 비활성화됨. - GitLab 17.4에서 일부 그룹 및 프로젝트를 위해 GitLab.com에서 활성화됨.
- GitLab 17.10에서 실험에서 베타로 변경.
- GitLab 17.10에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에서 활성화.
- GitLab 18.3에서 일반 공개. 기능 플래그
glql_integration제거됨.
GitLab 쿼리 언어(GLQL)는 GitLab 전체를 위한 단일 쿼리 언어입니다. 친숙한 구문을 사용하여 플랫폼 어디서든 콘텐츠를 필터링하고 임베드하는 데 사용합니다.
Markdown 코드 블록에 쿼리를 임베드합니다. 임베드된 뷰는 GLQL 소스 코드 블록의 렌더링된 출력입니다.
GLQL로 구동되는 임베드된 뷰 피드백 이슈에서 피드백을 공유하세요.
쿼리 구문#
쿼리 구문은 주로 논리 표현식으로 구성됩니다. 이러한 표현식은
<필드> <연산자> <값> and ...의 구문을 따릅니다.
데이터 소스#
GLQL은 워크 아이템, 머지 리퀘스트, 파이프라인, 잡, 프로젝트와 같은 다양한 데이터 소스를 쿼리할 수 있습니다.
지원되는 데이터 소스의 전체 목록은 GLQL 데이터 소스를 참조하세요.
필드#
필드를 사용하여 결과를 필터링, 표시 및 정렬합니다.
사용할 수 있는 필드는 쿼리하는 데이터 소스에 따라 다릅니다. 각 데이터 소스에 대해 지원되는 필드, 연산자 및 값의 전체 목록은 GLQL 필드를 참조하세요.
연산자#
비교 연산자:
| GLQL 연산자 | 설명 | 검색에서 동등한 표현 |
|---|---|---|
= |
같음 / 목록의 모두 포함 | is (equal to) |
!= |
같지 않음 / 목록에 포함되지 않음 | is not (equal to) |
in |
목록에 포함 | or / is one of |
> |
초과 | ❌ |
< |
미만 | ❌ |
>= |
이상 | ❌ |
<= |
이하 | ❌ |
논리 연산자: and만 지원됩니다.
or는 in 비교 연산자를 사용하여 일부 필드에서 간접적으로 지원됩니다.
값#
값에는 다음이 포함될 수 있습니다:
- 문자열
- 숫자
- 상대 날짜(예:
-1d,2w,-6m,1y) - 절대 날짜(
YYYY-MM-DD형식, 예:2025-01-01) - 함수(사용자 필드의 경우
currentUser()또는 날짜의 경우today()) - 열거형 값(마일스톤의 경우
upcoming또는started) - 불리언(
true또는false) - null 허용 값(예:
null,none,any) - GitLab 참조(레이블의 경우
~label, 마일스톤의 경우%Backlog, 사용자의 경우@username) - 이전 값 중 하나를 포함하는 목록(괄호로 둘러싸여:
()쉼표로 구분:,)
임베드된 뷰#
임베드된 뷰는 Markdown의 GLQL 소스 코드 블록의 출력입니다. 소스에는 쿼리와 함께 GLQL 쿼리 결과를 표시하는 방법을 설명하는 YAML 속성이 포함됩니다.
지원되는 영역#
히스토리
- 리포지터리 Markdown 파일의 임베드된 뷰가 GitLab 18.3에서 도입됨.
임베드된 뷰는 다음 영역에서 표시될 수 있습니다:
- 그룹 및 프로젝트 위키
- 다음의 설명 및 댓글:
- 에픽
- 이슈
- 머지 리퀘스트
- 워크 아이템(작업, OKR 또는 에픽)
- 리포지터리 Markdown 파일
구문#
임베드된 뷰 소스의 구문은 다음으로 구성된 YAML의 슈퍼셋입니다:
query매개변수:and와 같은 논리 연산자로 결합된 표현식.- YAML로 표현된
display,limit,fields,title,description과 같은 프레젠테이션 레이어 관련 매개변수.
뷰는 Mermaid와 같은 다른 코드 블록과 유사하게 Markdown에서 코드 블록으로 정의됩니다.
예를 들어:
gitlab-org/gitlab에서 인증된 사용자에게 할당된 처음 5개의 열린 이슈 표를 표시합니다.title,state,health,description,epic,milestone,weight,updated열을 표시합니다.
```glql
display: table
title: GLQL table 🎉
description: This view lists my open issues
fields: title, state, health, epic, milestone, weight, updated
limit: 5
query: type = Issue AND group = "gitlab-org" AND assignee = currentUser() AND state = opened
```
이 소스는 아래와 같은 표를 렌더링해야 합니다:

프레젠테이션 구문#
히스토리
query 매개변수 외에도 몇 가지 선택적 매개변수를 사용하여 뷰의 프레젠테이션 세부 정보를 구성할 수 있습니다.
지원되는 매개변수:
| 매개변수 | 기본값 | 설명 |
|---|---|---|
collapsed |
false |
뷰를 축소하거나 확장할지 여부. |
description |
없음 | 제목 아래에 표시할 선택적 설명. |
display |
table |
데이터를 표시하는 방법. 지원되는 옵션: table, list, orderedList. |
fields |
title |
뷰에 포함할 필드의 쉼표로 구분된 목록. |
limit |
100 |
첫 번째 페이지에 표시할 항목 수. 최대값은 100. |
sort |
updated desc |
정렬 순서(asc 또는 desc) 다음에 오는 데이터를 정렬할 필드. |
title |
Embedded table view 또는 Embedded list view |
임베드된 뷰 상단에 표시되는 제목. |
예를 들어, gitlab-org/gitlab 프로젝트에서 현재 사용자에게 할당된 처음 5개의 이슈를 목록으로 표시하고 만기일(가장 빠른 것부터) 기준으로 정렬하며 title, health, due 필드를 표시하려면:
```glql
display: list
fields: title, health, due
limit: 5
sort: due asc
query: type = Issue AND group = "gitlab-org" AND assignee = currentUser() AND state = opened
```
이 소스는 아래와 같은 목록을 렌더링해야 합니다:

페이지네이션#
히스토리
- GitLab 18.2에서 도입.
임베드된 뷰는 기본적으로 결과의 첫 번째 페이지를 표시합니다.
limit 매개변수는 표시되는 항목 수를 제어합니다.
다음 페이지를 로드하려면 마지막 행에서 더 불러오기를 선택합니다.
필드 함수#
동적으로 생성된 열을 만들려면 뷰의 fields 매개변수에 함수를 사용합니다.
전체 목록은 임베드된 뷰의 함수를 참조하세요.
커스텀 필드 별칭#
히스토리
- GitLab 18.0에서 도입.
표 뷰의 열 이름을 커스텀 값으로 바꾸려면 AS 구문 키워드를 사용하여 필드에 별칭을 지정합니다.
```glql
display: list
fields: title, labels("workflow::*") AS "Workflow", labels("priority::*") AS "Priority"
limit: 5
query: type = Issue AND project = "gitlab-org/gitlab" AND assignee = currentUser() AND state = opened
```
이 소스는 Title, Workflow, Priority 열이 있는 뷰를 표시합니다.
뷰 액션#
페이지에 뷰가 표시되면 뷰 액션 (⋮) 드롭다운 목록을 사용하여 작업을 수행합니다.
지원되는 액션:
| 액션 | 설명 |
|---|---|
| 소스 보기 | 뷰의 소스를 봅니다. |
| 소스 복사 | 뷰의 소스를 클립보드에 복사합니다. |
| 내용 복사 | 표 또는 목록 내용을 클립보드에 복사합니다. |
| 다시 로드 | 이 뷰를 다시 로드합니다. |
고급 검색 통합#
히스토리
이 기능의 가용성은 기능 플래그에 의해 제어됩니다. 자세한 내용은 기록을 참조하세요.
GLQL은 쿼리 속도를 높이기 위해 사용 가능한 경우 고급 검색을 사용합니다. 고급 검색은 대규모 데이터셋에서 복잡한 쿼리에 대해 더 빠른 응답 시간을 제공합니다.
고급 검색은:
- GitLab.com 및 GitLab Dedicated 유료 구독의 경우 기본적으로 활성화됩니다.
- 관리자가 고급 검색 활성화한 경우 GitLab Self-Managed에서 사용 가능합니다.
고급 검색을 사용할 수 없는 경우 GLQL은 대신 PostgreSQL을 사용합니다.
