昨日に引き続き、VALU Advent Calendar 2019 二日目の記事になります。
※ VALUではPHPを利用していますが、使い慣れているRubyを使います。
github explorerではsign inするだけでGraphQL APIを利用することが出来ましたが、自作のプログラムで利用するためにはAccess Tokenが必要になります。
https://github.com/settings/tokens でAccess Tokenの発行をしましょう。
RubyMineからプロジェクト作成します。
visualize_activities.gemspec
に必要なgemを追加します。
+ spec.add_dependency "thor"
+ spec.add_dependency "graphql-client"
end
thor
はCLIツールをかんたんに作れるgemです。
graphql-client
は言わずもがな、GraphQLのクライアントとなるgemです。
bundle install --path .bundle
コマンド一発ですね。
lib/visualize_activities.rb
を以下のように修正します。
ドキュメントどおりに着実に。
+++ b/lib/visualize_activities.rb
@@ -1,6 +1,22 @@
require "visualize_activities/version"
+require "graphql/client"
+require "graphql/client/http"
+
module VisualizeActivities
+ HTTP = GraphQL::Client::HTTP.new('<https://api.github.com/graphql>') do
+ def headers(context)
+ {
+ "Authorization" => "Bearer #{ENV['GITHUB_ACCESS_TOKEN_FOR_VISUALIZE_ACTIVITIES']}"
+ }
+ end
+ end
+
+ Schema = GraphQL::Client.load_schema(HTTP)
+ Client = GraphQL::Client.new(schema: Schema, execute: HTTP)
+
class Error < StandardError; end
# Your code goes here...
end