- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们是一家使用 C#、Team Foundation Server 和 Rally 作为我们主要项目跟踪的商店。
我们想使用 Rally Item ChangeSets 来遵循 TFS Changesets。使用 Rally 的 C# RestApi 似乎与用 Java 制作的有点不同。
有没有一种方法可以使用 Rally C# RestApi 完成与本文所述相同的事情? Rally update Changeset data from Java using Java Toolkit for Rally REST API
最佳答案
您绝对可以在 .NET 中执行相同的操作。一个好处是它比 Java 的等价物要简洁得多。这是一个例子:
// System Libraries
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Web;
// Rally REST API Libraries
using Rally.RestApi;
using Rally.RestApi.Response;
namespace RestExample_AddChangesetToUserStory
{
class Program
{
static void Main(string[] args)
{
// Set user parameters
String userName = "user@company.com";
String userPassword = "topsecret";
// Set Rally parameters
String rallyURL = "https://rally1.rallydev.com";
String rallyWSAPIVersion = "1.40";
//Initialize the REST API
RallyRestApi restApi;
restApi = new RallyRestApi(userName,
userPassword,
rallyURL,
rallyWSAPIVersion);
// Changeset Owner Username
String changesetOwner = "scm_integration@company.com";
// SCM Repository Name
String scmRepositoryName = "MySCMRepo";
// FormattedID of Artifact to associate to
String storyFormattedID = "US14";
// Create Request for User
Request userRequest = new Request("user");
userRequest.Fetch = new List<string>()
{
"UserName",
"Subscription",
"DisplayName"
};
// Add a Query to the Request
userRequest.Query = new Query("UserName", Query.Operator.Equals, changesetOwner);
// Query Rally
QueryResult queryUserResults = restApi.Query(userRequest);
// Grab resulting User object and Ref
DynamicJsonObject myUser = new DynamicJsonObject();
myUser = queryUserResults.Results.First();
String myUserRef = myUser["_ref"];
//Set our Workspace and Project scopings
String workspaceRef = "/workspace/12345678910";
String projectRef = "/project/12345678911";
bool projectScopingUp = false;
bool projectScopingDown = true;
// Get handle to SCM Repository
Request scmRequest = new Request("SCMRepository");
scmRequest.Fetch = new List<string>()
{
"ObjectID",
"Name",
"SCMType"
};
// Add query
scmRequest.Query = new Query("Name", Query.Operator.Equals, scmRepositoryName);
// Query Rally
QueryResult querySCMResults = restApi.Query(scmRequest);
DynamicJsonObject myRepository = new DynamicJsonObject();
myRepository = querySCMResults.Results.First();
// Find User Story that we want to add Changeset to
// Tee up Story Request
Request storyRequest = new Request("hierarchicalrequirement");
storyRequest.Workspace = workspaceRef;
storyRequest.Project = projectRef;
storyRequest.ProjectScopeDown = projectScopingDown;
storyRequest.ProjectScopeUp = projectScopingUp;
// Fields to Fetch
storyRequest.Fetch = new List<string>()
{
"Name",
"FormattedID",
"Changesets"
};
// Add a query
storyRequest.Query = new Query("FormattedID", Query.Operator.Equals, storyFormattedID);
// Query Rally for the Story
QueryResult queryResult = restApi.Query(storyRequest);
// Pull reference off of Story fetch
var storyObject = queryResult.Results.First();
String storyReference = storyObject["_ref"];
// Pull existing Changesets off of Story
var existingChangesets = storyObject["Changesets"];
Console.WriteLine("Story: " + storyFormattedID);
Console.WriteLine("Number of Existing Changesets: " + existingChangesets.Count);
// DynamicJSONObject for New Changeset
DynamicJsonObject newChangeset = new DynamicJsonObject();
// Commit Time Stamp
String commitTimeStamp = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ");
// Populate Changeset Attributes
newChangeset["SCMRepository"] = myRepository;
newChangeset["Author"] = myUserRef;
newChangeset["Revision"] = "2451";
newChangeset["Uri"] = "https://svnrepo.company.com:8001";
newChangeset["CommitTimestamp"] = commitTimeStamp;
// Artifacts list
var changeSetArtifacts = new ArrayList();
changeSetArtifacts.Add(storyObject);
// Update attribute on Changeset
newChangeset["Artifacts"] = changeSetArtifacts;
try
{
// Create the Changeset
Console.WriteLine("Creating Rally Changeset...");
CreateResult myChangesetCreateResult = restApi.Create("ChangeSet", newChangeset);
String myChangesetRef = myChangesetCreateResult.Reference;
Console.WriteLine("Successfully Created Rally Changeset: " + myChangesetRef);
List<string> createWarnings = myChangesetCreateResult.Warnings;
for (int i = 0; i < createWarnings.Count; i++)
{
Console.WriteLine(createWarnings[i]);
}
List<string> createErrors = myChangesetCreateResult.Errors;
for (int i = 0; i < createErrors.Count; i++)
{
Console.WriteLine(createErrors[i]);
}
}
catch (Exception e)
{
Console.WriteLine("Exception occurred creating Rally Changeset: " + e.StackTrace);
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
}
}
关于c# - 使用 C# Rally RestApi 添加和更新 Rally 项目变更集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692850/
我是 Golang 的菜鸟,试图创建 RestApi,它从 postman 那里获取请求并将其存储在 MYSQL 中。 在尝试插入具有两列(名称和标题)但一列在插入数据库时始终为空的行时,请告诉我
到目前为止,我已经了解到Rally RestAPI不支持SSO登录。我相信从2014年1月起,这种情况将不再成立。支持SSO登录的Excel Rally加载项使用了相同的API(此处是Rally Ad
Outlook RestAPI 无法正常工作 我正在关注文档 https://dev.outlook.com/RestGettingStarted/Tutorial/python 我从 Outlook
虽然我能够提取特定测试集中存在的所有测试用例并修改或更新所有测试结果。更新该测试集中的测试用例后,测试集未反射(reflect)结论(通过/失败)。 如果我导航到其中一个 tescase 详细信息页面
我有一个问题。当我有其他实体时,我不知道如何创建 API。我与 Postman 合作,当我请求查看数据库中的所有项目时,我也想接收这些实体。 例如,这是我的实体: @Entity @Table(nam
我尝试调试了大约 2 个小时,但没有成功。 这是我的错误: jinja2.exceptions.UndefinedError jinja2.exceptions.UndefinedError: 'it
我有一个相当简单的 .NET WebApi 应用程序,我试图在 IIS 中托管它。按照 MS 站点上关于此的所有说明进行操作。这是它的启动方法。 public static void Main
我刚刚在 Cloudant 仪表板上创建了新文档 { "_id": "548de788223ed6fa9f1dd6db1b51a32e", "_rev": "9-364c9192decc399
我是 Node Passport 身份验证的新手。我完整的写了一个 Passport 认证的例子如下: var express = require('express'); var passport =
我正在开发一个使用 paypal 的 rest api 的支付系统。到目前为止一切顺利,我可以毫无问题地在沙盒模式下进行支付。 现在我需要 paypal 来通知我某些事件......这就是我想使用 w
我刚开始学习 Go,想创建自己的 REST API。 问题很简单:我想将我的 api 的路由放在不同的文件中,例如:routes/users.go,然后我将其包含在“main”函数中并注册这些路由。
以前学生的时候只知道 Server 能做个分析,能返回个图或者要素 JSON,RESTAPI 也是工作之后才逐渐知道的。 MapServer 和 FeatureServer 都能容纳 FeatureL
这个问题在这里已经有了答案: Return JSON response from Flask view (14 个回答) 去年关闭。 我在 Flask 上写申请.对于 RestAPI我在用 flask
我正在开发一个需要从Outlook.com和Office 365检索和编辑日历事件的应用程序。我已经看到有2个选项: Outlook REST API Microsoft Graph 它们似乎具有几乎
我用了this official guide在 Windows 上安装 Docker 容器。一切看起来都很好,我现在可以在 Windows 容器上运行 IIS。 但是,我在任何地方都看不到它,也不知道
尝试创建对象的对象而不是我的代码正在创建对象数组。 我的程序代码 $output['result'] =[]; $query = "SELECT DISTINCT ti.`test_id`, ti.`
我有 Salesforce 应用程序管理员用户名和密码(客户端 ID 除外)。我想使用 RestAPI 生成授权:不记名 token 。您能否告诉我如何使用 RestAPI 生成授权:不记名 toke
我们有一个第三方 API,它同时具有 GET 和 PUT 方法。第三方 API 仅以 XML 格式返回响应和接受。 api 看起来像 https://bh.org/api/v2/prj/A152 返回
作为 ReactJS 新手,我尝试解析 RestfulAPI JSON 响应,但是,我无法检索所有元素。在尝试访问 text.subjects.code 和 text.subjects.descrip
我已经尝试使用此代码 fragment 来使用 HTTPResponse 从 android 获取响应 String s=""; try { HttpClient httpClient=new
我是一名优秀的程序员,十分优秀!