A curated list of libraries & SDKs for the Bluesky API and AT Protocol
1require 'json'
2require 'net/http'
3require 'uri'
4require 'yaml'
5
6module Requests
7 AUTH_FILE = 'config/auth.yml'
8
9 def auth_config
10 @auth_config ||= begin
11 config_path = File.join(__dir__, '..', AUTH_FILE)
12 YAML.load(File.read(config_path))
13 end
14 end
15
16 def request_headers
17 { 'User-Agent' => "sdk.blue project info scanner (+https://sdk.blue) Ruby/#{RUBY_VERSION}"}
18 end
19
20 def get_response(url)
21 Net::HTTP.get_response(URI(url), request_headers)
22 end
23end
24
25class FetchError < StandardError
26 attr_reader :response
27
28 def initialize(response)
29 super("Error: Invalid response for #{response.uri}: #{response}")
30 @response = response
31 end
32end