【GitLab 18.11】無料ユーザーも使える!GLQL(GitLab Query Language)でプロジェクト・パイプライン・ジョブのデータが取得可能に
はじめに
2026年4月16日にリリースされた GitLab 18.11 で、GLQL(GitLab Query Language)に3つの新しいデータソースが追加されました。この機能は Free、Premium、Ultimate すべてのティア で利用可能です。無料ユーザーの皆さんも、ぜひこの強力な機能を使いこなしてみてください!
GLQLとは?
GLQL(GitLab Query Language)は、GitLabプラットフォーム全体のデータを統一的に扱える 単一のクエリ言語 です。GitLab 17.4で実験的機能として導入され、GitLab 18.3で正式リリース(GA)となりました。
GLQLの特徴
-
SQLライクな構文:
<field> <operator> <value> and ...という直感的な記法 - 埋め込み可能:Wiki、イシュー、マージリクエスト、リポジトリのMarkdownファイルなどに直接埋め込める
- リアルタイム更新:埋め込んだビューは常に最新のデータを表示する「生きたドキュメント」になる
- 複数の表示形式:テーブル、リスト、番号付きリストなど、用途に応じた表示が可能
何が新しくなったのか?
GitLab 18.11では、GLQLで以下の3つの新しいデータソースが利用可能になりました:
- プロジェクト(Projects)
- パイプライン(Pipelines)
- ジョブ(Jobs)
これまではイシューやマージリクエストなどのワークアイテムが中心でしたが、今回のアップデートで CI/CDやプロジェクト管理の分析が大幅に強化 されました。
GLQLで利用可能な全データソース一覧
| データソース |
type 値 |
説明 |
|---|---|---|
| ワークアイテム |
Issue, Incident, TestCase, Requirement, Task, Ticket, Objective, KeyResult, Epic
|
イシュー、エピック、その他のワークアイテムタイプ。typeを省略した場合のデフォルト |
| マージリクエスト | MergeRequest |
コードレビューとマージのワークフロー |
| パイプライン | Pipeline |
CI/CDパイプライン(18.11で追加) |
| ジョブ | Job |
パイプライン内のCI/CDジョブ(18.11で追加) |
| プロジェクト | Project |
名前空間内のプロジェクト(18.11で追加) |
基本的な使い方
クエリの基本構文
GLQLのクエリは論理式で構成されます:
<フィールド> <演算子> <値> and ...
データソースの指定
クエリでデータソースを指定するには、type フィールドを使用します:
type = Issue
type = Pipeline
type = Job
複数のタイプを同時に検索
複数のワークアイテムタイプをまとめて検索する場合は、in 演算子を使います:
type in (Issue, Task)
埋め込みビューの作成
GLQLの最大の特徴は、クエリ結果を 埋め込みビュー として表示できることです。
埋め込み可能な場所
- グループとプロジェクトのWiki
- イシュー、エピック、マージリクエストの説明欄とコメント
- ワークアイテム(タスク、OKR、エピック)の説明欄とコメント
- リポジトリ内のMarkdownファイル
埋め込みビューの構文
Markdownのコードブロックとして記述します:
```glql
display: table
title: 自分に割り当てられたオープンイシュー
description: 現在アクティブなイシュー一覧
fields: title, state, health, milestone, weight, updated
limit: 5
sort: updated desc
query: type = Issue AND assignee = currentUser() AND state = opened
```
表示パラメータ
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
display |
table |
表示形式(table, list, orderedList) |
title |
自動生成 | ビューのタイトル |
description |
なし | タイトル下に表示される説明文 |
fields |
title |
表示するフィールドのカンマ区切りリスト |
limit |
100 |
1ページに表示するアイテム数(最大100) |
sort |
updated desc |
ソート対象フィールドと順序(asc または desc) |
collapsed |
false |
ビューを折りたたむかどうか |
実用例:CI/CDの可視化
例1: 失敗したパイプラインの監視
プロジェクトで最近失敗したパイプラインを表示:
```glql
display: table
title: 失敗したパイプライン
fields: title, status, created, updated
limit: 10
sort: created desc
query: type = Pipeline AND status = failed
```
例2: 実行中のジョブ一覧
現在実行中のCI/CDジョブを監視:
```glql
display: list
title: 実行中のジョブ
fields: title, status, created
limit: 20
query: type = Job AND status = running
```
例3: プロジェクト概要
名前空間内のアクティブなプロジェクト一覧:
```glql
display: table
title: アクティブプロジェクト
fields: title, description, updated
limit: 15
sort: updated desc
query: type = Project
```
例4: 自分のタスク一覧をWikiに埋め込む
チームWikiに自分の作業状況を常に表示:
```glql
display: table
title: 担当中のタスク
description: 今週取り組むべきタスク
fields: title, milestone, weight, due
sort: due asc
query: type = Task AND assignee = currentUser() AND state = opened
```
便利な機能
ページネーション
デフォルトでは最初のページのみ表示されますが、Load more ボタンで次のページを読み込めます。
ビューアクション
各ビューには、右上のメニュー(⋮)から以下のアクションが利用できます:
- View source:ビューのソースコードを表示
- Copy source:ソースをクリップボードにコピー
- Copy contents:テーブルやリストの内容をコピー
- Reload:ビューを再読み込み
カスタムフィールドエイリアス
AS キーワードを使って、列名をカスタマイズできます:
```glql
display: table
fields: title, labels("workflow::*") AS "ワークフロー", labels("priority::*") AS "優先度"
query: type = Issue AND state = opened
```
フィールド関数
GLQLでは、動的に生成される列を作成するための関数がサポートされています。例えば:
-
labels("pattern")- 特定のパターンに一致するラベルを抽出 -
currentUser()- 現在のユーザーを参照 -
today()- 現在の日付を参照
その他の関数については、公式ドキュメントのFunctionsを参照してください。
演算子と値の種類
比較演算子
| 演算子 | 説明 |
|---|---|
= |
等しい / リスト内のすべてを含む |
!= |
等しくない / リストに含まれない |
in |
リストに含まれる |
> |
より大きい |
< |
より小さい |
>= |
以上 |
<= |
以下 |
論理演算子
重要な制約:GLQLでは論理演算子として and のみがサポート されています。
or 演算子は直接サポートされていませんが、in 演算子を使って間接的に実現できます:
# これは動作しません
type = Issue OR type = Task
# 代わりにこう書きます
type in (Issue, Task)
使用可能な値
- 文字列
- 数値
- 相対日付(
-1d,2w,-6m,1yなど) - 絶対日付(
2025-01-01形式) - 関数(
currentUser(),today()など) - Enum値(マイルストーンの
upcomingやstartedなど) - 真偽値(
true,false) - Null値(
null,none,any) - GitLab参照(
~label,%Backlog,@usernameなど) - リスト(括弧とカンマで区切る:
(value1, value2))
パフォーマンスについて
Advanced Search統合(Premium/Ultimate)
GitLab 18.6からベータ機能として、GLQLは Advanced Search(ElasticsearchまたはOpenSearchを使用)と統合されています。Advanced Searchが利用可能な環境では、大規模なデータセットに対する複雑なクエリの応答時間が大幅に改善されます。
Advanced Searchは以下の環境でデフォルトで有効です:
- GitLab.com(有償サブスクリプション)
- GitLab Dedicated(有償サブスクリプション)
GitLab Self-Managed環境では、管理者がElasticsearchまたはOpenSearchを設定してAdvanced Searchを有効化することで利用できます。
Advanced Searchが利用できない場合、GLQLは自動的にPostgreSQLを使用します。
まとめ:GitLabをもっと使いこなそう!
GitLab 18.11のGLQL機能拡張は、すべてのユーザーが無料で利用できる強力なツールです。特にCI/CDを活用しているチームにとっては、パイプラインやジョブのデータを簡単に分析・可視化できるようになったことで、以下のメリットが得られます:
- 開発効率の可視化と改善点の特定
- CI/CD問題の早期発見と迅速な対応
- チーム全体での情報共有の促進
- ドキュメントの自動更新による最新情報の維持
ぜひこの機会に、GLQLを試してみてください。GitLabをより深く理解し、チームの生産性を向上させる新しい発見があるはずです!
参考リンク
対象バージョン: GitLab 18.11
対象ティア: Free, Premium, Ultimate
提供環境: GitLab.com, GitLab Self-Managed, GitLab Dedicated