Crystal mine
examples/mine.cr
# CI systems: Travis-CI / GitHub Actions require "http/client" require "json" main def main token = read_config # get_page(token) search(token) end def read_config config_file = "config.txt" line = File.read_lines(config_file).first # puts line return line end def get_page(token) url = "https://api.github.com/users/szabgab" response = HTTP::Client.get(url, headers: HTTP::Headers{"AUthentication" => "token #{token}"}) puts response.status_code puts response.body end def search(token) per_page = 3 # max is 100 query = "language:crystal" page = 1 sort = "updated" # stars, forks, help-wanted-issues, updated order = "desc" url = "https://api.github.com/search/repositories?q=#{query}&per_page=#{per_page}&page=#{page}&sort=#{sort}&order=#{order}" response = HTTP::Client.get(url, headers: HTTP::Headers{"AUthentication" => "token #{token}"}) # puts typeof(response) # HTTP::Client::Response # puts typeof(response.body) # string # data = Hash(String, Any).from_json(response.body) json_text = response.body puts json_text # data = Hash(String, Bool | Array(Hash) | Int32 | Nil).from_json(json_text) # puts typeof(data) # puts data.keys # puts response.status_code # puts response.body end