Skip to content

Release Notes for version 1.2.0

netwolfuk edited this page Feb 4, 2023 · 4 revisions

NOTE: The tcWebHooks plugin version 1.2.0 is not downloading correctly from the JetBrains TeamCity plugin Marketplace at the moment (Feb 4th, 2023). It can be downloaded from the releases page here on Github.

This page highlights the main changes since version 1.1.x.x of the tcWebHooks TeamCity plugin. It is intended to give an overview of features for users who have not been part of the alpha and release candidate evaluation.

Support for number of new build events has been added.

  • Build Added to Queue
  • Build Removed from Queue by User. All builds are removed from the queue either by a user, or by TeamCity when they start running. This listens specifically for when a user removes them from the queue.
  • Service Message Received. The build emits a service message in the format ##teamcity[sendWebhook]. It's also possible to define variables for use in a webhook by emitting a service message like ##teamcity[sendWebhook foo='bar',baz='fred']
  • Build Pinned
  • Build Unpinned

The full list of build events now supported is:

image

Project Templates and WebHook Parameters

  • A new type of template and webhook variable can be created called a Webhook Parameter. See the Webhook-Parameters for more information
  • Templates are associated with a project. All existing and bundled templates will be available in _Root, but it's also possible to create a template in a sub-project if the user has EDIT_PROJECT permission on that sub-project. Templates are inherited by all child projects.

Template language improvements and Velocity Support

  • Templates can be in the Standard format (same as 1.1.x.x) or the new Velocity Templating Language format. For more information regarding using Velocity in tcWebHooks, please see WebHook-Templates-:-The-Velocity-Templating-Engine.
  • Templates can be created as one of six payload formats. JSON, Name Value Pairs, or XML, and can use either the Standard or Velocity template engine.
    • JSON - application/json
    • NV Pairs - application/x-www-form-urlencoded. This is the format that web forms are POST'd in.
    • XML - text/xml

Improved UI for displaying WebHooks, Templates and Parameters

  • When editing a Project in TeamCity, the tab was renamed from "WebHooks" to "WebHooks & Templates" because it now lists Webhook configurations, project templates and project WebHook parameters.
  • Shows a count of WebHooks, Templates and Parameters inherited from higher level projects.
  • Shows details of WebHooks, Templates and Parameters in the current project. image

Headers, Filters and Parameters editable in the UI

image

Auto-Generated tags (classification)

  • Auto-generation of tags for webhooks. Clicking a tag will search for all the webhook configurations that have the same tag. Note: webhooks not permissioned to see are hidden.

Improved WebHooks administration UI with graph

  • Graph of executions grouped by response code

  • An analysis of Statistics is persisted across restarts.

  • Support for sharing WebHooks analytics with tcWebHooks developers (defaults to off).

    image

Secure values support

WebHook Project Parameters marked as "password" are now externalised into TeamCity's secure storage and are stored outside of VCS the project config is synchronised with VCS. See Hiding sensitive values

Added a new "Build Step" called "WebHook Service Message Sender"

Add a build step to your build which triggers webhooks with the "Service Message Received" event enabled. Note: it's also possible to fire the "Service Message Received" event by printing ##teamcity[sendWebhook] to stdout during the build.

Skip REST-API jar checking for recent TC versions

Recent versions of TeamCity no longer include a jar that conflicts with the tcWebHooks REST API. This change no longer requires the check to run if the version of TeamCity 2021.0 or newer.

Add ability to mark a property as "forced resolve"

Certain teamcity variables are not resolved until after the "changes loaded" event in the build lifecycle. Marking a WebHook Project Parameter as "forced resolve" asks TeamCity to resolve the variable earlier if it can.

Improve WebHook variables

Added $buildStatusSakuraUrl variable which points to the URL of the build in the new experimental UI. Updated $buildStatusUrl to use build External ID, rather than Internal ID. using the internal ID would sometimes redirect to main page in teamcity rather than the specific build (mainly when you had to login as part of the UI flow).

Updated libraries

Guava, httpClient, Velocity Template Engine

WebHook History improvements

Add separate Atomic Integer counters for history event types. Previously they were calculated from the store items on page load. Prevent concurrency issues when updating the history store under heavy load. Update wording of history page to better indicate that the counters are separate from history store. On history page default to viewType "All" if no query string event type is present in URL. Support capital OK. The pagination of "OK" events was reverting to "All" events when using the paging links.

Add project audit events when WebHooks are edited

Editing webhooks now shows with a comment in the project audit log. When using a project with VCS versioned settings the comments show up in the VCS commit log.

Don't hide build specific webhooks on project tab - UX improvement

Previously webhooks assigned to just one build would not appear on the project webhook list. This change shows all webhooks in a project, and indicates the number of builds configured.

Add support for variables in Authentication values

Allows the values for Authenticator implementations to be resolved from webhook variables. It uses the templating engine specified by the template type.

Add support for NTLM Authentication

Newer versions of Apache HTTP Client (the library used by tcWebHooks) support NTLM authentication. Please test and give any feedback.

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.

Clone this wiki locally