Cookbook
- プラン: Premium、Ultimate
- 提供形態: GitLab.com
- ステータス: ベータ
この機能の利用可否は機能フラグによって制御されています。 詳細については、履歴を参照してください。 この機能はテスト目的で利用可能ですが、本番環境での使用には対応していません。
最も一般的なOrbitのユースケース向けにすぐに使えるクエリです。すべての例はREST APIフォーマットを使用しています。MCPを通じて実行するには、JSONボディをquery_graphに渡してください。
ブラスト半径分析
「これを変更すると何が壊れるか?」という問いに答えます。
特定のモジュールをインポートしているすべてのファイルを検索する
payments-serviceをトレースしたいモジュールまたはライブラリに置き換えてください。
{
"query_type": "traversal",
"node": {
"id": "sym",
"entity": "ImportedSymbol",
"columns": ["file_path", "import_path", "identifier_name"],
"filters": {
"import_path": {"op": "contains", "value": "payments-service"}
}
},
"limit": 100
}共有ライブラリに依存しているプロジェクトを検索する
{
"query_type": "traversal",
"nodes": [
{
"id": "f",
"entity": "File",
"filters": {"path": {"op": "contains", "value": "shared-auth-lib"}}
},
{"id": "b", "entity": "Branch", "columns": ["name", "is_default"]},
{"id": "p", "entity": "Project", "columns": ["name", "full_path"]}
],
"relationships": [
{"type": "ON_BRANCH", "from": "f", "to": "b"},
{"type": "CONTAINS", "from": "p", "to": "b"}
],
"limit": 100
}オンボーディングとコードベースの探索
「このコードベースを理解するのを助けてほしい」という問いに答えます。
プロジェクトで最もアクティブなコントリビューターを検索する
{
"query_type": "aggregation",
"nodes": [
{"id": "u", "entity": "User", "columns": ["username", "name"]},
{
"id": "mr",
"entity": "MergeRequest",
"filters": {"state": "merged"}
},
{
"id": "p",
"entity": "Project",
"filters": {"full_path": "my-org/my-project"}
}
],
"relationships": [
{"type": "AUTHORED", "from": "u", "to": "mr"},
{"type": "IN_PROJECT", "from": "mr", "to": "p"}
],
"group_by": [{"kind": "node", "node": "u"}],
"aggregations": [
{"function": "count", "target": "mr", "alias": "merged_mrs"}
],
"aggregation_sort": {"column": "merged_mrs", "direction": "DESC"},
"limit": 10
}依存関係マッピング
「サービス間はどのように接続されているか?」という問いに答えます。
インポートされた定義をマップする
{
"query_type": "aggregation",
"nodes": [
{
"id": "sym",
"entity": "ImportedSymbol",
"columns": ["import_path"],
"filters": {
"import_path": {"op": "contains", "value": "payments"}
}
},
{"id": "def", "entity": "Definition", "columns": ["name", "fqn", "file_path"]}
],
"relationships": [
{"type": "IMPORTS", "from": "sym", "to": "def"}
],
"group_by": [{"kind": "node", "node": "def"}],
"aggregations": [
{"function": "count", "target": "sym", "alias": "import_count"}
],
"aggregation_sort": {"column": "import_count", "direction": "DESC"},
"limit": 20
}パイプラインの健全性
「CI/CDの問題はどこにあるか?」という問いに答えます。
失敗したパイプラインが最も多いプロジェクトを検索する
{
"query_type": "aggregation",
"nodes": [
{"id": "pl", "entity": "Pipeline", "filters": {"status": "failed"}},
{"id": "p", "entity": "Project", "columns": ["name", "full_path"]}
],
"relationships": [
{"type": "IN_PROJECT", "from": "pl", "to": "p"}
],
"group_by": [{"kind": "node", "node": "p"}],
"aggregations": [
{"function": "count", "target": "pl", "alias": "failed_count"}
],
"aggregation_sort": {"column": "failed_count", "direction": "DESC"},
"limit": 10
}失敗したジョブとその失敗理由を検索する
{
"query_type": "traversal",
"node": {
"id": "j",
"entity": "Job",
"columns": ["name", "status", "failure_reason"],
"filters": {"status": "failed"}
},
"limit": 10
}脆弱性トレーシング
「セキュリティリスクはどこにあり、どのように発生したか?」という問いに答えます。
グループ内のすべてのクリティカルおよび高重大度の脆弱性を検索する
{
"query_type": "traversal",
"nodes": [
{
"id": "v",
"entity": "Vulnerability",
"columns": ["title", "severity", "state", "report_type"],
"filters": {
"severity": {"op": "in", "value": ["critical", "high"]},
"state": "detected"
}
},
{"id": "p", "entity": "Project", "columns": ["name", "full_path"]}
],
"relationships": [
{"type": "IN_PROJECT", "from": "v", "to": "p"}
],
"order_by": {"node": "v", "property": "severity", "direction": "DESC"},
"limit": 50
}プロジェクト別に脆弱性を集計する
{
"query_type": "aggregation",
"nodes": [
{
"id": "v",
"entity": "Vulnerability",
"filters": {"state": "detected"}
},
{"id": "p", "entity": "Project", "columns": ["name", "full_path"]}
],
"relationships": [
{"type": "IN_PROJECT", "from": "v", "to": "p"}
],
"group_by": [{"kind": "node", "node": "p"}],
"aggregations": [
{"function": "count", "target": "v", "alias": "vuln_count"}
],
"aggregation_sort": {"column": "vuln_count", "direction": "DESC"},
"limit": 20
}重大度別に脆弱性を集計する
{
"query_type": "aggregation",
"nodes": [
{
"id": "v",
"entity": "Vulnerability",
"filters": {"state": "detected"}
}
],
"group_by": [
{"kind": "property", "node": "v", "property": "severity", "alias": "severity"}
],
"aggregations": [
{"function": "count", "target": "v", "alias": "vuln_count"}
],
"aggregation_sort": {"column": "vuln_count", "direction": "DESC"},
"limit": 10
}