正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Query Language(GLQL)

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLab Query Language(GLQL)は、すべてのGitLabに対応する単一の言語を作成するための試みです。使い慣れた構文を使用して、プラットフォーム内のあらゆる場所からコンテンツをフィルタリングして埋め込むために使用します。

Markdownコードブロックにクエリを埋め込みます。埋め込みビューは、GLQLソースコードブロックのレンダリングされた出力です。

GLQLを搭載した埋め込みビューのフィードバックイシューで、ごフィードバックをお寄せください。

クエリ構文

そのクエリ構文は、主に論理式で構成されています。これらの式は、<field> <operator> <value> and ...の構文に従います。

フィールド

フィールド名には、assigneeauthorlabelmilestoneのような値を使用できます。typeフィールドは、オブジェクトの種類(IssueMergeRequestなど)または作業アイテムの種類(TaskObjectiveなど)でクエリをフィルタリングするために使用できます。

サポートされているフィールド、サポートされている演算子、値の種類の完全なリストについては、GLQLフィールドを参照してください。

演算子

Comparison operators(比較演算子):

GLQL演算子説明検索での同等
=等しい / リスト内のすべてを含むis(=に等しい)
!=等しくない / リストに含まれていないis not(=に等しくない)
inリストに含まれるor / is one of
>より大きいdotted-circle 対象外
<より小さいdotted-circle 対象外
>=以上(>=)dotted-circle 対象外
<=以下(<=)dotted-circle 対象外

Logical operators(論理演算子): andのみがサポートされています。orは、in比較演算子を使用することで、一部のフィールドで間接的にサポートされます。

値には以下を含めることができます:

  • 文字列
  • 数字
  • 相対日付(-1d2w-6m1yなど)
  • 絶対日付(YYYY-MM-DD形式、2025-01-01など)
  • 関数(ユーザーフィールドの場合はcurrentUser()、日付の場合はtoday()など)
  • Enum値(マイルストーンの場合はupcomingstartedなど)
  • ブール値(trueまたはfalse
  • Null許容値(nullnoneanyなど)
  • GitLabの参照(ラベルの場合は~label、マイルストーンの場合は%Backlog、ユーザーの場合は@usernameなど)
  • 以前の値のいずれかを含むリスト(括弧()で囲み、カンマ,で区切ります)

埋め込みビュー

埋め込みビューは、MarkdownのGLQLソースコードブロックの出力です。ソースには、GLQLクエリの結果を表示する方法を記述したYAML属性と、クエリが含まれています。

サポートされている領域

埋め込みビューは、次の領域に表示できます:

  • グループとプロジェクトのWiki
  • 次の説明とコメント:
    • エピック
    • イシュー
    • マージリクエスト
    • 作業アイテム(タスク、OKR、またはエピック)
  • リポジトリMarkdownファイル

構文

埋め込みビューのソースの構文は、次のYAMLのスーパーセットです:

  • queryパラメータ: 論理演算子(andなど)で結合された式。
  • プレゼンテーションレイヤーに関連するパラメータ(displaylimitfieldstitledescriptionなど)はYAMLとして表されます。

ビューは、Markdownでコードブロックとして定義されます(Mermaidなどの他のコードブロックと同様)。

例:

  • gitlab-org/gitlabの認証済みユーザーに割り当てられた最初の5つのオープンイシューのテーブルを表示します。
  • titlestatehealthdescriptionepicmilestoneweightupdatedを表示します。
```glql
display: table
title: GLQL table 🎉
description: This view lists my open issues
fields: title, state, health, epic, milestone, weight, updated
limit: 5
query: group = "gitlab-org" AND assignee = currentUser() AND state = opened
```

このソースは、次のようなテーブルをレンダリングする必要があります:

現在のユーザーに割り当てられているイシューを一覧表示するテーブル

プレゼンテーションの構文

queryパラメータとは別に、オプションのパラメータを追加して、ビューのプレゼンテーションの詳細を構成できます。

サポートされているパラメータ:

パラメータデフォルト説明
collapsedfalseビューを折りたたむか展開するかを指定します。
descriptionなしタイトルの下に表示するオプションの説明。
displaytableデータを表示する方法。サポートされているオプション:tablelist、またはorderedList
fieldstitleビューに含めるフィールドのコンマ区切りリスト。
limit100最初のページネーションに表示するアイテムの数。最大値は100です。
sortupdated descソート順(ascまたはdesc)に従った、データをソートするフィールド
titleEmbedded table viewまたはEmbedded list view埋め込みビューの上部に表示されるタイトル。

たとえば、gitlab-org/gitlabプロジェクトの認証済みユーザーに割り当てられた最初の5つのイシューを、期日(最も早い順)でソートし、titlehealthdueフィールドを表示する場合は、次のようになります:

```glql
display: list
fields: title, health, due
limit: 5
sort: due asc
query: group = "gitlab-org" AND assignee = currentUser() AND state = opened
```

このソースは、次のようなリストをレンダリングする必要があります:

現在のユーザーに割り当てられているイシューのリストを含む埋め込みビュー

ページネーション

埋め込みビューには、デフォルトで結果の最初のページネーションが表示されます。limitパラメータは、表示されるアイテムの数を制御します。

次のページネーションを読み込むには、最後の行で更に表示を選択します。

フィールド関数

動的に生成された列を作成するには、ビューのfieldsパラメータで関数を使用します。完全なリストについては、埋め込みビューの関数を参照してください。

カスタムフィールドエイリアス

テーブルビューの列の名前をカスタム値に変更するには、AS構文キーワードを使用してフィールドにエイリアスを設定します。

```glql
display: list
fields: title, labels("workflow::*") AS "Workflow", labels("priority::*") AS "Priority"
limit: 5
query: project = "gitlab-org/gitlab" AND assignee = currentUser() AND state = opened
```

このソースは、TitleWorkflowPriorityの列を含むビューを表示します。

アクションの表示

ビューがページに表示されたら、View actions(アクションの表示)( ellipsis_v )ドロップダウンを使用して、アクションを実行します。

サポートされているアクション:

アクション説明
ソースを表示ビューのソースを表示します。
ソースをコピービューのソースをクリップボードにコピーします。
コンテンツをコピーテーブルまたはリストのコンテンツをクリップボードにコピーします。
再読み込みこのビューを再読み込む。