module TeamCityApi
Public Class Methods
create_build_config_vcs_root_config(vcsRootId)
click to toggle source
# File lib/teamcity_api.rb, line 178 def TeamCityApi.create_build_config_vcs_root_config vcsRootId xml = Builder::XmlMarkup.new :indent => 2 xml.tag!("vcs-root-entry"){ xml.tag!("vcs-root", "id" => "#{vcsRootId}") } end
create_build_trigger_config(buildConfigurationId)
click to toggle source
# File lib/teamcity_api.rb, line 36 def TeamCityApi.create_build_trigger_config buildConfigurationId xml = Builder::XmlMarkup.new :indent => 2 xml.build{ xml.triggeringOptions 'cleanSources' => 'true', 'rebuildAllDependencies' => 'true', 'queueAtTop' => 'true' xml.buildType 'id' => "#{buildConfigurationId}" } end
create_new_build_configuration(projectId, inputFile, username, password)
click to toggle source
# File lib/teamcity_api.rb, line 125 def TeamCityApi.create_new_build_configuration projectId, inputFile, username, password file = File.open("../spec/#{inputFile}", "r") requestContent = file.read uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/projects/id:#{projectId}/buildTypes", {'Accept' => 'application/json'} request.body = requestContent request.content_type = 'application/json' request.basic_auth username, password response = http.request request # File handling will be removed and instead use Tempfile for better security target = open("../spec/CreateNewBuildConfigurationResponse", 'w') target.truncate(0) target.write(response.body) target.close end
create_new_project(inputFile, username, password)
click to toggle source
# File lib/teamcity_api.rb, line 58 def TeamCityApi.create_new_project inputFile, username, password file = File.open("../spec/#{inputFile}", "r") requestContent = file.read uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/projects", {'Accept' => 'application/json'} request.body = requestContent request.content_type = 'application/json' request.basic_auth username, password response = http.request request puts response.body end
create_new_vcs_root(inputFile, username, password)
click to toggle source
# File lib/teamcity_api.rb, line 85 def TeamCityApi.create_new_vcs_root inputFile, username, password file = File.open("../spec/#{inputFile}", "r") requestContent = file.read uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/vcs-roots", {'Accept' => 'application/json'} request.body = requestContent request.content_type = 'application/json' request.basic_auth username, password response = http.request request puts response.body end
get_build_configs_by_projectId(projectId, username, password)
click to toggle source
Build Config Get/Create API
# File lib/teamcity_api.rb, line 99 def TeamCityApi.get_build_configs_by_projectId projectId, username, password uri = URI.parse "http://teamcity.relayhealth.com" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Get.new "/app/rest/projects/id:#{projectId}/buildTypes", {'Accept' => 'application/json'} request.basic_auth username, password response = http.request request # File handling will be removed and instead use Tempfile for better security target = open("../spec/BuildConfigsByProjectId", 'w') target.truncate(0) target.write(response.body) target.close end
get_build_configs_by_projectId_and_build_configurationId(projectId, buildConfigurationId, username, password)
click to toggle source
# File lib/teamcity_api.rb, line 112 def TeamCityApi.get_build_configs_by_projectId_and_build_configurationId projectId, buildConfigurationId, username, password uri = URI.parse "http://teamcity.relayhealth.com" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Get.new "/app/rest/projects/id:#{projectId}/buildTypes/id:#{buildConfigurationId}", {'Accept' => 'application/json'} request.basic_auth username, password response = http.request request # File handling will be removed and instead use Tempfile for better security target = open("../spec/BuildConfigByProjectAndBuildConfigurationId", 'w') target.truncate(0) target.write(response.body) target.close end
get_build_status(projectId)
click to toggle source
# File lib/teamcity_api.rb, line 224 def TeamCityApi.get_build_status projectId # list queued builds per project uri = URI.parse 'http://teamcity.relayhealth.com' http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Get.new "/app/rest/buildQueue?locator=project:#{projectId}", {'Accept' => 'application/json'} creds = TeamCityApi.get_teamcity_creds request.basic_auth creds[0].delete("\n"), creds[1].delete("\n") response = http.request request end
get_project_by_id(projectId, username, password)
click to toggle source
Project Get/Create API
# File lib/teamcity_api.rb, line 45 def TeamCityApi.get_project_by_id projectId, username, password uri = URI.parse "http://teamcity.relayhealth.com" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Get.new "/app/rest/projects/id:#{projectId}", {'Accept' => 'application/json'} request.basic_auth username, password response = http.request request # File handling will be removed and instead use Tempfile for better security target = open("../spec/ProjectConfigByProjectId", 'w') target.truncate(0) target.write(response.body) target.close end
get_teamcity_creds()
click to toggle source
# File lib/teamcity_api.rb, line 10 def TeamCityApi.get_teamcity_creds file = File.open(Dir.pwd + '/spec/p.txt', 'r') content = file.read content.gsub!(/\r\n?/, "\n") line_num = 0 creds = [] content.each_line do |line| creds << line end creds end
get_vcs_roots_by_id(vcsRootId, username, password)
click to toggle source
VCS-Root Get/Create API
# File lib/teamcity_api.rb, line 72 def TeamCityApi.get_vcs_roots_by_id vcsRootId, username, password uri = URI.parse "http://teamcity.relayhealth.com" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Get.new "/httpAuth/app/rest/vcs-roots/id:#{vcsRootId}", {'Accept' => 'application/json'} request.basic_auth username, password response = http.request request # File handling will be removed and instead use Tempfile for better security target = open("../spec/VcsRootConfigByVcsRootId", 'w') target.truncate(0) target.write(response.body) target.close end
set_build_configuration_build_step(buildConfigurationId, inputFile, username, password)
click to toggle source
Setup build configuration step
# File lib/teamcity_api.rb, line 186 def TeamCityApi.set_build_configuration_build_step buildConfigurationId, inputFile, username, password file = File.open("../spec/#{inputFile}", "r") requestContent = file.read uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/buildTypes/id:#{buildConfigurationId}/steps/" request.body = requestContent request.content_type = 'application/xml' request.basic_auth username, password response = http.request request end
set_build_configuration_feature(buildConfigurationId, inputFile, username, password)
click to toggle source
Setup build feature step
# File lib/teamcity_api.rb, line 199 def TeamCityApi.set_build_configuration_feature buildConfigurationId, inputFile, username, password file = File.open("../spec/#{inputFile}", "r") requestContent = file.read uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/buildTypes/id:#{buildConfigurationId}/features/" request.body = requestContent request.content_type = 'application/xml' request.basic_auth username, password response = http.request request end
set_build_configuration_parameter(buildConfigurationId, parameterName, parameterValue, username, password)
click to toggle source
Setup build configuration parameters
# File lib/teamcity_api.rb, line 156 def TeamCityApi.set_build_configuration_parameter buildConfigurationId, parameterName, parameterValue, username, password uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Put.new "/httpAuth/app/rest/buildTypes/id:#{buildConfigurationId}/parameters/#{parameterName}" request.body = parameterValue request.content_type = 'text/plain' request.basic_auth username, password response = http.request request end
set_build_configuration_setting(buildConfigurationId, settingName, settingValue, username, password)
click to toggle source
Setup build configuration settings
# File lib/teamcity_api.rb, line 145 def TeamCityApi.set_build_configuration_setting buildConfigurationId, settingName, settingValue, username, password uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Put.new "/httpAuth/app/rest/buildTypes/id:#{buildConfigurationId}/settings/#{settingName}" request.body = settingValue request.content_type = 'text/plain' request.basic_auth username, password response = http.request request end
set_build_configuration_trigger(buildConfigurationId, inputFile, username, password)
click to toggle source
Setup build trigger step
# File lib/teamcity_api.rb, line 212 def TeamCityApi.set_build_configuration_trigger buildConfigurationId, inputFile, username, password file = File.open("../spec/#{inputFile}", "r") requestContent = file.read uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/buildTypes/id:#{buildConfigurationId}/triggers/" request.body = requestContent request.content_type = 'application/xml' request.basic_auth username, password response = http.request request end
set_build_configuration_vcs_root(buildConfigurationId, vcsRootId, username, password)
click to toggle source
Setup build configuration Vcs-Root
# File lib/teamcity_api.rb, line 167 def TeamCityApi.set_build_configuration_vcs_root buildConfigurationId, vcsRootId, username, password uri = URI.parse "http://localhost:9999/" http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new "/httpAuth/app/rest/buildTypes/id:#{buildConfigurationId}/vcs-root-entries/" request.body = create_build_config_vcs_root_config vcsRootId request.content_type = 'application/xml' request.basic_auth username, password response = http.request request end
trigger_build(buildConfigurationId, username, password)
click to toggle source
Build trigger API
# File lib/teamcity_api.rb, line 23 def TeamCityApi.trigger_build buildConfigurationId, username, password puts "Triggering build configuration: #{buildConfigurationId} for #{username}..." configContent = create_build_trigger_config buildConfigurationId uri = URI.parse 'http://teamcity.relayhealth.com' http = Net::HTTP.new uri.host, uri.port request = Net::HTTP::Post.new '/httpAuth/app/rest/buildQueue' request.body = configContent request.content_type = 'application/xml' request.basic_auth username, password response = http.request request puts response end