InfoGrab DocsInfoGrab Docs

GLQL 데이터 소스

요약

GLQL은 다음 데이터 소스를 쿼리할 수 있습니다. 각 데이터 소스에는 필터링, 표시, 정렬에 사용할 수 있는 고유한 지원 필드가 있습니다. 쿼리에서 type 필드를 사용하여 데이터 소스를 지정합니다. 각 데이터 소스에는 데이터를 쿼리할 위치를 정의하는 범위(scope)가 필요합니다.

GLQL은 다음 데이터 소스를 쿼리할 수 있습니다.

데이터 소스 표준 모드 분석 모드 type 값 설명
Work items ✅ ❌ Issue, Incident, TestCase, Requirement, Task, Ticket, Objective, KeyResult, Epic 이슈, 에픽을 비롯한 work item 유형입니다. type을 생략하면 기본값으로 사용됩니다.
Merge requests ✅ ✅ MergeRequest 코드 리뷰 및 머지 워크플로입니다.
Pipelines ✅ ✅ Pipeline CI/CD 파이프라인입니다.
Jobs ✅ ❌ Job 파이프라인 안의 CI/CD job 입니다.
Projects ✅ ❌ Project 네임스페이스 안의 프로젝트입니다.
Agent platform sessions ❌ ✅ AgentPlatformSession GitLab Duo Agent Platform 세션 집계 분석입니다.
AI usage events ❌ ✅ AiUsageEvent GitLab Duo 사용 이벤트 집계 분석입니다.
Code suggestions ❌ ✅ CodeSuggestion GitLab Duo Code Suggestions 집계 분석입니다.
Contributions ❌ ✅ Contribution 기여 활동 집계 분석입니다.
Duo workflows ❌ ✅ DuoWorkflow 사용한 크레딧을 포함한 GitLab Duo Agent Platform 플로 집계 분석입니다.

각 데이터 소스에는 필터링, 표시, 정렬에 사용할 수 있는 고유한 지원 필드가 있습니다.

쿼리에서 type 필드를 사용하여 데이터 소스를 지정합니다. 예를 들어 type = Issue 또는 type = MergeRequest와 같이 사용합니다. 여러 유형을 지원하는 데이터 소스는 in 연산자로 여러 유형에 걸쳐 쿼리합니다. 예를 들어 type in (Issue, Task)와 같이 사용합니다.

범위#

각 데이터 소스에는 데이터를 쿼리할 위치를 정의하는 범위(scope)가 필요합니다. 허용되는 범위는 데이터 소스마다 다르며, 각 데이터 소스 페이지에 정리되어 있습니다.

쿼리에서 범위를 정의합니다. 예를 들면 다음과 같습니다.

query: type = issue and project = "gitlab-org/gitlab"

범위를 지정하지 않으면 GLQL은 쿼리가 삽입된 위치를 기준으로 범위를 추론합니다.

  • 프로젝트 컨텍스트(예: 이슈 또는 머지 리퀘스트 설명)에서는 현재 프로젝트를 사용합니다.
  • 그룹 컨텍스트(예: 에픽 설명)에서는 현재 그룹을 사용합니다.

여러 그룹 및 프로젝트#

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

분석 모드에서 group과 project 필터는 목록을 받으므로 쿼리 하나로 여러 그룹이나 프로젝트의 데이터를 집계할 수 있습니다. 전체 경로와 함께 in 연산자를 사용합니다.

```glql
display: table
mode: analytics
query: type = MergeRequest and group in ("gitlab-org", "gitlab-com") and merged > -30d
dimensions: merged(weekly) as "Week"
metrics: totalCount as "Total", throughputCount as "Merged"
sort: merged desc
```

그룹, 프로젝트 또는 둘 다 나열할 수 있습니다.

  • group in ("gitlab-org", "gitlab-com")은 하위 그룹을 포함하여 나열한 그룹의 모든 프로젝트를 집계합니다.
  • project in ("gitlab-org/gitlab", "gitlab-org/gitaly")는 나열한 프로젝트만 집계합니다.
  • group in ("gitlab-org") and project in ("gitlab-com/www-gitlab-com")은 두 목록의 합집합을 집계합니다.
  • group = "gitlab-org" and project in ("gitlab-org/gitlab", "gitlab-org/gitaly")는 나열한 프로젝트만 집계하며, 이 프로젝트는 해당 그룹에 속해야 합니다.

예를 들어 서로 다른 그룹의 프로젝트를 나란히 비교하려면 다음과 같이 합니다.

```glql
display: table
mode: analytics
query: type = Pipeline and project in ("gitlab-org/gitlab", "gitlab-org/gitaly", "gitlab-com/www-gitlab-com") and finished > -30d
dimensions: project as "Project"
metrics: totalCount as "Total", successRate as "Success rate"
sort: totalCount desc
```

목록을 사용할 때는 다음과 같습니다.

  • 그룹과 프로젝트를 합쳐 최대 20개까지 나열할 수 있습니다.
  • 나열한 모든 그룹과 프로젝트에 액세스할 수 있어야 합니다. 하나라도 없거나 액세스할 수 없으면 읽을 수 없는 경로를 명시한 오류와 함께 쿼리가 실패합니다.
  • 경로가 하나뿐인 목록은 group = "..." 또는 project = "..."와 같이 동작합니다.
  • 프로젝트나 그룹에 쿼리를 삽입한 경우 GLQL은 해당 프로젝트나 그룹 대신 나열한 경로를 범위로 사용합니다.

표준 모드에서는 목록이 지원되지 않습니다. work item과 job 같은 데이터 소스는 group 또는 project 값 하나만 받으며, 목록을 지정하면 컴파일 오류가 발생합니다.

