Sha256: bf9b141475d18bedc8daaaf4bc3ae7e8f98e6daa99a1105ffda30c5df6284af1
Contents?: true
Size: 1.57 KB
Versions: 6
Compression:
Stored size: 1.57 KB
Contents
require 'httparty' module Lois class Github Status = Struct.new(:state, :context, :description, :artifact_url) attr_reader :credentials, :organization, :repository, :commit_sha def initialize(credentials, organization, repository, commit_sha) @credentials = credentials @organization = organization @repository = repository @commit_sha = commit_sha end def pending(context, description, artifact_url = nil) update_status(Status.new('pending', context, description, artifact_url)) end def success(context, description, artifact_url = nil) update_status(Status.new('success', context, description, artifact_url)) end def failure(context, description, artifact_url = nil) update_status(Status.new('failure', context, description, artifact_url)) end def commit_status_api_url @commit_status_api_url ||= File.join( 'https://api.github.com/repos', organization, repository, 'statuses', commit_sha ) end private def update_status(status) username, password = credentials.split(':') auth = { username: username, password: password } body = { state: status.state, context: status.context, description: status.description } body[:target_url] = status.artifact_url if status.artifact_url response = ::HTTParty.post(commit_status_api_url, basic_auth: auth, body: body.to_json) return if response.success? puts "Failed to update github: #{response.code}-#{response.body}" end end end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
lois-0.1.8 | lib/lois/github.rb |
lois-0.1.7 | lib/lois/github.rb |
lois-0.1.6 | lib/lois/github.rb |
lois-0.1.5 | lib/lois/github.rb |
lois-0.1.4 | lib/lois/github.rb |
lois-0.1.3 | lib/lois/github.rb |