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 ...の構文に従います。
フィールド
フィールド名には、assignee、author、label、milestoneのような値を使用できます。typeフィールドは、オブジェクトの種類(Issue、MergeRequestなど)または作業アイテムの種類(TaskやObjectiveなど)でクエリをフィルタリングするために使用できます。
サポートされているフィールド、サポートされている演算子、値の種類の完全なリストについては、GLQLフィールドを参照してください。
演算子
Comparison operators(比較演算子):
| GLQL演算子 | 説明 | 検索での同等 |
|---|---|---|
= | 等しい / リスト内のすべてを含む | is(=に等しい) |
!= | 等しくない / リストに含まれていない | is not(=に等しくない) |
in | リストに含まれる | or / is one of |
> | より大きい | 対象外 |
< | より小さい | 対象外 |
>= | 以上(>=) | 対象外 |
<= | 以下(<=) | 対象外 |
Logical operators(論理演算子): andのみがサポートされています。orは、in比較演算子を使用することで、一部のフィールドで間接的にサポートされます。
値
値には以下を含めることができます:
- 文字列
- 数字
- 相対日付(
-1d、2w、-6m、1yなど) - 絶対日付(
YYYY-MM-DD形式、2025-01-01など) - 関数(ユーザーフィールドの場合は
currentUser()、日付の場合はtoday()など) - Enum値(マイルストーンの場合は
upcomingやstartedなど) - ブール値(
trueまたはfalse) - Null許容値(
null、none、anyなど) - GitLabの参照(ラベルの場合は
~label、マイルストーンの場合は%Backlog、ユーザーの場合は@usernameなど) - 以前の値のいずれかを含むリスト(括弧
()で囲み、カンマ,で区切ります)
埋め込みビュー
埋め込みビューは、MarkdownのGLQLソースコードブロックの出力です。ソースには、GLQLクエリの結果を表示する方法を記述したYAML属性と、クエリが含まれています。
サポートされている領域
埋め込みビューは、次の領域に表示できます:
- グループとプロジェクトのWiki
- 次の説明とコメント:
- エピック
- イシュー
- マージリクエスト
- 作業アイテム(タスク、OKR、またはエピック)
- リポジトリMarkdownファイル
構文
埋め込みビューのソースの構文は、次のYAMLのスーパーセットです:
queryパラメータ: 論理演算子(andなど)で結合された式。- プレゼンテーションレイヤーに関連するパラメータ(
display、limit、fields、title、descriptionなど)はYAMLとして表されます。
ビューは、Markdownでコードブロックとして定義されます(Mermaidなどの他のコードブロックと同様)。
例:
gitlab-org/gitlabの認証済みユーザーに割り当てられた最初の5つのオープンイシューのテーブルを表示します。- 列
title、state、health、description、epic、milestone、weight、updatedを表示します。
```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パラメータとは別に、オプションのパラメータを追加して、ビューのプレゼンテーションの詳細を構成できます。
サポートされているパラメータ:
| パラメータ | デフォルト | 説明 |
|---|---|---|
collapsed | false | ビューを折りたたむか展開するかを指定します。 |
description | なし | タイトルの下に表示するオプションの説明。 |
display | table | データを表示する方法。サポートされているオプション:table、list、またはorderedList。 |
fields | title | ビューに含めるフィールドのコンマ区切りリスト。 |
limit | 100 | 最初のページネーションに表示するアイテムの数。最大値は100です。 |
sort | updated desc | ソート順(ascまたはdesc)に従った、データをソートするフィールド。 |
title | Embedded table viewまたはEmbedded list view | 埋め込みビューの上部に表示されるタイトル。 |
たとえば、gitlab-org/gitlabプロジェクトの認証済みユーザーに割り当てられた最初の5つのイシューを、期日(最も早い順)でソートし、title、health、dueフィールドを表示する場合は、次のようになります:
```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
```このソースは、Title、Workflow、Priorityの列を含むビューを表示します。
アクションの表示
ビューがページに表示されたら、View actions(アクションの表示)( )ドロップダウンを使用して、アクションを実行します。
サポートされているアクション:
| アクション | 説明 |
|---|---|
| ソースを表示 | ビューのソースを表示します。 |
| ソースをコピー | ビューのソースをクリップボードにコピーします。 |
| コンテンツをコピー | テーブルまたはリストのコンテンツをクリップボードにコピーします。 |
| 再読み込み | このビューを再読み込む。 |

