Search This Blog

Showing posts with label changeset. Show all posts
Showing posts with label changeset. Show all posts

Wednesday, March 14, 2007

How to Get Build Result Details using TFS API - Part 1

In this series of posts I would explain how to use TFS API in order to retrieve build result details as they appear in the build report.


In order to retrieve result details for a build we need to create a BuildStore object. There is an example on how to create a BuildStore object on a previous post: Get Build Changes. The example take into consideration that you have already created the BuildStore object and it is named buildStore.

In this post we will see how to retrive the details under the summary section of the build report. First, we need to get the BuildData object for the build. Here's how to get the BuildData object:

BuildData buildData = buildStore.GetBuildDetails(buildStore.GetBuildUri(teamProject, buildNumber));

Now that we've got the BuildData object we can retrieve the build details that appear in the summary section of the report:

buildData.BuildNumber
buildData.RequestedBy
buildData.TeamProject
buildData.BuildType
buildData.BuildMachine
buildData.StartTime
buildData.FinishTime
buildData.LastChangedBy
buildData.LastChangedOn
buildData.BuildQuality
buildData.LogLocation

On the next post for this series I will explain how to retrieve the details for the "Build Steps" section of the report.

Thursday, December 28, 2006

Get Build Changes (ChangeSetData, Changeset, Change)

To improve our custom build report that I have talked about before (Custom Build Logger) I wanted to add information regarding the users that are involved in this build and the changes that they made to source control.
Here's an example how to go over build changes:


using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.Build.Proxy;

TeamFoundationServer tfs = new TeamFoundationServer(server);
VersionControlServer vcs = (VersionControlServer)tfs.GetService(typeof(VersionControlServer));
BuildStore bs = (BuildStore)tfs.GetService(typeof(BuildStore));
ChangeSetData[] changeSetsData = bs.GetChangeSetsForBuild(bs.GetBuildUri(project, buildNumber));
foreach (ChangeSetData changeSetData in changeSetsData)
{
//Here you can do something with the ChangeSetData properties
//changeSetData.CheckedInBy...
//Get the ChangeSetData Changeset
Changeset changeSet = vcs.GetChangeset(changeSetData.ChangeSetId);
//Go over the Changeset changes
foreach (Change change in changeSet.Changes)
{
//Here you can do something with the Change
//change.Item.ServerItem...
}
}