GIT clone SSH CI build issue in TFS 2015.3

Issue:

In TFS 2015.3, if you have setup a CI build defection for a GIT repository and if you clone the repository using SSH and then do a GIT push, the builds are not getting triggered.

Error messages:

There are no error messages generated. But, there is not CI build triggered as well.

Diagnosis:

Consider the following scenario.

 

  • You have a TFS 2015.3 server, in which you have a GIT repository.
  • You have created a CI build definition for this repository.
  • You clone the GIT repository to your local folder, using the normal http or https clone. Then, you do some change and push the changes. You will notice a CI build is triggered.
  • Now, you clone the same GIT repository to your local folder, using the SSH clone ( steps here à https://www.visualstudio.com/en-us/docs/git/use-ssh-keys-to-authenticate).
  • Now, if you do some changes and then push it, no CI build will be triggered.

 

Solution:

This is a bug with TFS 2015.3 and it is fixed in TFS ‘15’. However, can use the below steps to resolve the issue in TFS 2015.3.

 

  • Navigate to the path ‘C:\Program Files\Microsoft Team Foundation Server 15.0\Application Tier\Web Services\bin’ on your TFS application server.
  • Identify the file named ‘TeamFoundationSshService.exe.config’. Save a copy of the file in a separate location, as a backup.
  • Then, add the below lines in the file, within the tag <assemblyBinding>

<dependentAssembly>

<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />

<bindingRedirect oldVersion="5.6.0.0-5.6.4.0" newVersion="5.6.4.0" />

</dependentAssembly>

<dependentAssembly>

<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />

<bindingRedirect oldVersion="5.6.0.0-5.6.4.0" newVersion="5.6.4.0" />

</dependentAssembly>

<dependentAssembly>

<assemblyIdentity name="System.Spatial" publicKeyToken="31bf3856ad364e35" culture="neutral" />

<bindingRedirect oldVersion="5.6.0.0-5.6.4.0" newVersion="5.6.4.0" />

</dependentAssembly>

 

  • Go to ‘Services’ and restart the service named ‘Team Foundation Ssh Service’
  • If you have multiple TFS application server, you will have to perform the steps in all of them.
  • Do a fresh SSH clone and then make changes and push them and check if CI build is getting triggered.

Note: This is applicable only for closing GIT repository using ‘git clone ssh’. For any other issues, or if the issue is present even after applying the above steps, please open a support case with Microsoft.

Written by: Sivarajaguru, Support Engineer, Team Foundation Server Support Team

Reviewed by: Nitish Nagpal, Support Escalation Engineer