Skip to content

Releases: tcplugins/tcWebHooks

tcWebHooksPlugin 1.2.0-alpha.3

16 Sep 22:20
Compare
Choose a tag to compare
Pre-release

The third alpha release of 1.2.0 version

This release fixes a few bugs, and adds some new features toward the tcWebHooks 1.2.x release milestone.

Note: No longer tested against TeamCity 9. Now compiled against TeamCity 10.0 libraries.

This version contains an implementation of a Centralised Webhook Management service and is a housekeeping change which is mostly not visible to users. It allows future simplification of webhook management.
It provides:

  • A preliminary search tool. See /webhooks/search.html. I would have liked to hook into the TeamCity search page, but it's not extensible.
  • More efficient access to webhooks rather then iterating over each project in case it has webhooks configured.
  • Searching across all webhooks rather than dealing with webhooks in a project context.
  • A single (java) interface for CRUDing and managing webhooks.
  • WebHooks Admin tab now has a link to view all webhooks across all projects because it's now efficient to find them.
  • Ability to prevent a template from being deleted if it is in use #113
  • Hides teamcity's ProjectSettingsManager and will ease transition to SProjectFeatureDescriptor
  • Auto tagging of webhooks based on meta data. Click on the tag in a webhook search result to see other webhooks tagged the same.
  • Find all webhooks which might trigger on this build (experimental, try /webhooks/search.html?buildTypeId=<buildTypeId>), even in parent projects.
  • Allows for future capability like:
    * Copy webhook from project A to project B
    * Import/Export WebHooks
    * Add/Move webhooks when build moves/copied to new project
    * Edit any webhook from search results, rather than from within a project context.

Other Issues resolved

Add SBuild, SBuildType and SProject to Velocity template payload.
Addresses issue #31, #145 and #118

Update old dependencies

  • Now builds against TeamCity 10.0 and springframework 4.3.17.RELEASE.
  • Updated httpclient, guava, commons-lang3,

Remove reference to payload format from plugin-settings.xml
Fixes issue #134 The reason for this change is because we now have a number of template
formats (jsonTemplate, jsonVelocityTemplate, xmlTemplate, xmlVelocityTemplate, etc), and templates should be able to change format - and templating engine - without having to update all the webhooks which reference that template.

Set buildResult to "interrupted" for build state "INTERRUPTED".
Addresses issue #56, where result was still "running" after build was interrupted.

Add mocked data for responsibility events
Fixes issue #48. This presented when using the webhook test and template test features to send test webhooks for responsibility events. Now the data is mocked so that the events have something to send in the webhook payload.

tcWebHooksPlugin 1.2.0-alpha.2

20 Jul 20:37
Compare
Choose a tag to compare
Pre-release

The second alpha release of 1.2.0 version

This release fixes a few bugs, and adds some new features toward the tcWebHooks 1.2.x release milestone.

Bug fixes:

Exception from getVcsRoot on build with personal changes.

Fixes issue #132 Thanks to @pgrefviau for the PR.

Project names containing odd chars cause create/edit dialog to fail to show.

Fixes issue #137 Thanks to @Keilaron for the PRs making my usage of jQuery more robust.

Set "running" status to something relevant to result.

Fixes issue #138 by setting the value to the relevant state if it's currently "Running".

Feature requests:

Add Dischord template.

Thanks to @features-not-bugs for the PR #136

Add pinning/unpinning event

Adds feature requested in #129

Add support for "diffing" PROVIDED vs USER_OVERRIDDEN templates.

Any template with a USER_OVERRIDDEN status, now has a link to view the differences between the PROVIDED (bundled) template versus any user modifications. Addresses issue #143

tcWebHooksPlugin 1.1.326.392

30 Jun 10:40
Compare
Choose a tag to compare

Bugfix release to address issue #137:

Project and BuildType names which contain more interesting characters (eg, colon, parenthesis, etc) cause the WebHook edit dialog to not render correctly.
This problem seems to possibly be related to TeamCity 2019.1.1 in some cases.

A huge thanks to @Keilaron for their guidance helping me use jQuery in a more robust way.

tcWebHooksPlugin 1.1.318.391

08 May 01:32
Compare
Choose a tag to compare

Bugfix release to address three issues:

  1. Fixed exception from getVcsRoot on build with personal changes issue #132
    Thanks to @pgrefviau for the PR and testing.
  2. Tidy up some display values when sent to UI
  3. Gracefully handle case where tcWebHooks is downgraded from 1.2-alpha.1 -> 1.1

tcWebHooksPlugin 1.2.0-alpha.1

10 Mar 10:16
Compare
Choose a tag to compare
Pre-release

The first alpha release of the 1.2.0 version.

The following changes are included:

WebHooks sent from a threadpool

  • Threading is enabled by default
  • Webhooks are now completely asynchronous from the build.
  • This became vital once the queue events were added, because the queuing of the build waits for the event listeners to complete, which stalls the TeamCity UI.
  • Also the same for Responsibility events.
  • All webhook events are logged to the history page, and also the bottom of the webhooks tab in the buildtype page.

This behaviour can be disabled by editing the main-config.xml and adding a setting for webhooks. eg <webhooks useThreadedExecutor="false" />

Template types for XML and form encoded

When creating a new template, choose between "application/json", "application/xml" and "application/x-www-form-urlencoded" versions.

JSON and XML templates should be edited in the template editor in the appropriate format.
Form encoded (aka Name Value Pairs) should be created in the template as a set of java property entries with one per line. See example in commit message 79e0c99

