まくろぐ

GitHub GraphQL API のクエリ例: ユーザー情報を取得する (viewer, user)

更新:
作成:

サインイン済みのユーザー情報を取得する (viewer)

viewer クエリを使用すると、現在アクセスしているユーザー(サインイン中のユーザー)のユーザー情報(User オブジェクト)を取得することができます。

GraphQL クエリ
query {
  viewer {
    login  # ログインID
    name   # ユーザー名
    url    # ユーザーの GitHub ホームページ
    websiteUrl  # ユーザーの Web サイト
    avatarUrl   # ユーザーのアバター画像
  }
}
実行結果
{
  "data": {
    "viewer": {
      "login": "maku77",
      "name": "Maku Maku",
      "url": "https://github.com/maku77",
      "websiteUrl": "https://maku77.github.io/",
      "avatarUrl": "https://avatars2.githubusercontent.com/u/5519503?v=4"
    }
  }
}

指定したログイン ID のユーザー情報を取得する (user)

user クエリを使用すると、指定したユーザー名のユーザー情報を取得することができます。

GraphQL クエリ
query {
  user(login:"maku77") {
    login  # ログインID
    name   # ユーザー名
    url    # ユーザーの GitHub ホームページ
    websiteUrl  # ユーザーの Web サイト
    avatarUrl   # ユーザーのアバター画像
  }
}

取得できるオブジェクトは、viewer クエリの場合と同様に User オブジェクト です。

実行結果
{
  "data": {
    "user": {
      "login": "maku77",
      "name": "Maku Maku",
      "url": "https://github.com/maku77",
      "websiteUrl": "https://maku77.github.io/",
      "avatarUrl": "https://avatars2.githubusercontent.com/u/5519503?v=4"
    }
  }
}

ただし、指定したユーザー名が存在しない場合は data.user フィールドの値は null になり、errors フィールドの値が格納されます。

GraphQL クエリ(存在しないユーザーを指定する)
query {
  user(login:"no-such-user") {
    login
  }
}
実行結果
{
  "data": {
    "user": null
  },
  "errors": [
    {
      "type": "NOT_FOUND",
      "path": [
        "user"
      ],
      "locations": [
        {
          "line": 7,
          "column": 3
        }
      ],
      "message": "Could not resolve to a User with the login of 'no-such-user'."
    }
  ]
}

関連記事

まくろぐ
サイトマップまくへのメッセージ