tcWebHooks 0.8 alpha bugfix release

Posted on Updated on

Here is a new version of the tcWebHooks 0.8 alpha.

Bug fixes:

  • buildResult was not being set for NVPAIRS format because getter and setter were missing
    NVPAIRS uses apache commons BeanUtils.describe to build the payload, and that requires getter and setters.
    The other formats use ThroughtWorks XStream which uses fields
  • Changed field buildRunner to buildRunners for NVPAIRS format. Other formats were using new pluralised field name.
  • Tidied up unused imports and variables. No more yellow triangles in Eclipse.

I’m pretty sure Jason’s comment regading the hipchat message field containing a blank build result was caused by the buildResult field missing in the NVPAIRS format.  Hopefully this will fix that message.

  • buildStatusHtml needs to be added for ResponsibleChanged.

Download version 0.8.branch-build-25.134

As usual, please put comments below or on the bugs page.


tcWebHooks alpha release available – Now much better!

Posted on Updated on

It’s been a long time coming, but I finally got a chance to work on the tcWebHooks plugin for TeamCity.

I have an alpha release on sourceforge for download here:

The main features are:

  • buildStatusDelta information (broken, fixed, success, failure)
  • being able to trigger webhooks based on deltas (on completion).
  • buildStatusHtml field which contains an html status message containing links back to the build
  • buildStatusUrl field which contains a URL back to the build instance in case you want to roll your own links.
  • Now uses the zip file plugin format. If you are upgrading please remember to remove your old folder and jar as they are no longer required.

There are quite a few refactorings under the hood. Please backup your existing config before you upgrade because the XML format has changed and you won’t be able to roll back.

As usual, please put comments below or on the bugs page.

Here is a screen shot of the new tcWebHooks editor dialog.

It’s very very alpha at the moment. Internally it’s very different. As a result of adding these nested settings, I’ve had to change the XML format. So please please backup your config directory (folder) before installing. I have a format converter, which is unit tested, but you never know 😉
I’ve removed the “buildStatusChanged” event. It was incredibly misleading, as most people thought it was referring to historical events, rather than in build events.

To install.

  • Shutdown teamcity.
  • Remove the tcWebhooks (or whatever you called it) folder inside your .BuildServer/plugins folder
  • Backup your .BuildServer/config folder
  • Drop the new ZIP into .BuildServer/plugins/
  • Startup teamcity.
Please let me know how you get on using the comment below.

New tcWebHooks release to support TeamCity 6.5

Posted on

A new version ( of the tcWebHooks plugin is available.

With the recent release of Teamcity 6.5, some assumptions I was making about the prototype javascript functions proved incorrect. I think the newer version is stricter with badly named functions, or perhaps teamcity has changed some of their internal functions on which I was mistakenly relying.

This release fixes those bugs and also fixes a long standing oversight in the lack of checking of the URL and payload formats when submitting the form. Now, when trying to add a webhook with no url or no payload format selected you are prompted before the dialog goes away. Previously, the dialog would just close and no webhook would be added. It ended up being that my jsp was not setting the content type to text/xml, so the javascript error listener was never firing.

As usual, get the latest from sourceforge. If you find a bug please leave a comment below, or on the bugs page.

New tcWebhooks bugfix release available

Posted on Updated on

A recent comment on my blog pointed out that the buildStatus field in the webhook POST payload was not accurate.

After some investigation, I noticed the the buildStatus does not get updated until after the build has been marked as “finished” by TeamCity. However, the build is not marked as finished until the plugins have run, so all builds were reporting themselves as “running”.

I have added a new field called buildResult, which gleans the result from the sRunningBuild object, rather than relying on the buildStatus returned by TeamCity.

Thanks to Lloyd for helping me work through the issues and testing. I have now uploaded a new jar to sourceforge.

I also spotted that one field in the JSON payload was incorrectly stating that the notification was for buildStarted when in fact it was buildFinished. This has now been corrected.

Updated TeamCity WebHooks plugin available

Posted on Updated on

Version of the tcWebHooks plugin is available for download. It’s mainly a bugfix release and some tidy up of the user interface.

– Fix for newly created WebHooks not being persisted to plugin-settings.xml until re-edited.
– Plugin JSPs loaded using getPluginResourcesPath(), so plugin dir can be anything, and not hard-coded to “webhook”.
– webHookUrl form input style fix for linux (or large fonts in general). URL input field was too wide for div.

– WebHook blurb updated. A new link can be added to the “Further reading” section of the blurb by adding a <info> line to the <webhooks> section of the main-config.xml
– Enabled events are now listed in Tabs and Edit pages, eg. Build Started, Build Changed Status, Build Interrupted, Build Almost Completed, Build Responsibility Changed


More Info | Download | Install and usage docs

I welcome any and all feedback.

TeamCity WebHooks plugin beta available

Posted on Updated on

Announcing a beta release (version of a plugin for TeamCity which enhances TeamCity to provide WebHook functionality. With the tcWebHooks plugin installed, you can tell TeamCity to trigger a webhook POST request as build events occur.

WebHooks are configured on a project basis, and when events occur in the build process, a POST request is submitted to the URL. You can configure as many URLs as you like (within reason) and which events will trigger the request.

There is support for proxies in this version, and webhooks are configured in the TeamCity UI. There are a few outstanding items to tidy up, but the core functionality is working.

The project is on SourceForge at