2017-06-11 1 views
-1

Ich versuche, meine VSTS Projekt Iteration Liste mit dem folgende REST-API zu erhalten,VSTS - kann nicht erhalten Iteration Liste

 string _personalAccessToken = "mypersonalAccessToken"; // this PAT has Project and team (read, write, and manage) and Work items (read and write) scope 
     string _credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "", _personalAccessToken))); 

     using (var client = new HttpClient()) 
     {    
      client.BaseAddress = new Uri("https://*myUserAccount*.visualstudio.com/"); 
      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _credentials); 

      var response = client.GetAsync("DefaultCollection/*MyProjectName*/*MyTeamName*/_apis/work/TeamSettings/Iterations?api-version=v2.0-preview.1").Result; 

      Console.WriteLine(response.Content.ReadAsStringAsync().Result);     
     } 

Mein REST Aufruf ohne Fehler ausgeführt wird (Rückkehr 200-Code) mit leeren Werten. Obwohl ich in meinem Projekt mindestens 50 Iterationen habe, hole ich diese nicht mit dem obigen Code.

Ich bin mir nicht sicher, wo ich Fehler mache. Jede Hilfe wäre willkommen.

Antwort

1

Der Code ist in Ordnung.

Befolgen Sie diese Schritte, um die Iteration dieses Teams zu überprüfen.

  1. Zum Admin-Seite des Teams
  2. Select Arbeit
  3. Überprüfen Sie die Iterationskriterien Liste
  4. (Optional) Klicken Sie auf Auswählen Iteration (n) Iteration hinzuzufügen.

Update:

Es ruft die Iterationen der Standard-Team, wenn Sie den Teamnamen weglassen.

Standard Team: Zum Admin-Seite von Teamprojekt> Übersicht> Change default Team

Wählen Iterationen für Standard-Team: Zum Admin-Seite von Teamprojekt> Arbeit> Iterations> Klicken Sie auf die Einstellungen des Standard-Team.

enter image description here

Wenn Sie alle Wiederholungen von Team-Projekt zu erhalten, können Sie get the root iteration tree REST API verwenden, oder Sie können diesen Code verwenden, um direkt (Add/install Microsoft Team Foundation Server Extended Client Paket):

var u = new Uri("https://starain.visualstudio.com"); 
VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.VssBasicCredential(string.Empty, "[pat]")); 
      var connection = new VssConnection(u, c); 
      var workItemTracking = connection.GetClient<WorkItemTrackingHttpClient>(); 
Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient projClient = connection.GetClientAsync<Microsoft.TeamFoundation.Core.WebApi.ProjectHttpClient>().Result; 
      var projects= projClient.GetProjects().Result; 
      foreach(var p in projects.Where(pro=>pro.Name=="Scrum2015")) 
      { 
       var iteration = workItemTracking.GetClassificationNodeAsync(project: p.Name, structureGroup: Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.TreeStructureGroup.Iterations, depth: 5).Result; 
       GetIterations(iteration); 
      } 


static void GetIterations(Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItemClassificationNode currentIteration) 
     { 
      Console.WriteLine(currentIteration.Name); 
      if(currentIteration.Children!=null) 
      { 
       foreach (var ci in currentIteration.Children) 
       { 
        GetIterations(ci); 
       } 
      } 
     } 
+0

Danke für die Antwort, Mit den obigen Schritten sehe ich, dass mein Team keine Iterationsliste hat (wahrscheinlich ist das der Grund für null Ergebnisse). Aber alle meine Iterationen sind auf Projektebene. Ich habe versucht, den REST-Aufruf zu optimieren, indem ich den Teamnamen weglasse, aber nicht das gewünschte Ergebnis. – Mahender

+0

@Mahender Er ruft die Iterationen des Standardteams ab, wenn Sie den Teamnamen weglassen. Ich habe meine Antwort aktualisiert, Sie können es überprüfen. –

+0

Danke für aktualisierte Details, bin in der Lage, meine Projekt-Iterationen zu holen. – Mahender