This project has been migrated from CodePlex
It is longer under development, it has been moved to GitHub as CodePlex is closing down. It has been replaced by VSTSServiceHookDsl which supports 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 )<br>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")