# encoding: utf-8 require_relative '../../api' module Github # Since blobs can be any arbitrary binary data, the input and responses for # the blob api takes an encoding parameter that can be either utf-8 or base64. # If your data cannot be losslessly sent as a UTF-8 string, you can base64 encode it. class Client::GitData::Blobs < API VALID_BLOB_PARAM_NAMES = %w[ content encoding ].freeze # Get a blob # # @example # github = Github.new # github.git_data.blobs.get 'user-name', 'repo-name', 'sha' # # @api public def get(*args) arguments(args, required: [:user, :repo, :sha]) get_request("/repos/#{arguments.user}/#{arguments.repo}/git/blobs/#{arguments.sha}", arguments.params) end alias :find :get # Create a blob # # @param [Hash] params # @input params [String] :content # String of content. # @input params [String] :encoding # String containing encodingutf-8 or base64 # # @examples # github = Github.new # github.git_data.blobs.create 'user-name', 'repo-name', # content: "Content of the blob", # encoding: "utf-8" # # @api public def create(*args) arguments(args, required: [:user, :repo]) do permit VALID_BLOB_PARAM_NAMES assert_required VALID_BLOB_PARAM_NAMES end post_request("/repos/#{arguments.user}/#{arguments.repo}/git/blobs", arguments.params) end end # GitData::Blobs end # Github