Skip to content

Instantly share code, notes, and snippets.

@phuonghuynh
Last active September 18, 2017 09:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save phuonghuynh/3686fdd4e41bf1ac75dc551407794ad8 to your computer and use it in GitHub Desktop.
Save phuonghuynh/3686fdd4e41bf1ac75dc551407794ad8 to your computer and use it in GitHub Desktop.
require 'net/http'
require 'uri'
require 'json'
require 'net/http'
@job_name = ENV['JOB_NAME']
@build_number = ENV['BUILD_NUMBER']
@jenkins_url = ENV['JENKINS_URL']
@jenkins_username = ENV['JENKINS_USERNAME']
@jenkins_password = ENV['JENKINS_PASSWORD']
@pr_number = ENV['PR_NUMBER']
def post_it(url, json)
uri = URI(url)
req = Net::HTTP::Post.new(uri.to_s)
req.basic_auth(ENV['GIT_USER'], ENV['GIT_TOKEN'])
# req.basic_auth("username", "password")
req.body = json.to_json #'{"body": "Test message"}' # `to_json` can be used
req["content-type"] = "application/json"
rsp = Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
http.request(req)
end
JSON(rsp.body)
end
def read_log
uri = URI("#{@jenkins_url}/job/#{@job_name}/#{@build_number}/consoleText")
req = Net::HTTP::Get.new(uri.to_s)
req.basic_auth(@jenkins_username, @jenkins_password)
rsp = Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
http.request(req)
end
rsp.body
end
log = read_log
log = {
'public' => true,
'description' => "the desc", #"##{no} Build #{success ? :succeeded : :failed} - https://github.com/#{user}/#{repo}/commit/#{commit}",
'files' => {'build.log' => {'content' => log}}
}
rsp = post_it 'https://api.github.com/gists', log
gist_url = rsp['git_pull_url']
@pr_number = @pr_number.sub '/pull/', '/issues/'
rsp = post_it "https://api.github.com/repos/#{@pr_number}/comments", {"body" => ":pray:\n#{gist_url}"}
puts rsp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment