Créer un bogue dans Azure DevOps Services à l’aide de bibliothèques clientes .NET
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
La création d’un bogue (ou d’un élément de travail) est assez simple. Vous devez simplement définir les valeurs de champ et envoyer un objet JSON-Patch au point de terminaison REST.
Prérequis
Vous devez disposer des éléments suivants avant de pouvoir créer un élément de travail.
- Une organisation dans Azure DevOps Services. Si vous n’en avez pas, vous pouvez en créer un gratuitement
- Un jeton d’accès personnel, découvrez comment en créer un
- Un environnement de développement C#, vous pouvez utiliser Visual Studio
Créer un projet C# dans Visual Studio
Pour en savoir plus sur la programmation C# dans Visual Studio, recherchez la documentation de programmation Visual Studio C#
Contenu du code C#
Vous trouverez quelques éléments dans l’exemple de code suivant :
- Authentification
- Création d’informations d’identification à l’aide de votre PAT
- Création d’un VSS Connecter ion avec votre URI Azure DevOps Services et les informations d’identification
- Récupération du client à l’aide de votre VSS Connecter ion
- Création du bogue
- Créer un tableau d’objets pour définir les valeurs de champ
- Convertir ce tableau en objet json sérialisé
- Envoyer cet objet json sérialisé au point de terminaison REST
Extrait de code C#
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;
}
}
}
Étapes suivantes
- Consultez un autre guide de démarrage rapide : Obtenir une liste d’éléments de travail à l’aide de requêtes
- Explorer les exemples d’intégration
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour