0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitLab 18.11】無料ユーザーも使える!GLQL(GitLab Query Language)でプロジェクト・パイプライン・ジョブのデータが取得可能に

0
Posted at

【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値(マイルストーンの upcomingstarted など)
  • 真偽値(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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?