PDA

View Full Version : Associate TFS work item with checkin of file


rollmj
05-20-2010, 02:29 PM
Does anyone know how to associate a work item with the checkin of a particular file using the Team Foundation action in VBP? I'm currently using v7.5 of VBP and cannot seem to figure out a way to associate work items via the command-line.

kinook
05-20-2010, 02:57 PM
http://social.msdn.microsoft.com/forums/en-US/tfsversioncontrol/thread/33830525-ede9-48ca-adcf-a8e820b4b3ba

Philip Beck
06-19-2014, 08:00 AM
The link says that you can associate the work item with the check in in two separate steps, but I don't think this will work in our situation. This is because:-

1. Performing the check in first (before doing the association) is rejected due to our check in policy. The check in hasn't been associated with a work item.

2. Performing the association first is impossible before the changeset doesn't exist yet. The changeset only exists once files have been checked in.

So as far as I can tell, until the parameters for TF CHECKIN allow for something like /workitem:<123>, the only way that it is possible is to use VBScript to use the TFS automation model or write a component that uses the TFS API. I'm not sure which is true as I'm just about to start looking...

Regards
Phil

Philip Beck
07-07-2014, 06:36 AM
I finally managed to do the association during checkin using a powershell script and reflection on the TFS object model.

Google Get-TfsCollection and then my final few lines looked like this:


$col = Get-TfsCollection("http://xxxxxxxxxxxx:8080/tfs/DefaultCollection")

$wis = Get-TfsWorkItemStore($col)

$vcs = Get-TfsVersionControlServer($col)

$wi = $wis.GetWorkItem(1234)

$ws = $vcs.GetWorkspace("C:\xxxxxxxx")

$pc = $ws.GetPendingChanges()

$wici = Get-TfsWorkItemCheckinInfo($wi)

$changeset = $ws.CheckIn($pc, "xxxxx", $null, $wici, $null)