GLQL 데이터 소스

GitLab v19.5
원문 보기

요약

GLQL은 다음 데이터 소스를 쿼리할 수 있습니다. 각 데이터 소스에는 필터링, 표시, 정렬에 사용할 수 있는 고유한 지원 필드가 있습니다. 쿼리에서 type 필드를 사용하여 데이터 소스를 지정합니다. 각 데이터 소스에는 데이터를 쿼리할 위치를 정의하는 범위(scope)가 필요합니다.

GLQL은 다음 데이터 소스를 쿼리할 수 있습니다.

데이터 소스 표준 모드 분석 모드 type 값 설명
Work items ✅ ❌ Issue, Incident, TestCase, Requirement, Task, Ticket, Objective, KeyResult, Epic 이슈, 에픽을 비롯한 work item 유형입니다. type을 생략하면 기본값으로 사용됩니다.
Merge requests ✅ ✅ MergeRequest 코드 리뷰 및 머지 워크플로입니다.
Pipelines ✅ ✅ Pipeline CI/CD 파이프라인입니다.
Jobs ✅ ❌ Job 파이프라인 안의 CI/CD job 입니다.
Projects ✅ ❌ Project 네임스페이스 안의 프로젝트입니다.
Agent platform sessions ❌ ✅ AgentPlatformSession GitLab Duo Agent Platform 세션 집계 분석입니다.
AI usage events ❌ ✅ AiUsageEvent GitLab Duo 사용 이벤트 집계 분석입니다.
Code suggestions ❌ ✅ CodeSuggestion GitLab Duo Code Suggestions 집계 분석입니다.
Contributions ❌ ✅ Contribution 기여 활동 집계 분석입니다.
Duo workflows ❌ ✅ DuoWorkflow 사용한 크레딧을 포함한 GitLab Duo Agent Platform 플로 집계 분석입니다.

각 데이터 소스에는 필터링, 표시, 정렬에 사용할 수 있는 고유한 지원 필드가 있습니다.

쿼리에서 type 필드를 사용하여 데이터 소스를 지정합니다. 예를 들어 type = Issue 또는 type = MergeRequest와 같이 사용합니다. 여러 유형을 지원하는 데이터 소스는 in 연산자로 여러 유형에 걸쳐 쿼리합니다. 예를 들어 type in (Issue, Task)와 같이 사용합니다.

범위#

각 데이터 소스에는 데이터를 쿼리할 위치를 정의하는 범위(scope)가 필요합니다. 허용되는 범위는 데이터 소스마다 다르며, 각 데이터 소스 페이지에 정리되어 있습니다.

쿼리에서 범위를 정의합니다. 예를 들면 다음과 같습니다.

query: type = issue and project = "gitlab-org/gitlab"

범위를 지정하지 않으면 GLQL은 쿼리가 삽입된 위치를 기준으로 범위를 추론합니다.

  • 프로젝트 컨텍스트(예: 이슈 또는 머지 리퀘스트 설명)에서는 현재 프로젝트를 사용합니다.
  • 그룹 컨텍스트(예: 에픽 설명)에서는 현재 그룹을 사용합니다.

여러 그룹 및 프로젝트#

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

분석 모드에서 group과 project 필터는 목록을 받으므로 쿼리 하나로 여러 그룹이나 프로젝트의 데이터를 집계할 수 있습니다. 전체 경로와 함께 in 연산자를 사용합니다.

```glql
display: table
mode: analytics
query: type = MergeRequest and group in ("gitlab-org", "gitlab-com") and merged > -30d
dimensions: merged(weekly) as "Week"
metrics: totalCount as "Total", throughputCount as "Merged"
sort: merged desc
```

그룹, 프로젝트 또는 둘 다 나열할 수 있습니다.

  • group in ("gitlab-org", "gitlab-com")은 하위 그룹을 포함하여 나열한 그룹의 모든 프로젝트를 집계합니다.
  • project in ("gitlab-org/gitlab", "gitlab-org/gitaly")는 나열한 프로젝트만 집계합니다.
  • group in ("gitlab-org") and project in ("gitlab-com/www-gitlab-com")은 두 목록의 합집합을 집계합니다.
  • group = "gitlab-org" and project in ("gitlab-org/gitlab", "gitlab-org/gitaly")는 나열한 프로젝트만 집계하며, 이 프로젝트는 해당 그룹에 속해야 합니다.

예를 들어 서로 다른 그룹의 프로젝트를 나란히 비교하려면 다음과 같이 합니다.

```glql
display: table
mode: analytics
query: type = Pipeline and project in ("gitlab-org/gitlab", "gitlab-org/gitaly", "gitlab-com/www-gitlab-com") and finished > -30d
dimensions: project as "Project"
metrics: totalCount as "Total", successRate as "Success rate"
sort: totalCount desc
```

목록을 사용할 때는 다음과 같습니다.

  • 그룹과 프로젝트를 합쳐 최대 20개까지 나열할 수 있습니다.
  • 나열한 모든 그룹과 프로젝트에 액세스할 수 있어야 합니다. 하나라도 없거나 액세스할 수 없으면 읽을 수 없는 경로를 명시한 오류와 함께 쿼리가 실패합니다.
  • 경로가 하나뿐인 목록은 group = "..." 또는 project = "..."와 같이 동작합니다.
  • 프로젝트나 그룹에 쿼리를 삽입한 경우 GLQL은 해당 프로젝트나 그룹 대신 나열한 경로를 범위로 사용합니다.

표준 모드에서는 목록이 지원되지 않습니다. work item과 job 같은 데이터 소스는 group 또는 project 값 하나만 받으며, 목록을 지정하면 컴파일 오류가 발생합니다.