Velocity Template support

WebHook Templates can now be formatted using the Apache Velocity templating engine. More docs about using the Velocity template engine will be available for with the next alpha release.

Minimum requirement of Java 8 and TeamCity 10

Some code now uses Java 8 style lambdas, and the project is built using JDK8. Please run TeamCity with Java 8. This has been a requirement since TeamCity 10, so it would only effect users on TeamCity 9.
Please note. TeamCity 9 support will be dropped in the next alpha release.

Support for Build Queue events

Webhooks can now trigger for build queue events. See issue #52
Note: If "Added to Queue" event is enabled, the webhook will trigger always.
If "Removed from Queue" event is enabled, only builds which have been removed by a human (and will therefore not run) are triggered. The event does fire for every build inside teamcity, but tcWebHooks ignores the removed event if the user is null, as this is effectively the same build state as "build started".

This release includes updates to the "Slack.com compact" template to support Queued build events. No other templates have been updated yet.

Listen for "mark as successful/failed" messages and send buildFinished

If a build result is "marked as successful" or "marked as failed" from within the TeamCity UI (by a user), the build event will trigger a webhook buildFinished event, and send the applicable "fixed/success/failed/broken" payload.

Template Import and Export

It now possible to export a template to a JSON file, and import it to another teamcity instance. This has been possible via the REST API since tcWebHooks 1.1, but now there is UI to accomplish this.

Improved support for Responsibility events

The Responsibility event handling has been re-written to better support all the varying responsibility events that TeamCity generates. This should greatly improve support for these events.

UX and UI improvements

  • Support for testing "queue" events from the webhook and template edit screens (with some mocked data).
  • UX fix to address webhook edit screen tabs which broke with recent releases of TeamCity.
    Opening a webhook edit dialog should now open on the first tab, unless the enabled builds are clicked, in which case it now opens on the builds tab.

Semantic Version releases

Release versions will adhere to semver.org specifications in future.

tcWebHooksPlugin 1.1.301.388

24 Feb 08:34
Compare
Choose a tag to compare

Bugfix release to address two issues:

  1. Fix regression with http timeouts.
    A large refactor just before 1.1 was released missed setting the timeouts correctly. This release fixes that regression.
  2. UX fix to address webhook edit screen tabs which broke with recent releases of TeamCity.
    Opening a webhook edit dialog should now open on the first tab, unless the enabled builds are clicked, in which case it now opens on the builds tab.

tcWebHooksPlugin 1.1.284.386

13 Dec 02:54
Compare
Choose a tag to compare

tcWebHooks 1.1 Don't allow WebHook Preview and Test Executions to modify existing Configs

It is strongly recommended that all users on 1.1.x.x update to this release (or newer).

This addresses issue #127, where executing a preview of webhook content - or a test webhook execution - from within the Webhook Edit dialogue box, inadvertently modified the WebHook config for that webhook.

Subsequent reads of this config item would return the modified version of this config, rather than the one persisted to disk. This included edits and executions of that webhook.

More details in the commit for 17ac1e6

tcWebHooksPlugin 1.1.261.385

02 Dec 08:15
Compare
Choose a tag to compare

tcWebHooks 1.1 Edit Screen bugfix release

This release is to address formatting issues introduced in TeamCity versions 2018.1.4 and 2018.2 RC.
Due to a change in the javascript code bundled with TeamCity, the webhook edit dialogue box was truncated and the data was not displayed correctly.

This release is to address this change, and makes the tcWebHooks WebHook Edit screen functional again.
This problem was reported in issue #123

tcWebHooksPlugin 1.1.249.382

12 Nov 09:10
Compare
Choose a tag to compare

Official Release for tcWebHooks 1.1

After a long wait, it has finally arrived. For those upgrading from 0.9.x.x, see the list of major features on the 0.9.x.x to 1.1.x.x wiki page. Note: There was no "1.0" release.

Since 1.1 RC2, the following changes have been completed:

  • Fix for null pointer exception (edge case) if AuthType is not defined when editing webhook
    This is probably only an issue that could occur if you're manually hacking around in the plugin-settings.xml file.
  • Don't show URL of webhooks against the current build if not admin.
    If you're a user without PROJECT_EDIT permission, it was possible to see the full URL in a webhook configuration on the WebHook tab of a build page if the webhook was configured for that specific build. This is now hidden as well as the other URLs for webhooks in the project.

What is the crazy version numbering?

  • 1.1 is the major and minor version numbers.
  • 249 is the build number (roughly this many builds since the project moved to github).
  • 382 is the number of commits on master. This made more sense when it was SVN, but for GIT the hash is more useful. If you want to see the commit hash, it is listed in the plugins page in teamcity.

From version 1.2.x releases will switch to semantic versioning.

tcWebHooksPlugin 1.1-rc2.246.379

18 Oct 10:49
Compare
Choose a tag to compare
Pre-release

Release candidate 2 and hopefully the last before final 1.1 release.

This release fixes the XML preview display, and adds logging of server response headers and body.

  • Fix for webhook preview when format is XML. Fixes #114
  • Adds logging of the headers and body as returned by the webhook endpoint. This means the responses returned by the server at the webhook URL. Enable DEBUG logging in TeamCity to see these being logged. See #115 for more information.

All stories are now completed for v1.1. Unless any blocker bugs are reported, this release will be re-released as 1.1 final.