Sha256: 11217e2f3c8e8dabee2a06c0e3a01051de3bb6f7c80fba4a37ff17bb572248b4

Contents?: true

Size: 1.78 KB

Versions: 7

Compression:

Stored size: 1.78 KB

Contents

# -*- encoding : utf-8 -*-
require 'rest_client'
require 'base64'

module Lolcommits
  class Uploldz < Plugin
    attr_accessor :endpoint

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

    def run_postcapture
      return unless valid_configuration?

      if runner.git_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.git_info.repo,
                          :author_name  => runner.git_info.author_name,
                          :author_email => runner.git_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
      :postcapture
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
snapgit-0.6.5 lib/lolcommits/plugins/uploldz.rb
snapgit-0.6.4 lib/lolcommits/plugins/uploldz.rb
lolcommits-0.6.4 lib/lolcommits/plugins/uploldz.rb
lolcommits-0.6.3 lib/lolcommits/plugins/uploldz.rb
lolcommits-0.6.3.pre1 lib/lolcommits/plugins/uploldz.rb
lolcommits-0.6.2 lib/lolcommits/plugins/uploldz.rb
lolcommits-0.6.2.pre1 lib/lolcommits/plugins/uploldz.rb