GraphQLによる監査レポートの設定
このページでは、GraphiQLエクスプローラーを使用して、特定のサブセットのユーザーの監査レポートを設定する方法について説明します。
同じクエリを HTTP エンドポイント経由で直接実行するには、cURL
を使用します。詳細については、コマンドラインから始めるためのガイダンスを参照してください。
例のユーザークエリは、GitLab インスタンスのユーザーのサブセットをユーザー名かグローバル ID で探します。クエリには以下のものが含まれます:
pageInfo
ページネーションの実装に必要なデータがコンテナに含まれています。GitLab はカーソルベースのページ分割を使います。詳細については、GraphQL ドキュメントのPaginationを参照ください。
nodes
GraphQL クエリでは、nodes
はグラフ](https://en.wikipedia.org/wiki/Vertex_(graph_theory))上の[nodes
のコレクションを表すために使用されます。この場合、ノードのコレクションはUser
オブジェクトのコレクションです。それぞれについて、出力します:
- そのユーザーの
id
。 -
membership
フラグメント。そのユーザーが属するプロジェクトやグループのメンバーシップを表します。フラグメントの出力は、...memberships
記法で表します。
GitLab GraphQL APIは広範囲に渡っており、様々なエンティティの大量のデータを出力することができます。最新の情報については、公式のリファレンスドキュメントを参照してください。
GraphiQLエクスプローラの設定
この手順では、GraphiQLエクスプローラーにコピー&ペーストできる実質的な例を示します。GraphiQLエクスプローラーは以下の用途に使用できます:
- GitLab.comユーザーhttps://gitlab.com/-/graphql-explorer。
- 自己管理ユーザー
https://gitlab.example.com/-/graphql-explorer
。
-
以下のコードをコピーしてください:
{ users(usernames: ["user1", "user2", "user3"]) { pageInfo { endCursor startCursor hasNextPage } nodes { id ...memberships } } } fragment membership on MemberInterface { createdAt updatedAt accessLevel { integerValue stringValue } createdBy { id } } fragment memberships on User { groupMemberships { nodes { ...membership group { id name } } } projectMemberships { nodes { ...membership project { id name } } } }
- GraphiQLエクスプローラーツールを開きます。
- GraphiQL エクスプローラー ツールの左ウィンドウに上記の
query
を貼り付けます。 - 再生」を選択すると、このような結果が得られます:
この GraphQL クエリは、ユーザーが明示的にメンバーになっているグループとプロジェクトを返します。GraphiQLエクスプローラーはセッション トークンを使用してリソースへのアクセスを作成するため、出力されるのは現在認証されているユーザーがアクセス可能なプロジェクトとグループに限定されます。
インスタンス管理者としてサインインした場合は、所有者に関係なくすべてのレコードにアクセスできます。
詳細については
- フラグメントやインターフェースなどのGraphQL固有のエンティティについては、GraphQLの公式ドキュメントを参照してください。
- 個々の属性については、GraphQL APIリソースを参照してください。