GLQL 함수
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
GitLab Query Language(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 Query Language(GLQL)에서 함수를 사용해 동적 쿼리를 만듭니다.
쿼리 내 함수#
쿼리를 컨텍스트에 맞게 만들려면 쿼리 안에서 함수를 사용합니다. 예를 들어 현재 사용자나 날짜로 필터링합니다.
현재 사용자#
함수 이름: currentUser
매개변수: 없음
구문: currentUser()
설명: 현재 인증된 사용자로 평가됩니다.
추가 세부 정보:
- 쿼리에서 이 함수를 사용하면 인증되지 않은 사용자에게는 쿼리가 실패합니다.
예시:
-
현재 인증된 사용자가 담당자인 모든 이슈를 나열합니다.
assignee = currentUser() -
현재 인증된 사용자가 담당자이지만 작성자는 아닌 모든 머지 리퀘스트를 나열합니다.
type = MergeRequest and assignee = currentUser() and author != currentUser()
오늘#
함수 이름: today
매개변수: 없음
구문: today()
설명: 사용자 시간대 기준 오늘 00:00으로 평가됩니다.
추가 세부 정보:
=연산자와 함께 사용하면 사용자 시간대 기준 00:00부터 23:59 까지의 시간 범위로 간주됩니다.
예시:
-
오늘 생성된 모든 이슈를 나열합니다.
created = today() -
오늘 머지된 모든 머지 리퀘스트를 나열합니다.
type = MergeRequest and merged = today()
임베디드 뷰의 함수#
임베디드 뷰의 기존 필드에서 새 칼럼을 도출하려면 fields 매개변수에
함수를 포함합니다.
레이블을 새 칼럼으로 추출#
함수 이름: labels
매개변수: 하나 이상의 String 값
구문: labels("field1", "field2")
설명:
labels 함수는 하나 이상의 레이블 이름 문자열 값을 매개변수로 받아,
이슈에서 해당 레이블만 담은 필터링된 칼럼을 만듭니다.
이 함수는 추출기로도 동작하므로, 일반 labels 칼럼을 함께 표시하도록 선택하더라도
추출된 레이블은 그 칼럼에 더 이상 표시되지 않습니다.
추가 세부 정보:
- 기본적으로 이 함수는 레이블 이름과 정확히 일치하는 항목을 찾습니다.
문자열에 와일드카드 문자(
*)를 사용하면 임의의 문자와 일치시킬 수 있습니다. labels함수에는 레이블 이름을 최소 1개, 최대 100개까지 전달할 수 있습니다.- 이 함수에 전달하는 레이블 이름은 대소문자를 구분하지 않습니다. 예를 들어
Deliverable과deliverable은 같습니다.
예시:
-
칼럼에 모든
workflow범위 레이블을 포함합니다.labels("workflow::*") -
Deliverable,Stretch,Spike레이블을 포함합니다.labels("Deliverable", "Stretch", "Spike") -
backend,frontend등end로 끝나는 모든 레이블을 포함합니다.labels("*end")
임베디드 뷰에 labels 함수를 포함하려면 다음과 같이 작성합니다.
```glql
display: list
fields: title, health, due, labels("workflow::*"), labels
limit: 5
query: project = "gitlab-org/gitlab" AND assignee = currentUser() AND state = opened
```