0

我正在使用 VersionOne Java Api 来修改故事的不同属性。但我想将 VersionOne 与我的持续集成环境集成。我已经阅读了一些关于 BuildRuns 的内容,但我在 API 中看不到太多关于如何创建 buildrun 然后将其分配给故事的内容。有人可以简要介绍一下 buildrun 应该完成什么以及是否/如何使用 Java API 创建它。一个代码示例将非常有帮助。

谢谢

4

1 回答 1

0

BuildRun 代表您正在处理的项目的构建,它包括有关与其相关的 BuildProject、它包含的变更集以及其中解决的故事和缺陷 (PrimaryWorkitems) 的信息。

此外,BuildRuns 是资产层次结构的一部分:

  • 项目有 BuildProjects
  • BuildProjects 有 BuildRuns
  • BuildRuns 有变更集

您可以使用此 VersionOne 元 API 查询查看 BuildRun 资产的属性:

http://{server}/{instance}/meta.v1/BuildRun?xsl=api.xsl

正如您将在元数据中看到的,BuildRun 所需的属性是 BuildProject、日期和名称。这意味着在创建 BuildRun 之前,您必须首先创建一个 BuildProject 以将其与之关联。

假设您已经有一个 BuildProject,您可以发出一个 HTTP POST 来创建一个 BuildRun,如下所示:

网址:

http://{server}/{instance}/rest-1.v1/Data/BuildRun

XML 有效负载:

<Asset>
    <Attribute name="BuildProject" act="set">BuildProject:4049</Attribute>
    <Attribute name="Name" act="set">My New BuildRun</Attribute>
    <Attribute name="Date" act="set">12/17/2014</Attribute>
</Asset>

或者,使用 Java SDK,它看起来像这样:

public static void createBuildRun() throws V1Exception {

   V1APIConnector _dataConnector = new V1APIConnector("http://{server}/{instance}/rest-1.v1/", "username", "password");
   V1APIConnector _metaConnector = new V1APIConnector("http://{server}/{instance}/meta.v1/");

   IMetaModel _metaModel = new MetaModel(_metaConnector);
   IServices _services = new Services(_metaModel, _dataConnector);

   Oid buildProjectId = Oid.fromToken("BuildProject:4049", _metaModel);
   IAssetType assetType = _metaModel.getAssetType("BuildRun");
   Asset newAsset = _services.createNew(assetType, buildProjectId);
   IAttributeDefinition nameAttribute = assetType.getAttributeDefinition("Name");
   IAttributeDefinition dateAttribute = assetType.getAttributeDefinition("Date");
   newAsset.setAttributeValue(nameAttribute, "My New BuildRun");
   newAsset.setAttributeValue(dateAttribute, new Date("12/17/2014"));
   _services.save(newAsset);
}
于 2014-12-17T12:44:56.603 回答