Sha256: 2cd73ae905ef15193096060b20c2d5a9180369c1739dee690c79181b5706d1a8

Contents?: true

Size: 1.67 KB

Versions: 3

Compression:

Stored size: 1.67 KB

Contents

require 'rest_client'
require 'base64'

module Lolcommits
  module Plugin
    class Uploldz < Base
      attr_accessor :endpoint

      def initialize(runner: nil, config: nil)
        super
        options.concat(
          %w(
            endpoint
            optional_key
            optional_http_auth_username
            optional_http_auth_password
          )
        )
      end

      def run_capture_ready
        if !runner.vcs_info || runner.vcs_info.repo.empty?
          puts 'Repo is empty, skipping upload'
        else
          debug "Posting capture to #{configuration['endpoint']}"
          RestClient.post(
            configuration['endpoint'],
            {
              file: File.new(runner.main_image),
              message: runner.message,
              repo: runner.vcs_info.repo,
              author_name: runner.vcs_info.author_name,
              author_email: runner.vcs_info.author_email,
              sha: runner.sha,
              key: configuration['optional_key']
            },
            Authorization: authorization_header
          )
        end
      rescue => e
        log_error(e, "ERROR: RestClient POST FAILED #{e.class} - #{e.message}")
      end

      def configured?
        !configuration['enabled'].nil? && configuration['endpoint']
      end

      def authorization_header
        user     = configuration['optional_http_auth_username']
        password = configuration['optional_http_auth_password']
        return unless user || password

        'Basic ' + Base64.encode64("#{user}:#{password}").chomp
      end

      def self.name
        'uploldz'
      end

      def self.runner_order
        :capture_ready
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lolcommits-0.9.6 lib/lolcommits/plugin/uploldz.rb
lolcommits-0.9.5 lib/lolcommits/plugin/uploldz.rb
lolcommits-0.9.5.pre1 lib/lolcommits/plugin/uploldz.rb