GitHubのGraphQL Explorerを使って手軽にGraphQLをキャッチアップしていく
GitHubのGraphQL Explorerとは、GraphQLを用いてGitHub上のリソースを読み込み/変更することができるサイトです。
利用するにはGitHubアカウントでのログインが必要で、お持ちでない方は作成しておきましょう。
その後、ご自身のアカウントにGraphQL Explorerがアクセスするための許可をしておくと利用できるようになります。
このような簡単にキャッチアップできるサイトは便利ですね。
サクラエディタのリポジトリにスターを付けてみる
この課題を達成するためにやることは2つで、以下の通りとなります
- サクラエディタのリポジトリのIDを調べる
- 当該プロジェクトIDに対してスターを付ける操作を行う
それではやっていきましょう
サクラエディタのリポジトリのIDを調べる
Explorerの左側のコード入力欄に以下を入力します。
データを取得する際には query
を用います。
サクラエディタのオーナーは sakura-editor
、 リポジトリ名は sakura
ですので、以下のようなクエリとなります。
今回ほしいのはIDなので、repository配下にはid
のみを要求するような書き方にし、実行します。
query {
repository(owner: "sakura-editor", name: "sakura") {
id
}
}
すると、以下のようなJSONのレスポンスが返され、サクラエディタのリポジトリのIDがMDEwOlJlcG9zaXRvcnkxMzQwNTc5Njk=
であることがわかります。
{
"data": {
"repository": {
"id": "MDEwOlJlcG9zaXRvcnkxMzQwNTc5Njk="
}
}
}
当該プロジェクトIDに対してスターを付ける操作を行う
既存のデータを操作するには、mutation
を用います。
クエリは以下の通りとなります。
mutation {
addStar (input: {starrableId: "MDEwOlJlcG9zaXRvcnkxMzQwNTc5Njk="}){
# 構文上は戻り値の指定が必須なので、不要なときは`clientMutationId`と書く
clientMutationId
}
}
ところが、レスポンスがエラーFORBIDDEN
となって返ってきました。
sakura-editor
が所属する組織がExplorerによる制御を許可していないようです。
荒らしのリスクなどを考えると当然の措置ですね、、反省です
{
"data": {
"addStar": null
},
"errors": [
{
"type": "FORBIDDEN",
"path": [
"addStar"
],
"extensions": {
"saml_failure": false
},
"locations": [
{
"line": 31,
"column": 3
}
],
"message": "Although you appear to have the correct authorization credentials, the `sakura-editor` organization has enabled OAuth App access restrictions, meaning that data access to third-parties is limited. For more information on these restrictions, including how to enable this app, visit https://docs.github.com/articles/restricting-access-to-your-organization-s-data/"
}
]
}
自分の任意のリポジトリにスターを付けてみる
ということで、自分自身のリポジトリにスターを付けてみましょう。
上記の投稿を参考に、リポジトリのIDを取得します。
次に、そのIDを上記のmutationクエリの引数に当てはめて実行すると、以下のようなレスポンスが得られます。
{
"data": {
"addStar": {
"clientMutationId": null
}
}
}
Webブラウザ上でもスターがついていることが確認できると思います!