Sha256: 6ec708bc24601b82665ad9780d5ca30a07eb05fabadd6b59e61aa70350535561

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

require 'httmultiparty'

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

      def initialize(runner: nil, config: nil)
        super
        options.concat(%w(api_key api_secret repo_id))
      end

      def run_capture_ready
        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
        :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/dot_com.rb
lolcommits-0.9.5 lib/lolcommits/plugin/dot_com.rb
lolcommits-0.9.5.pre1 lib/lolcommits/plugin/dot_com.rb