Kinook Software Forums

Kinook Software Forums (http://www.kinook.com/Forum/index.php)
-   [VBP] Third Party Tools (http://www.kinook.com/Forum/forumdisplay.php?f=3)
-   -   Associate TFS work item with checkin of file (http://www.kinook.com/Forum/showthread.php?t=4502)

rollmj 05-20-2010 02:29 PM

Associate TFS work item with checkin of file
 
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/for...f-a8e820b4b3ba

Philip Beck 06-19-2014 08:00 AM

trying to associate TFS workitem with TFS check in
 
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)


All times are GMT -5. The time now is 11:34 PM.


Copyright 1999-2019 Kinook Software, Inc.