How can I query work items and their linked changesets in TFS?

后端 未结 3 1817
挽巷
挽巷 2020-12-09 17:48

In TFS 2010 I have work items with linked changesets. I can generate a query that reports the work items I\'m looking for. Now I want to

3条回答
  •  無奈伤痛
    2020-12-09 18:46

    An option is to use the TFS API like the following snippet.

    var projectCollection = new TfsTeamProjectCollection(
        new Uri("http://localhost:8080/tfs"),
        new UICredentialsProvider());
    projectCollection.EnsureAuthenticated();
    var workItemStore = projectCollection.GetService();
    var versionControlServer = projectCollection.GetService();
    var artifactProvider = versionControlServer.ArtifactProvider;
    var project = workItemStore.Projects["Test01.MSFAgile.v5"];
    var teamQueryFolder = project.QueryHierarchy["Team Queries"] as QueryFolder;
    var query = teamQueryFolder["My Tasks"];
    var queryDefinition = workItemStore.GetQueryDefinition(query.Id);
    var variables = new Dictionary
    {
        {"project", query.Project.Name}
    };
    var workItemCollection = workItemStore.Query(
        queryDefinition.QueryText,
        variables);
    foreach (WorkItem workItem in workItemCollection)
    {
        Console.WriteLine("WI: {0}, Title: {1}", workItem.Id, workItem.Title);
        foreach (var changeset in
            workItem.Links
                .OfType()
                .Select(link => artifactProvider
                    .GetChangeset(new Uri(link.LinkedArtifactUri))))
        {
            Console.WriteLine(
                "CS: {0}, Comment: {1}",
                changeset.ChangesetId,
                changeset.Comment);
        }
    }
    

提交回复
热议问题