Sha256: f387ff72446d0049b461aea8b609f46f4093ab9a06f11cc9be70b318251c45e0

Contents?: true

Size: 1.67 KB

Versions: 9

Compression:

Stored size: 1.67 KB

Contents

module Percy
  class Client
    module Builds
      def create_build(repo, options = {})
        pull_request_number = options[:pull_request_number] ||
          Percy::Client::Environment.pull_request_number
        commit_data = options[:commit_data] || Percy::Client::Environment.commit
        resources = options[:resources]

        data = {
          'data' => {
            'type' => 'builds',
            'attributes' => {
              'commit-sha' => commit_data[:sha],
              'commit-branch' => commit_data[:branch],
              'commit-committed-at' => commit_data[:committed_at],
              'commit-author-name' => commit_data[:author_name],
              'commit-author-email' => commit_data[:author_email],
              'commit-committer-name' => commit_data[:committer_name],
              'commit-committer-email' => commit_data[:committer_email],
              'commit-message' => commit_data[:message],
              'pull-request-number' => pull_request_number,
            },
          }
        }

        if resources
          if !resources.respond_to?(:each)
            raise ArgumentError.new(
              'resources argument must be an iterable of Percy::Client::Resource objects')
          end
          relationships_data = {
            'relationships' => {
              'resources' => {
                'data' => resources.map { |r| r.serialize },
              },
            },
          }
          data['data'].merge!(relationships_data)
        end

        post("#{config.api_url}/repos/#{repo}/builds/", data)
      end

      def finalize_build(build_id)
        post("#{config.api_url}/builds/#{build_id}/finalize", {})
      end
    end
  end
end


Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
percy-client-0.2.11 lib/percy/client/builds.rb
percy-client-0.2.10 lib/percy/client/builds.rb
percy-client-0.2.9 lib/percy/client/builds.rb
percy-client-0.2.8 lib/percy/client/builds.rb
percy-client-0.2.7 lib/percy/client/builds.rb
percy-client-0.2.6 lib/percy/client/builds.rb
percy-client-0.2.5 lib/percy/client/builds.rb
percy-client-0.2.4 lib/percy/client/builds.rb
percy-client-0.2.3 lib/percy/client/builds.rb