Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Das Erstellen eines neuen Fehlers (oder eines beliebigen Arbeitsgegenstands) ist ziemlich einfach. Sie müssen nur die Feldwerte festlegen und ein JSON-Patch-Objekt an den REST-Endpunkt senden.
Voraussetzungen
Stellen Sie sicher, dass Sie Folgendes haben, bevor Sie eine Arbeitsaufgabe erstellen können.
- Eine Organisation in Azure DevOps Services. Wenn Sie keins haben, können Sie kostenlos einen erstellen
- Ein persönliches Access Zeichen, erfahren Sie, wie Sie eine erstellen können
- Als C#-Entwicklungsumgebung können Sie Visual Studio verwenden.
Erstellen eines C#-Projekts in Visual Studio
Informationen zur C#-Programmierung in Visual Studio finden Sie in der Visual Studio C#-Programmierdokumentation
C#-Codeinhalt
Im folgenden Codebeispiel geschehen einige Dinge:
- Authentifizierung
- Erstellen von Berechtigungsnachweisen mit Ihrem PAT
- Erstellen einer VSSConnection mit Ihrer Azure DevOps Services URI und den Anmeldeinformationen
- Abrufen des Clients über Ihre VSSConnection
- Erstellen des Fehlers
- Erstellen eines Arrays von Objekten zum Festlegen der Feldwerte
- Konvertiere dieses Array in ein serialisiertes JSON-Objekt
- Senden des serialisierten JSON-Objekts an den REST-Endpunkt
C#-Codeausschnitt
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.TeamFoundation.WorkItemTracking.WebApi;
using Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.WebApi.Patch.Json;
using Microsoft.VisualStudio.Services.WebApi.Patch;
using Microsoft.VisualStudio.Services.WebApi;
using System.Net.Http.Headers;
using System.Net.Http;
using Newtonsoft.Json;
public class CreateBug
{
readonly string _uri;
readonly string _personalAccessToken;
readonly string _project;
/// <summary>
/// Constructor. Manually set values to match your organization.
/// </summary>
public CreateBug()
{
_uri = "https://dev.azure.com/{orgName}";
_personalAccessToken = "personal access token";
_project = "project name";
}
/// <summary>
/// Create a bug using the .NET client library
/// </summary>
/// <returns>Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItem</returns>
public WorkItem CreateBugUsingClientLib()
{
Uri uri = new Uri(_uri);
string personalAccessToken = _personalAccessToken;
string project = _project;
VssBasicCredential credentials = new VssBasicCredential("", _personalAccessToken);
JsonPatchDocument patchDocument = new JsonPatchDocument();
//add fields and their values to your patch document
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/System.Title",
Value = "Authorization Errors"
}
);
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/Microsoft.VSTS.TCM.ReproSteps",
Value = "Our authorization logic needs to allow for users with Microsoft accounts (formerly Live Ids) - http:// msdn.microsoft.com/library/live/hh826547.aspx"
}
);
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/Microsoft.VSTS.Common.Priority",
Value = "1"
}
);
patchDocument.Add(
new JsonPatchOperation()
{
Operation = Operation.Add,
Path = "/fields/Microsoft.VSTS.Common.Severity",
Value = "2 - High"
}
);
VssConnection connection = new VssConnection(uri, credentials);
WorkItemTrackingHttpClient workItemTrackingHttpClient = connection.GetClient<WorkItemTrackingHttpClient>();
try
{
WorkItem result = workItemTrackingHttpClient.CreateWorkItemAsync(patchDocument, project, "Bug").Result;
Console.WriteLine("Bug Successfully Created: Bug #{0}", result.Id);
return result;
}
catch (AggregateException ex)
{
Console.WriteLine("Error creating bug: {0}", ex.InnerException.Message);
return null;
}
}
}
Nächste Schritte
- Sehen Sie sich einen weiteren Quickstart an: Abrufen einer Liste von Workitems mit Abfragen
- Erforschen Sie die Muster integrieren