Sha256: 5ff877ba26eaae0b565e94a87ce60f0c8436e6743b4d888a9404e399bfb93110

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

require 'httmultiparty'

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

      def initialize(runner)
        super
        options.concat(%w(api_key api_secret repo_id))
      end

      def run_postcapture
        t = Time.now.to_i.to_s
        HTTMultiParty.post(
          "#{BASE_URL}/git_commits.json",
          body: {
            git_commit: {
              sha: runner.sha,
              repo_external_id: configuration['repo_id'],
              image: File.open(runner.main_image),
              raw: File.open(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
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lolcommits-0.9.3 lib/lolcommits/plugin/dot_com.rb
lolcommits-0.9.3.pre3 lib/lolcommits/plugin/dot_com.rb
lolcommits-0.9.3.pre2 lib/lolcommits/plugin/dot_com.rb
lolcommits-0.9.3.pre1 lib/lolcommits/plugin/dot_com.rb