-
Notifications
You must be signed in to change notification settings - Fork 0
/
getProjectsWithUpdatedArtifacts.cs
56 lines (50 loc) · 2.11 KB
/
getProjectsWithUpdatedArtifacts.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using Rally.RestApi;
using Rally.RestApi.Response;
namespace getProjectsWithUpdatedArtifacts
{
class Program
{
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 + ")");
}
}
}
}
}
}