Sha256: 4b15e5f03208b82821cc9fa281d909d9eb1a5c252f28378fba5632962b83608c

Contents?: true

Size: 1.51 KB

Versions: 3

Compression:

Stored size: 1.51 KB

Contents

# -*- encoding : utf-8 -*-
require 'httmultiparty'

module Lolcommits
  class DotCom < Plugin
    BASE_URL = 'http://lolcommits-dot-com.herokuapp.com'

    def initialize(runner)
      super
      self.options.concat(['api_key', 'api_secret', 'repo_id'])
    end

    def run_postcapture
      return unless valid_configuration?

      t = Time.now.to_i.to_s
      resp = HTTMultiParty.post("#{BASE_URL}/git_commits.json",
                                :body => {
                                  :git_commit => {
                                    :sha              => self.runner.sha,
                                    :repo_external_id => configuration['repo_id'],
                                    :image            => File.open(self.runner.main_image),
                                    :raw              => File.open(self.runner.snapshot_loc)
                                  },

                                  :key   => configuration['api_key'],
                                  :t     => t,
                                  :token =>  Digest::SHA1.hexdigest(configuration['api_secret'] + t)
                                }
      )
    rescue => e
      log_error(e, "ERROR: HTTMultiParty POST FAILED #{e.class} - #{e.message}")
    end

    def configured?
      !configuration['enabled'].nil? &&
        configuration['api_key'] &&
        configuration['api_secret'] &&
        configuration['repo_id']
    end

    def self.name
      'dot_com'
    end

    def self.runner_order
      :postcapture
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lolcommits-0.5.7 lib/lolcommits/plugins/dot_com.rb
lolcommits-0.5.6 lib/lolcommits/plugins/dot_com.rb
lolcommits-0.5.5 lib/lolcommits/plugins/dot_com.rb