class Buildkite::Pipelines::Api
Constants
- BASE_URI
- URI_PARTS
Public Class Methods
new(token)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 20 def initialize(token) @token = token end
Public Instance Methods
cancel_build(organization, pipeline, build)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 75 def cancel_build(organization, pipeline, build) raise NotImplementedError end
create_build(organization, pipeline)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 71 def create_build(organization, pipeline) raise NotImplementedError end
create_pipeline(organization, params)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 45 def create_pipeline(organization, params) uri = uri_for( organization: organization, pipelines: nil ) JSON.parse(post_request(uri, params).body) end
get_access_token()
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 24 def get_access_token uri = uri_for(access_token: nil) JSON.parse(get_request(uri).body) end
get_build(organization, pipeline, build)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 62 def get_build(organization, pipeline, build) uri = uri_for( organization: organization, pipeline: pipeline, build: build ) JSON.parse(get_request(uri).body) end
get_pipeline(organization, pipeline)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 33 def get_pipeline(organization, pipeline) response = get_request( uri_for( organization: organization, pipeline: pipeline ) ) if response.is_a?(Net::HTTPSuccess) JSON.parse(response.body) end end
get_pipeline_builds(organization, pipeline, **params)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 53 def get_pipeline_builds(organization, pipeline, **params) uri = uri_for(params.merge( organization: organization, pipeline: pipeline, builds: nil )) JSON.parse(get_request(uri).body) end
list_pipelines(organization)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 29 def list_pipelines(organization) raise NotImplementedError end
rebuild_build(organization, pipeline, build)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 79 def rebuild_build(organization, pipeline, build) raise NotImplementedError end
Private Instance Methods
get_request(uri)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 85 def get_request(uri) Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| request = prepare_request(Net::HTTP::Get.new(uri)) http.request(request) end end
post_request(uri, data)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 92 def post_request(uri, data) Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| request = prepare_request(Net::HTTP::Post.new(uri)) request.content_type = 'application/json' request.body = data.to_json http.request(request) end end
prepare_request(request)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 112 def prepare_request(request) request['Authorization'] = "Bearer #{@token}" request['Accept'] = 'application/json' request end
uri_for(options)
click to toggle source
# File lib/buildkite/pipelines/api.rb, line 101 def uri_for(options) uri_parts = URI_PARTS.each_with_object([]) do |(resource, path), parts| if options.key?(resource) parts << [path, options.delete(resource)].compact end end uri = URI(uri_parts.flatten.unshift(BASE_URI).join('/')) uri.query = URI.encode_www_form(options) if options.any? uri end