public Query ( Request request ) : QueryResult | ||
request | Request | The request configuration |
return | QueryResult |
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String projectRef = "/project/12352608219"; Request defectRequest = new Request("Defect"); defectRequest.Project = projectRef; defectRequest.Fetch = new List<string>() { "Name", "FormattedID", "Tasks" }; defectRequest.Query = new Query("FormattedID", Query.Operator.Equals, "DE8"); QueryResult defectResults = restApi.Query(defectRequest); String defRef = defectResults.Results.First()._ref; String defName = defectResults.Results.First().Name; Console.WriteLine(defName + " " + defRef); DynamicJsonObject defect = restApi.GetByReference(defRef, "Name", "FormattedID", "Tasks"); String taskCollectionRef = defect["Tasks"]._ref; Console.WriteLine(taskCollectionRef); ArrayList taskList = new ArrayList(); foreach (var d in defectResults.Results) { Request tasksRequest = new Request(d["Tasks"]); QueryResult tasksResult = restApi.Query(tasksRequest); foreach (var t in tasksResult.Results) { var tName = t["Name"]; var tFormattedID = t["FormattedID"]; Console.WriteLine("Task: " + tName + " " + tFormattedID); DynamicJsonObject task = new DynamicJsonObject(); task["_ref"] = t["_ref"]; taskList.Add(task); } } Console.WriteLine("Count of elements in the collection before adding a new task: " + taskList.Count); DynamicJsonObject newTask = new DynamicJsonObject(); newTask["Name"] = "another last task"; newTask["WorkProduct"] = defRef; CreateResult createResult = restApi.Create(projectRef, "Task", newTask); newTask = restApi.GetByReference(createResult.Reference, "FormattedID", "Name", "WorkProduct"); Console.WriteLine(newTask["FormattedID"] + " " + newTask["Name"] + " WorkProduct:" + newTask["WorkProduct"]["FormattedID"]); taskList.Add(newTask); Console.WriteLine("Count of elements in the array after adding a new task: " + taskList.Count); defect["Tasks"] = taskList; OperationResult updateResult = restApi.Update(defRef, defect); }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc123"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String[] workspaces = new String[] { "/workspace/12352608129", "/workspace/34900020610" }; foreach (var s in workspaces) { Console.WriteLine(" ______________ " + s + " _________________"); Request typedefRequest = new Request("TypeDefinition"); typedefRequest.Workspace = s; typedefRequest.Fetch = new List<string>() { "ElementName", "Ordinal" }; typedefRequest.Query = new Query("Parent.Name", Query.Operator.Equals, "Portfolio Item"); QueryResult typedefResponse = restApi.Query(typedefRequest); foreach (var t in typedefResponse.Results) { if (t["Ordinal"] > -1) { Console.WriteLine("ElementName: " + t["ElementName"] + " Ordinal: " + t["Ordinal"]); } } } }
static void Main(string[] args) { //Initialize the REST API RallyRestApi restApi; //with this user I get hundreds of workspaces - this is a subadmin restApi = new RallyRestApi("*****@*****.**", "supersecret", "https://rally1.rallydev.com", "v2.0"); //with this user I get only two workspaces //restApi = new RallyRestApi("*****@*****.**", "scret", "https://rally1.rallydev.com", "v2.0"); /***************THIS CODE PRINTS OUT ALL WORKSPACES AND PROJECTS IN THE SUB ******************************/ //get the current subscription DynamicJsonObject sub = restApi.GetSubscription("Workspaces"); Request wRequest = new Request(sub["Workspaces"]); wRequest.Limit = 1000; QueryResult queryResult = restApi.Query(wRequest); int allProjects = 0; foreach (var result in queryResult.Results) { var workspaceReference = result["_ref"]; var workspaceName = result["Name"]; Console.WriteLine("Workspace: " + workspaceName); Request projectsRequest = new Request(result["Projects"]); projectsRequest.Fetch = new List<string>() { "Name", "State", }; projectsRequest.Limit = 10000; //project requests are made per workspace QueryResult queryProjectResult = restApi.Query(projectsRequest); int projectsPerWorkspace = 0; foreach (var p in queryProjectResult.Results) { allProjects++; projectsPerWorkspace++; Console.WriteLine(projectsPerWorkspace + " Project: " + p["Name"] + " State: " + p["State"]); } Console.WriteLine("----------------------------"); } Console.WriteLine("Returned " + allProjects + " projects in the subscription"); }
static void Main(string[] args) { //Initialize the REST API using API KEYd RallyRestApi restApi; restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com"); DateTime now = DateTime.Today; DateTime checkback = now.AddDays(-2); //last two days String checkbackString = checkback.ToString("yyyy-MM-dd"); //get the subscription DynamicJsonObject sub = restApi.GetSubscription("Workspaces"); Request wRequest = new Request(sub["Workspaces"]); wRequest.Limit = 1000; QueryResult queryResult = restApi.Query(wRequest); foreach (var result in queryResult.Results) { var workspaceReference = result["_ref"]; var workspaceName = result["Name"]; Request projectsRequest = new Request(result["Projects"]); projectsRequest.Fetch = new List<string>() { "Name" }; projectsRequest.Limit = 1000; QueryResult queryProjectResult = restApi.Query(projectsRequest); foreach (var p in queryProjectResult.Results) { Request artifactRequest = new Request("artifact"); artifactRequest.Project = p["_ref"]; artifactRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, checkbackString); QueryResult queryResults = restApi.Query(artifactRequest); if (queryResults.TotalResultCount > 0) { Console.WriteLine("Project: " + p["Name"] + " (Workspace " + workspaceName + ")"); } } } }
static void Main(string[] args) { int storyCount = 0; int taskCount = 0; RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/1234"; //replace this OID with an OID of your workspace Request sRequest = new Request("HierarchicalRequirement"); sRequest.Workspace = workspaceRef; sRequest.Fetch = new List<string>() { "FormattedID", "Name", "Tasks", "Release", "Project", "Owner" }; sRequest.Query = new Query("Release.Name", Query.Operator.Equals, "r1").And(new Query("Owner", Query.Operator.Equals, "*****@*****.**")); QueryResult queryResults = restApi.Query(sRequest); foreach (var s in queryResults.Results) { Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"] + " Release: " + s["Release"]._refObjectName + " Project: " + s["Project"]._refObjectName + " Owner: " + s["Owner"]._refObjectName); storyCount++; Request tasksRequest = new Request(s["Tasks"]); QueryResult queryTaskResult = restApi.Query(tasksRequest); foreach (var t in queryTaskResult.Results) { Console.WriteLine("Task: " + t["FormattedID"] + " State: " + t["State"]); taskCount++; } } Console.WriteLine(storyCount + " stories, "+ taskCount + " tasks "); }
static void Main(string[] args) { int storyCount = 0; int taskCount = 0; RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/12352608129"; //replace this OID with an OID of your workspace Request sRequest = new Request("HierarchicalRequirement"); sRequest.Workspace = workspaceRef; sRequest.Fetch = new List<string>() { "FormattedID", "Name", "Tasks", "Iteration"}; sRequest.Query = new Query("(Iteration.StartDate <= Today)").And(new Query("(Iteration.EndDate >= Today)")); QueryResult queryResults = restApi.Query(sRequest); foreach (var s in queryResults.Results) { Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"]); storyCount++; Request tasksRequest = new Request(s["Tasks"]); QueryResult queryTaskResult = restApi.Query(tasksRequest); foreach (var t in queryTaskResult.Results) { Console.WriteLine("Task: " + t["FormattedID"] + " State: " + t["State"]); taskCount++; } } Console.WriteLine(storyCount + " stories, " + taskCount + " tasks "); }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String projectRef = "/project/12352608219"; Request request = new Request("TestSet"); request.Project = projectRef; request.Fetch = new List<string>() { "Name", "FormattedID", "TestCases" }; request.Query = new Query("FormattedID", Query.Operator.Equals, "TS31"); QueryResult result = restApi.Query(request); String testsetRef = result.Results.First()._ref; DynamicJsonObject testset = restApi.GetByReference(testsetRef, "TestCases"); Request request2 = new Request(testset["TestCases"]); request2.Fetch = new List<string>() { "Name", "FormattedID" }; request2.Limit = 1000; QueryResult result2 = restApi.Query(request2); int caseCount = 0; foreach (var testcase in result2.Results) { Console.WriteLine("TestCase: " + testcase["FormattedID"]); caseCount++; } Console.WriteLine(caseCount); }
public List<dynamic> GetStories(string currentRunTime, string projectRef) { List<dynamic> returnValue; RallyRestApi rallyApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); Request request = new Request("HierarchicalRequirement"); request.Project = projectRef; request.ProjectScopeUp = false; request.ProjectScopeDown = false; request.PageSize = 200; try { QueryResult qr = rallyApi.Query(request); var results = qr.Results; returnValue = results.ToList(); while (results.Count() == 200) { Console.WriteLine("inside while loop... " + results.Count()); request.Start = returnValue.Count + 1; results = rallyApi.Query(request).Results; returnValue.AddRange(results); } Console.WriteLine("total results returned... " + returnValue.Count); } catch (Exception) { throw; } return returnValue; }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/12345"; //replace this OID with an OID of your workspace DateTime today = DateTime.Today; DateTime checkback = today.AddDays(-2); //last two days String checkbackString = checkback.ToString("yyyy-MM-dd"); Request sRequest = new Request("HierarchicalRequirement"); sRequest.Workspace = workspaceRef; sRequest.Fetch = new List<string>() { "Name", "FormattedID", "RevisionHistory", "Revisions", "LastUpdateDate" }; sRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, checkbackString); QueryResult queryResults = restApi.Query(sRequest); foreach (var s in queryResults.Results) { Console.WriteLine("**********************************************************"); Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"]); Console.WriteLine("**********************************************************"); String historyRef = s["RevisionHistory"]._ref; Request revisionsRequest = new Request("Revisions"); revisionsRequest.Query = new Query("RevisionHistory", Query.Operator.Equals, historyRef); revisionsRequest.Fetch = new List<string>() { "User", "Description", "RevisionNumber", "CreationDate" }; QueryResult revisionsResults = restApi.Query(revisionsRequest); foreach (var r in revisionsResults.Results) { Console.WriteLine("-------------------------------------------------------"); Console.WriteLine("Description: " + r["Description"] + " Author: " + r["User"]._refObjectName + " CreationDate: " + r["CreationDate"]); } } }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc123"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String workspaceRef = "/workspace/123"; String projectRef = "/project/456"; Request request = new Request("PortfolioItem/Feature"); request.Fetch = new List<string>() { "Name", "FormattedID" }; request.Query = new Query("FormattedID", Query.Operator.Equals, "F2356"); QueryResult result = restApi.Query(request); String featureRef = result.Results.First()._ref; Console.WriteLine("found" + featureRef); //create stories try { for (int i = 1; i <= 25; i++) { DynamicJsonObject story = new DynamicJsonObject(); story["Name"] = "story " + i; story["PlanEstimate"] = new Random().Next(2,10); story["PortfolioItem"] = featureRef; story["Project"] = projectRef; CreateResult createResult = restApi.Create(workspaceRef, "HierarchicalRequirement", story); story = restApi.GetByReference(createResult.Reference, "FormattedID"); Console.WriteLine("creating..." + story["FormattedID"]); } //read stories DynamicJsonObject feature = restApi.GetByReference(featureRef, "UserStories"); Request storiesRequest = new Request(feature["UserStories"]); storiesRequest.Fetch = new List<string>() { "FormattedID", "PlanEstimate" }; storiesRequest.Limit = 1000; QueryResult storiesResult = restApi.Query(storiesRequest); int storyCount = 0; foreach (var userStory in storiesResult.Results) { Console.WriteLine(userStory["FormattedID"] + " " + userStory["PlanEstimate"]); storyCount++; } Console.WriteLine(storyCount); } catch (Exception e) { Console.WriteLine(e); } }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String projectRef = "/project/222"; Request testSetRequest = new Request("TestSet"); testSetRequest.Project = projectRef; testSetRequest.Fetch = new List<string>() { "Name", "FormattedID", "TestCases" }; testSetRequest.Query = new Query("FormattedID", Query.Operator.Equals, "TS22"); QueryResult queryTestSetResults = restApi.Query(testSetRequest); String tsRef = queryTestSetResults.Results.First()._ref; String tsName = queryTestSetResults.Results.First().Name; Console.WriteLine(tsName + " " + tsRef); DynamicJsonObject testSet = restApi.GetByReference(tsRef, "FormattedID", "TestCases"); String testCasesCollectionRef = testSet["TestCases"]._ref; Console.WriteLine(testCasesCollectionRef); ArrayList testCasesList = new ArrayList(); foreach (var ts in queryTestSetResults.Results) { Request tcRequest = new Request(ts["TestCases"]); QueryResult queryTestCasesResult = restApi.Query(tcRequest); foreach (var tc in queryTestCasesResult.Results) { var tName = tc["Name"]; var tFormattedID = tc["FormattedID"]; Console.WriteLine("Test Case: " + tName + " " + tFormattedID); DynamicJsonObject aTC = new DynamicJsonObject(); aTC["_ref"] = tc["_ref"]; testCasesList.Add(aTC); //add each test case in the collection to array 'testCasesList' } } Console.WriteLine("count of elements in the array before adding a new tc:" + testCasesList.Count); DynamicJsonObject anotherTC = new DynamicJsonObject(); anotherTC["_ref"] = "/testcase/123456789"; //any existing test to add to the collection testCasesList.Add(anotherTC); Console.WriteLine("count of elements in the array:" + testCasesList.Count); testSet["TestCases"] = testCasesList; OperationResult updateResult = restApi.Update(tsRef, testSet); }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/12352608129"; //use your workspace object id Request defectRequest = new Request("defect"); defectRequest.Workspace = workspaceRef; defectRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, "2014-07-20"); defectRequest.Fetch = new List<string>() { "Name", "FormattedID" }; int stopAfter = 2; //KEEP IT LOW UNTIL YOU MAKE SURE IT IS DELETING THE INTENDED SUBSET OF YOUR DATA int count = 0; QueryResult queryDefectResults = restApi.Query(defectRequest); foreach (var d in queryDefectResults.Results) { if (count == stopAfter) { break; } Console.WriteLine("Deleting: " + d["FormattedID"] + " " + d["Name"]); OperationResult deleteResult = restApi.Delete(workspaceRef, d["_ref"]); //DELTED DEFECTS WILL BE FOUND IN THE RECYCLE BIN count++; } }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/12345"; //replace this OID with ObjectID of your workspace Request revRequest = new Request("Revision"); revRequest.Workspace = workspaceRef; revRequest.Fetch = new List<string>() { "Description", "User", "CreationDate" }; DateTime now = DateTime.Now; Console.WriteLine("now: " + now); //look 4 hours back //DateTime fourHoursBack = now.AddHours(-4); //String fourHoursBackString = fourHoursBack.ToString("yyyy-MM-dd" + "T" + "HH:mm"); //Console.WriteLine(fourHoursBack); //Console.WriteLine(fourHoursBackString); //revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, fourHoursBackString); //look 10 min back DateTime someMinutesBack = now.AddMinutes(-10); String someMinutesBackString = someMinutesBack.ToString("yyyy-MM-dd" + "T" + "HH:mm"); Console.WriteLine("someMinutesBack: " + someMinutesBack); Console.WriteLine("someMinutesBackString: " + someMinutesBackString); revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, someMinutesBackString); QueryResult queryRevResults = restApi.Query(revRequest); foreach (var rev in queryRevResults.Results) { Console.WriteLine("----------"); Console.WriteLine("Description: " + rev["Description"] + " Author: " + rev["User"]._refObjectName + " CreationDate: " + rev["CreationDate"]); } }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com"); String projectRef = "/project/12352608219"; bool projectScopingUp = false; bool projectScopingDown = false; Request storyRequest = new Request("hierarchicalrequirement"); storyRequest.Project = projectRef; storyRequest.ProjectScopeUp = projectScopingUp; storyRequest.ProjectScopeDown = projectScopingDown; storyRequest.Limit = 10000; storyRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, "2013-01-01"); storyRequest.Fetch = new List<string>() { "Name", "FormattedID" }; QueryResult queryResults = restApi.Query(storyRequest); int count = 0; foreach (var d in queryResults.Results) { count++; Console.WriteLine(count + ". FormattedID: " + d["FormattedID"] + " Name: " + d["Name"]); } Console.WriteLine("Found " + queryResults.TotalResultCount); }
public List<dynamic> GetArtifactNotificationForDateRange(RallyRestApi rallyApi, string LastItemDateStamp, string currentRunTime, string projectRef) { List<dynamic> returnValue; Request request = new Request("artifactnotification"); request.Project = projectRef; //request.PageSize = 200; request.Limit = 5000; request.Fetch = new List<string>() { "IDPrefix", "ID"}; request.Query = new Query("CreationDate", Query.Operator.GreaterThan, LastItemDateStamp).And(new Query("CreationDate", Query.Operator.LessThanOrEqualTo, currentRunTime)); try { QueryResult qr = rallyApi.Query(request); var results = qr.Results; foreach (var r in results) { Console.WriteLine(r["IDPrefix"] + r["ID"]); } returnValue = results.ToList(); return returnValue; } catch (Exception) { throw; } }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc123"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String workspaceRef = "/workspace/12352608129"; //String projectRef = "/project/39468725060"; Request request = new Request("Attachment"); request.Workspace = workspaceRef; //request.Project = projectRef; request.Fetch = new List<string>() { "Artifact", "TestCaseResult", "Size", "CreationDate" }; request.Limit = 400; request.Order = "CreationDate Desc"; QueryResult results = restApi.Query(request); foreach (var a in results.Results) { if (a["Artifact"] != null) { Console.WriteLine("Artifact: " + a["Artifact"]["_ref"]); } else if (a["TestCaseResult"] != null) { Console.WriteLine("TestCaseResult: " + a["TestCaseResult"]["_ref"]); } Console.WriteLine("Size: " + a["Size"]); } }
static void Main(string[] args) { RallyRestApi restApi; //restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com"); //either username/passowrd or API Key authetnication is valid String workspaceRef = "/workspace/12352608129"; //replace this OID with an OID of your workspace DateTime today = DateTime.Today; DateTime checkback = today.AddDays(-5); String checkbackString = checkback.ToString("yyyy-MM-dd"); Request sRequest = new Request("HierarchicalRequirement"); sRequest.Workspace = workspaceRef; sRequest.Fetch = new List<string>() { "Name", "FormattedID", "Changesets", "LastUpdateDate" }; sRequest.Query = new Query("LastUpdateDate", Query.Operator.GreaterThanOrEqualTo, checkbackString); QueryResult queryResults = restApi.Query(sRequest); foreach (var s in queryResults.Results) { Console.WriteLine("**********************************************************"); Console.WriteLine("FormattedID: " + s["FormattedID"] + " Name: " + s["Name"]); Console.WriteLine("**********************************************************"); Request changesetRequest = new Request("Changesets"); QueryResult changesetResult = restApi.Query(changesetRequest); String author = "None"; if (changesetResult.TotalResultCount > 0) { foreach (var c in changesetResult.Results) { if (c["Author"] != null) { author = c["Author"]._refObjectName; } Console.WriteLine("changeset: Author:" + author + " SCMRepository: " + c["SCMRepository"]._refObjectName + " Message: " + c["Message"]); Request changesRequest = new Request(c["Changes"]); QueryResult changesResult = restApi.Query(changesRequest); foreach (var ch in changesResult.Results) { Console.WriteLine("Change: " + ch["Action"] + " PathAndFilename: " + ch["PathAndFilename"]); } } } } }
public ICollection<Story> GetAllStories() { var api = new RallyRestApi("*****@*****.**", "old*9salt"); var result = api.Query(new Request("HierarchicalRequirement") { Fetch = new[] {"Name", "PlanEstimate"}.ToList(), PageSize = 20, Limit = 20 }); return result.Results.Take(20).Select(Translate).ToList(); }
static void Main(string[] args) { String apiKey = "_abc123"; RallyRestApi restApi = new RallyRestApi(apiKey, "https://rally1.rallydev.com"); String projectRef = "/project/12352608219"; Request request = new Request("RecycleBinEntry"); request.Project = projectRef; request.Fetch = new List<string>() { "Name"}; request.Query = new Query("ID", Query.Operator.Equals, "DE6"); QueryResult result = restApi.Query(request); Console.WriteLine("Name: " + result.Results.First()["Name"]); }
static void Main(string[] args) { RallyRestApi restApi; //this app is using old 2.0.1 of .NET Toolkit restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/12345"; //replace this OID with an OID of your workspace Request request = new Request("Artifact"); request.Workspace = workspaceRef; request.Fetch = new List<string>() { "FormattedID", "Name"}; request.Query = new Query("FormattedID", Query.Operator.Equals, "DE4"); QueryResult result = restApi.Query(request); //since artifact query disregards prefix in FormattedID, it will return DE4, TA4, US4 if they all exist, hence //there is no guarantee that the first result will be a defect id we use result.Results.First()._ref as below: //String defectRef = result.Results.First()._ref; String defectRef = ""; foreach (var artifact in result.Results) { Console.WriteLine(artifact["_type"] + ": " + artifact["_ref"]); if (artifact["_type"] == "Defect") { defectRef = artifact["_ref"]; } } Request conversationPostRequest = new Request("ConversationPost"); conversationPostRequest.Workspace = workspaceRef; conversationPostRequest.Query = new Query("Artifact", Query.Operator.Equals, defectRef); conversationPostRequest.Fetch = new List<string>() { "Text", "User" }; QueryResult conversationPostResult = restApi.Query(conversationPostRequest); Console.WriteLine("Discussions:-------------------"); foreach (var post in conversationPostResult.Results) { Console.WriteLine(post["User"]["_refObjectName"] + ": " + post["Text"]); } }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc123"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String workspaceRef = "/workspace/1011574887"; //non-default workspace of the user String projectRef = "/project/1791269111"; //a non-default project of the user (inside the workspace above) try { //create testset DynamicJsonObject myTestSet = new DynamicJsonObject(); myTestSet["Name"] = "important set " + DateTime.Now; myTestSet["Project"] = projectRef; CreateResult createTestSet = restApi.Create(workspaceRef, "TestSet", myTestSet); myTestSet = restApi.GetByReference(createTestSet.Reference, "FormattedID", "Project"); Console.WriteLine(myTestSet["FormattedID"] + " " + myTestSet["Project"]._refObjectName); //find current iteration Request iterationRequest = new Request("Iteration"); iterationRequest.Project = projectRef; iterationRequest.ProjectScopeDown = false; iterationRequest.ProjectScopeUp = false; iterationRequest.Fetch = new List<string>() { "ObjectID", "Name" }; iterationRequest.Query = new Query("(StartDate <= Today)").And(new Query("(EndDate >= Today)")); QueryResult queryResults = restApi.Query(iterationRequest); if (queryResults.TotalResultCount > 0) { Console.WriteLine(queryResults.Results.First()["Name"] + " " + queryResults.Results.First()["ObjectID"]); myTestSet["Iteration"] = queryResults.Results.First()._ref; OperationResult updateResult = restApi.Update(myTestSet["_ref"], myTestSet); } else { Console.WriteLine("No current iterations"); } } catch (Exception e) { Console.WriteLine(e); } }
static void Main(string[] args) { //Initialize the REST API RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "topsecret", "https://rally1.rallydev.com", "v2.0"); //Set our Workspace and Project scopings String workspaceRef = "/workspace/1111"; //use valid OID of your workspace String projectRef = "/project/2222"; //use valid OID of your project bool projectScopingUp = false; bool projectScopingDown = true; Request userRequest = new Request("User"); userRequest.Workspace = workspaceRef; userRequest.Project = projectRef; userRequest.ProjectScopeUp = projectScopingUp; userRequest.ProjectScopeDown = projectScopingDown; /* userRequest.Fetch = new List<string>() { "Role", "CostCenter", "LastLoginDate", "OfficeLocation", "CreationDate" };*/ userRequest.Query = new Query("UserName", Query.Operator.Equals, "*****@*****.**"); QueryResult userResults = restApi.Query(userRequest); String userRef = userResults.Results.First()._ref; DynamicJsonObject user = restApi.GetByReference(userRef, "Name", "Role", "CostCenter", "LastLoginDate", "OfficeLocation", "CreationDate"); String role = user["Role"]; String costCenter = user["CostCenter"]; String lastLoginDate = user["LastLoginDate"]; String officeLocation = user["OfficeLocation"]; String creationDate = user["CreationDate"]; Console.WriteLine("Role: " + role + " CostCenter: " + costCenter + " LastLoginDate: " + lastLoginDate + " OfficeLocation: " + officeLocation + " CreationDate: " + creationDate); }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/12352608129"; //replace this OID with an ObjectID of your workspace Request revRequest = new Request("Revision"); revRequest.Workspace = workspaceRef; revRequest.Fetch = new List<string>() { "Description", "User", "CreationDate" }; DateTime today = DateTime.Today; String todayString = today.ToString("yyyy-MM-dd"); revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, todayString); QueryResult queryRevResults = restApi.Query(revRequest); foreach (var rev in queryRevResults.Results) { Console.WriteLine("----------"); Console.WriteLine("Description: " + rev["Description"] + " Author: " + rev["User"]._refObjectName + " CreationDate: " + rev["CreationDate"]); } }
static void Main(string[] args) { //Initialize the REST API RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); //Set Workspace String workspaceRef = "/workspace/12352608129"; //please replace this OID with an OID of your workspace Request revRequest = new Request("Revision"); revRequest.Workspace = workspaceRef; revRequest.Fetch = new List<string>() { "Description"}; DateTime now = DateTime.Today; DateTime oneMonthBack = now.AddMonths(-1); String thenString = oneMonthBack.ToString("yyyy-MM-dd"); revRequest.Query = new Query("CreationDate", Query.Operator.GreaterThanOrEqualTo, thenString); QueryResult queryRevResults = restApi.Query(revRequest); Console.WriteLine(queryRevResults.TotalResultCount); }
static void Main(string[] args) { //Initialize the REST API RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "1.43"); //NOTE: 1.43 will be unsupported after June 2014 Request subRequest = new Request("Subscription"); subRequest.Fetch = new List<string>() { "Name", "ObjectID", "Workspaces", "Projects" }; String subQueryString = "(Name = \"Rally Support\")"; subRequest.Query = new Query(subQueryString); QueryResult subQueryResults = restApi.Query(subRequest); foreach (var s in subQueryResults.Results) { Console.WriteLine("Name: " + s["Name"]); Console.WriteLine("ObjectID: " + s["ObjectID"]); var workspaces = s["Workspaces"]; int projectCounter = 0; foreach (var w in workspaces) { Console.WriteLine("Workspace: " + w["ObjectID"] + " " + w["Name"]); var projects = w["Projects"]; foreach (var p in projects) { Console.WriteLine("Project: " + p["ObjectID"] + " " + p["Name"]); projectCounter++; } Console.WriteLine("projects total in the sub: " + projectCounter); } } }
static void Main(string[] args) { DateTime today = DateTime.Today; DateTime forward = today.AddDays(90); String forwardString = forward.ToString("yyyy-MM-dd"); DateTime back = today.AddDays(-90); String backString = back.ToString("yyyy-MM-dd"); RallyRestApi restApi; restApi = new RallyRestApi("_abc123", "https://rally1.rallydev.com"); //either username/passowrd or API Key authetnication is valid String workspaceRef = "/workspace/12352608129"; //replace this OID with an OID of your workspace Request request = new Request("PortfolioItem/Feature"); request.Workspace = workspaceRef; request.Fetch = new List<string>() {"Name","FormattedID","PlannedStartDate","PlannedEndDate"}; request.Query = new Query("PlannedStartDate", Query.Operator.GreaterThan, backString).And(new Query("PlannedEndDate", Query.Operator.LessThanOrEqualTo, forwardString)); QueryResult results = restApi.Query(request); foreach (var f in results.Results) { Console.WriteLine("FormattedID: " + f["FormattedID"] + " Name: " + f["Name"] + " PlannedStartDate: " + f["PlannedStartDate"] + " PlannedEndDate: " + f["PlannedEndDate"]); Console.WriteLine("**********************************************************"); } }
static void Main(string[] args) { RallyRestApi restApi; restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String projectRef = "/project/123456"; //use valid OID of your project Request userRequest = new Request("User"); userRequest.Query = new Query("UserName", Query.Operator.Equals, "*****@*****.**"); QueryResult userResults = restApi.Query(userRequest); String userRef = userResults.Results.First()._ref; Console.WriteLine(userRef); DynamicJsonObject myStory = new DynamicJsonObject(); myStory["Name"] = "a new story"; myStory["Project"] = projectRef; myStory["Owner"] = userRef; CreateResult createResult = restApi.Create("HierarchicalRequirement", myStory); myStory = restApi.GetByReference(createResult.Reference, "FormattedID", "Owner", "Project"); Console.WriteLine(myStory["FormattedID"] + " " + myStory["Owner"]._refObjectName + " " + myStory["Project"]._refObjectName); }
public string GetCommitMessage2( IntPtr hParentWnd, string parameters, string commonURL, string commonRoot, string[] pathList, string originalMessage, string bugID, out string bugIDOut, out string[] revPropNames, out string[] revPropValues ) { try { var restApi = new RallyRestApi("*****@*****.**", "Reinsch1987", "https://rally1.rallydev.com", "v2.0"); // Build request var request = BuildRequest("defect"); // Make request and process results var queryResult = restApi.Query(request); if (!queryResult.Success) { foreach (var er in queryResult.Errors) { MessageBox.Show("Error: " + er); } } var tickets = createTicketsAndIssueIds(queryResult); request = BuildRequest("HierarchicalRequirement"); // Make request and process results queryResult = restApi.Query(request); if (!queryResult.Success) { foreach (var er in queryResult.Errors) { MessageBox.Show("Error: " + er); } } tickets.AddRange(createTicketsAndIssueIds(queryResult)); revPropNames = new string[1]; revPropValues = new string[1]; revPropNames[0] = "Rally:issueIDs"; revPropValues[0] = issueIds; bugIDOut = bugID + "added"; MyIssuesForm form = new MyIssuesForm( tickets ); if ( form.ShowDialog( ) != DialogResult.OK ) return originalMessage; StringBuilder result = new StringBuilder( originalMessage ); if ( originalMessage.Length != 0 && !originalMessage.EndsWith( "\n" ) ) result.AppendLine( ); foreach ( TicketItem ticket in form.TicketsFixed ) { result.AppendFormat( "Fixed {0}: {1}", ticket.TicketId, ticket.Summary ); result.AppendLine( ); selectedTickets.Add( ticket ); } return result.ToString( ); } catch ( Exception ex ) { MessageBox.Show( ex.ToString( ) ); throw; } }
Artifact[] ResolveArtifacts() { var restApi = new RallyRestApi(Settings.Default.RallyUser, Settings.Default.RallyPassword //, proxy: new WebProxy("localhost:8888", false) ); var request = new Request("artifact"); request.Fetch = new List<string> { "FormattedID", "Discussion", "Name", "Requirement", "WorkProduct" }; // build query for many items var queries = _defectIds .Select(id => new Query("FormattedID", Query.Operator.Equals, id)) .ToArray() ; var query = queries[0]; for (var i = 1; i < queries.Length; i++) { query = query.Or(queries[i]); } request.Query = query; // perfrom query var resp = restApi.Query(request); if(!resp.Success) { if (resp.Errors.Count > 0) throw new ApplicationException(resp.Errors[0]); throw new ApplicationException("Unexpected error"); } return resp.Results.Select(a => new Artifact(a)).ToArray(); }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc123"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String workspaceRef = "/workspace/1011574887"; String projectRef = "/project/1791269111"; String userName = "******"; try { Request storyRequest = new Request("hierarchicalrequirement"); storyRequest.Workspace = workspaceRef; storyRequest.Project = projectRef; storyRequest.Fetch = new List<string>() { "FormattedID" }; storyRequest.Query = new Query("FormattedID", Query.Operator.Equals, "US2917"); QueryResult queryResult = restApi.Query(storyRequest); var storyObject = queryResult.Results.First(); String storyReference = storyObject["_ref"]; Request userRequest = new Request("user"); userRequest.Fetch = new List<string>() { "UserName" }; userRequest.Query = new Query("UserName", Query.Operator.Equals, userName); QueryResult queryUserResults = restApi.Query(userRequest); DynamicJsonObject user = new DynamicJsonObject(); user = queryUserResults.Results.First(); String userRef = user["_ref"]; String imageFilePath = "C:\\images\\"; String imageFileName = "rally.png"; String fullImageFile = imageFilePath + imageFileName; Image myImage = Image.FromFile(fullImageFile); string imageBase64String = ImageToBase64(myImage, System.Drawing.Imaging.ImageFormat.Png); var imageNumberBytes = Convert.FromBase64String(imageBase64String).Length; Console.WriteLine("Image size: " + imageNumberBytes); DynamicJsonObject myAttachmentContent = new DynamicJsonObject(); myAttachmentContent["Content"] = imageBase64String; CreateResult myAttachmentContentCreateResult = restApi.Create(workspaceRef,"AttachmentContent", myAttachmentContent); String myAttachmentContentRef = myAttachmentContentCreateResult.Reference; Console.WriteLine(myAttachmentContentRef); DynamicJsonObject myAttachment = new DynamicJsonObject(); myAttachment["Artifact"] = storyReference; myAttachment["Content"] = myAttachmentContentRef; myAttachment["Name"] = "rally.png"; myAttachment["Description"] = "Attachment Desc"; myAttachment["ContentType"] = "image/png"; myAttachment["Size"] = imageNumberBytes; myAttachment["User"] = userRef; CreateResult myAttachmentCreateResult = restApi.Create(workspaceRef, "Attachment", myAttachment); List<string> createErrors = myAttachmentContentCreateResult.Errors; for (int i = 0; i < createErrors.Count; i++) { Console.WriteLine(createErrors[i]); } String myAttachmentRef = myAttachmentCreateResult.Reference; Console.WriteLine(myAttachmentRef); } catch (Exception e) { Console.WriteLine(e); } }