This project has moved and is read-only. For the latest updates, please go here.

This project is no longer under development on Codeplex, it has been moved to GitHub and is being updated to support operations via Service Hooks for used with both TFS and VSTS 


Project Description

Microsoft Team Foundation Server (TFS) provides an alerting model where given a certain condition, such as a check-in, work item edit or build completion, an email can be sent to an interest party or a call made to a SOAP based web service. Using this SOAP model it is possible to provide any bespoke operations you wish that are triggered by a change on the TFS server.

This framework is designed to ease the development of these bespoke SOAP wen services by providing helper methods for common XML processing steps and API operations such as calling back to the TFS server or accessing SMTP services.

They main differentiator of this project is that it also provides a Python based DSL that allows the actual operation performed when the endpoint is called to be edited without the need to  to rebuild and redeploy the bespoke service. Operations are defined by script such as show below

import sys
# Expect 2 args the event type and a value unique ID
LogInfoMessage( "The following arguments were passed" )
LogInfoMessage( sys.argv )
if sys.argv[0] == "BuildEvent" :
LogInfoMessage ("A build event " + sys.argv[1])
# a sample for using the DSL to create a work item is
#fields = {"Title": "The Title","Effort": 2, "Description": "The desc of the bug"}
#teamproject = "Scrum (TFVC)"
#wi = CreateWorkItem(teamproject ,"bug",fields)
#LogInfoMessage ("Work item '" + str(wi.Id) + "' has been created '" + wi.Title +"'")
elif sys.argv[0] == "WorkItemEvent" :
LogInfoMessage ("A wi event " + sys.argv[1])
elif sys.argv[0] == "CheckInEvent" :
LogInfoMessage ("A checkin event " + sys.argv[1])
else: LogInfoMessage ("Was not expecting to get here")


Last edited Dec 18, 2016 at 8:25 PM by rfennell, version 11