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) { 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"); 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++; } }
public RallyApi.RallyRestApi GetApi(string userName, string password) { int hash = (userName + "|" + password).GetHashCode(); if (Pools == null) { Pools = new Dictionary <int, RallyApi.RallyRestApi>(); } if (Pools.ContainsKey(hash) && Pools[hash].ConnectionInfo.UserName == userName && Pools[hash].ConnectionInfo.Password == password) { var conn = Pools[hash]; if (conn.ConnectionInfo != null && conn.AuthenticationState == RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return(conn); } RallyApi.RallyRestApi.AuthenticationResult r = conn.Authenticate(userName, password, allowSSO: false); if (r != RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return(null); } } RallyApi.RallyRestApi api = new RallyApi.RallyRestApi(); var result = api.Authenticate(userName, password, allowSSO: false); if (result != RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return(null); } Pools.Add(hash, api); return(api); }
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 RallyApi.RallyRestApi GetApi(string userName, string password) { int hash = (userName + "|" + password).GetHashCode(); if (Pools == null) { Pools = new Dictionary<int, RallyApi.RallyRestApi>(); } if (Pools.ContainsKey(hash) && Pools[hash].ConnectionInfo.UserName == userName && Pools[hash].ConnectionInfo.Password == password) { var conn = Pools[hash]; if (conn.ConnectionInfo != null && conn.AuthenticationState == RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return conn; } RallyApi.RallyRestApi.AuthenticationResult r = conn.Authenticate(userName, password, allowSSO:false); if (r != RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return null; } } RallyApi.RallyRestApi api = new RallyApi.RallyRestApi(); var result = api.Authenticate(userName, password, allowSSO:false); if (result != RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return null; } Pools.Add(hash, api); return api; }
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); }
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 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"]); } } }
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; }
int DoSign(IEnumerable<Artifact> artifacts, SynchronizationContext sc) { var restApi = new RallyRestApi(Settings.Default.RallyUser, Settings.Default.RallyPassword //, proxy: new WebProxy("localhost:8888", false) ); foreach (var tagArt in artifacts) { var toCreate = new DynamicJsonObject(); toCreate["Text"] = "%FIX_CODE_REVIEW_PASSED%"; toCreate["Artifact"] = tagArt.Reference; var createResult = restApi.Create("ConversationPost", toCreate); // update status sc.Post(_ => { var lvi = listViewArtifacts.Items.Cast<ListViewItem>().FirstOrDefault(l => l.Tag == tagArt); if (!createResult.Success) { lvi.BackColor = Color.Tomato; if (createResult.Errors.Count > 0) lvi.SubItems[1].Text = createResult.Errors[0]; else lvi.SubItems[1].Text = "Unexpected error"; } else { lvi.BackColor = Color.LightGreen; lvi.SubItems[3].Text = "✔"; } }, null); } return 0; }
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 "); }
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) { 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 = 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); } }
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) { 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); }
public RallyApi.RallyRestApi GetApi(string apiKey, string rallyServer) { RallyApi.RallyRestApi api = new RallyApi.RallyRestApi(); var result = api.AuthenticateWithApiKey(apiKey, rallyServer); if (result == RallyApi.RallyRestApi.AuthenticationResult.Authenticated) { return api; } else { return null; } }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc777"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String workspaceRef = "/workspace/123"; String projectRef = "/project/134"; DynamicJsonObject badDefect = new DynamicJsonObject(); badDefect["Name"] = "bad defect " + DateTime.Now; badDefect["Project"] = projectRef; CreateResult createRequest = restApi.Create(workspaceRef, "Defect", badDefect); badDefect = restApi.GetByReference(createRequest.Reference, "FormattedID", "Project"); Console.WriteLine(badDefect["FormattedID"] + " " + badDefect["Project"]._refObjectName); }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); DynamicJsonObject user = restApi.GetCurrentUser(); String userRef = user["_ref"]; String workspaceRef = "/workspace/11111"; //use valid workspace OID in your Rally String projectRef = "/project/12345"; //use valid project OID in your Rally DynamicJsonObject myStory = new DynamicJsonObject(); myStory["Name"] = "my story"; myStory["Project"] = projectRef; myStory["Owner"] = userRef; CreateResult createResult = restApi.Create(workspaceRef, "HierarchicalRequirement", myStory); myStory = restApi.GetByReference(createResult.Reference, "FormattedID", "Owner", "Project"); Console.WriteLine(myStory["FormattedID"] + " " + myStory["Owner"]._refObjectName + " " + myStory["Project"]._refObjectName); }
static void Main(string[] args) { RallyRestApi rallyApi = new RallyRestApi("*****@*****.**", "secret", "https://sandbox.rallydev.com", "v2.0"); Program program = new Program(); String projectRef = "/project/12352608219"; //Company X String aUTCdateString = "2015-04-08"; while (true) { Console.WriteLine("==============="); DateTime start = DateTime.Now; var p = program.GetArtifactNotificationForDateRange(rallyApi, aUTCdateString, DateTime.Now.ToString("o"), projectRef); DateTime finish = DateTime.Now; Console.WriteLine(string.Format("{0}", finish.Subtract(start))); Thread.Sleep(5000); } }
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"]); } } } } }
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) { RallyRestApi restApi = new RallyRestApi("*****@*****.**", "secret", "https://sandbox.rallydev.com", "v2.0"); DynamicJsonObject user = restApi.GetCurrentUser(); String userRef = user["_ref"]; String workspaceRef = "/workspace/12352608129"; //use valid workspace OID in your Rally String projectRef = "/project/14018981229"; //use valid project OID in your Rally System.Diagnostics.TextWriterTraceListener myListener = new System.Diagnostics.TextWriterTraceListener("log.log", "myListener"); try { //create story DynamicJsonObject myStory = new DynamicJsonObject(); myStory["Name"] = "my story " + DateTime.Now; myStory["Project"] = projectRef; myStory["Owner"] = userRef; CreateResult createStory = restApi.Create(workspaceRef, "HierarchicalRequirement", myStory); myStory = restApi.GetByReference(createStory.Reference, "FormattedID", "Owner", "Project"); myListener.WriteLine(DateTime.Now + "___________\r\n" + myStory["FormattedID"] + " Owner: " + myStory["Owner"]._refObjectName + " Project: " + myStory["Project"]._refObjectName); //update story myStory["Description"] = "updated " + DateTime.Now; //create tasks for (int i = 1; i <= 3; i++) { DynamicJsonObject myTask = new DynamicJsonObject(); myTask["Name"] = "task " + i + DateTime.Now; myTask["Owner"] = userRef; myTask["State"] = "In-Progress"; myTask["WorkProduct"] = myStory["_ref"]; CreateResult createTask = restApi.Create(workspaceRef, "Task", myTask); myTask = restApi.GetByReference(createTask.Reference, "FormattedID", "Owner", "State"); myListener.WriteLine(myTask["FormattedID"] + " State: " + myTask["StateX"]); } } catch(Exception e) { myListener.WriteLine(e); } myListener.Flush(); }
static void Main(string[] args) { RallyRestApi restApi = new RallyRestApi("*****@*****.**", "secret", "https://rally1.rallydev.com", "v2.0"); String workspaceRef = "/workspace/11111"; //use valid workspace OID in your Rally String projectRef = "/project/12345"; //use valid project OID in your Rally String userRef = "/user/777"; DynamicJsonObject d = new DynamicJsonObject(); d["Name"] = "some bug"; d["Project"] = projectRef; d["Owner"] = userRef; CreateResult createResult = restApi.Create(workspaceRef, "Defect", d); DynamicJsonObject defect = restApi.GetByReference(createResult.Reference, "FormattedID"); Console.WriteLine(defect["FormattedID"]); //update defect defect["Description"] = "bad bug"; OperationResult updateResult = restApi.Update(defect["_ref"], defect); }
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 = new RallyRestApi(webServiceVersion: "v2.0"); String apiKey = "_abc123"; restApi.Authenticate(apiKey, "https://rally1.rallydev.com", allowSSO: false); String projectRef = "/project/32904827032"; try { //create story DynamicJsonObject myStory = new DynamicJsonObject(); myStory["Name"] = "another story " + DateTime.Now; myStory["Project"] = projectRef; CreateResult createStory = restApi.Create(workspaceRef, "HierarchicalRequirement", myStory); myStory = restApi.GetByReference(createStory.Reference, "FormattedID", "Project"); //update story myStory["Description"] = "updated " + DateTime.Now; myStory["c_CustomString"] = "abc123"; Console.WriteLine("--------------------"); Console.WriteLine(myStory["FormattedID"]); OperationResult updateResult = restApi.Update(myStory["_ref"], myStory); //create tasks for (int i = 1; i <= 3; i++) { DynamicJsonObject myTask = new DynamicJsonObject(); myTask["Name"] = "task " + i + DateTime.Now; myTask["State"] = "In-Progress"; myTask["WorkProduct"] = myStory["_ref"]; CreateResult createTask = restApi.Create(workspaceRef, "Task", myTask); myTask = restApi.GetByReference(createTask.Reference, "FormattedID", "Owner", "State"); Console.WriteLine(myTask["FormattedID"]); } } catch (Exception e) { Console.WriteLine(e); } }