根据查看TeamCity REST API文档,请求统计数据的方式如下:
http://teamcity:8111/httpAuth/app/rest/builds/<buildLocator>/statistics/
这种方法可以使用,但仅能提供当前构建的统计数据(通过测试、代码覆盖率、重复次数等),我想要构建一个图表来展示趋势,因此需要过去一个月的历史数据。
是否有一种方法可以从TeamCity API获取这些历史统计数据?
根据查看TeamCity REST API文档,请求统计数据的方式如下:
http://teamcity:8111/httpAuth/app/rest/builds/<buildLocator>/statistics/
这种方法可以使用,但仅能提供当前构建的统计数据(通过测试、代码覆盖率、重复次数等),我想要构建一个图表来展示趋势,因此需要过去一个月的历史数据。
是否有一种方法可以从TeamCity API获取这些历史统计数据?
从TeamCity 8.1开始,要获取一组构建的统计值,请使用以下请求,如TeamCity REST文档所述:
http://teamcity:8111/app/rest/builds?locator=BUILDS_LOCATOR&fields=build(id,number,status,buildType(id,name,projectName),statistics(property(name,value)))
这个函数将返回符合BUILDS_LOCATOR条件的构建节点,并在每个节点中“展开”统计信息。 例如,使用“buildType:(id:BUILD_CONFIG_ID)”作为“BUILDS_LOCATOR”,可以获取UI配置ID为“BUILD_CONFIG_ID”的构建配置所对应的构建。
很遗憾,我无法仅从TeamCity API中获取此数据,因此解决方案是与数据库对抗。
select
build_data_storage.build_id,
build_type_mapping.ext_id as 'build_type_id',
data_storage_dict.value_type_key as 'metric_name',
build_data_storage.metric_value,
history.build_number,
history.build_finish_time_server
from
build_data_storage
join
data_storage_dict on build_data_storage.metric_id = data_storage_dict.metric_id
join
history on build_data_storage.build_id = history.build_id
join
build_type_mapping on history.build_type_id = build_type_mapping.int_id