tcWebHooks icon indicating copy to clipboard operation
tcWebHooks copied to clipboard

Poll: tcWebHooks : what to support in the future

Open netwolfuk opened this issue 8 years ago • 20 comments

I am trying to determine how much effort I should invest in supporting older versions of TeamCity, and where to focus future development.

There are some new features if TeamCity 10 which I would like to migrate to, and I am wondering how many tcWebHooks users would be affected by discontinuing support for versions 9.x and below.

Also, how tcWebHooks is being used, and what payload formats are popular

Could you please add a comment to this issue indicating the following:

  1. TeamCity version and OS
  2. tcWebHooks major version: eg, 0.9 or 1.1
  3. If 1.1, are you using custom templates you've written yourself?
  4. What payload formats do you use?
  5. Are your endpoints internal to your company, external (eg, slack, hipchat, etc) or both.
  6. What's the best and/or worst thing about tcWebHooks?

Thanks, Net Wolf.

netwolfuk avatar Feb 14 '17 22:02 netwolfuk

Hey,

  1. 10 / Windows
  2. 0.9.8 (Would like to upgrade, but can only upgrade to a stable release)
  3. I'd like to but are awaiting 1.1
  4. JSON mainly, but as we can't push up to MatterMost with your plugin, its not being used as much.
  5. Yes
  • Best: Having freaking web hooks instead of having to poll TC!
  • Worst: Waiting for the stable release :D

In my opinion, I'd drop support for TC9 if there is substantial features available in TC10 so that the plugin is able to advance and be better rather than limiting it. You can always branch for TC9 and just do bug fixes separately if really necessary for people still on TC9.

-M

mrinc avatar Feb 15 '17 08:02 mrinc

Thanks @mrinc for taking the time to reply.

I set the lofty goal of writing a REST API and using that from the UI for managing the new templates and webhook config. However, in TC10, one can now store project config in a way that can be managed by the existing REST API, somewhat negating the requirement for mine.

Based on all the feedback so far ;-) , I will abandon the API, and focus on getting templates editable in the UI and then releasing a stable release. Then I will work on transitioning to the new TC 10 config storage model (and providing the kotlin DSL for editing it).

Thanks for making me aware of MatterMost. That should be possible to support already (certainly in the 1.1 alphas). I'll take a look into it.

netwolfuk avatar Feb 19 '17 20:02 netwolfuk

Hello,

  1. 10.0.3, Ubuntu 12.04.3
  2. 1.1.122.138
  3. No
  4. Legacy Webhook (JSON)
  5. Internal
  6. Best: what @mrinc said - no polling. Worst: not being able to see all builds/projects where the plugin is used (e.g. a cumulative list in Administration area).

TC 10+ support is all we need going forward.

ogerovich avatar Mar 23 '17 15:03 ogerovich

  1. 9.1.7, CentOS 6
  2. 0.9.27.61
  3. Not supported in the version we use
  4. Name Value Pairs
  5. Both
  6. What's the best and/or worst thing about tcWebHooks? a. It just work, and like others sais: No Poll b. UI is buggy and cant configure the message from UI, need to edit XML

To me, it would make sence to support the last 2 majors of TeamCity. Especially with their shitty licensing model. We can't upgrade as we would lose agent licenses.

nap avatar Mar 23 '17 16:03 nap

Thanks @nap and @ogerovich for your feedback. I very much appreciate you taking the time to post a comment.

@nap, could you possibly attach some of your plugin-settings.xml files to this issue or email them to me? Please remove any sensitive data from them first :-) I'd like to see what settings you have had to manually edit, and make sure my future plans include a way to edit them in the UI.

Also, can you think of anything specific in the UI that you find buggy? Feel free to raise an issue for any bugs.

netwolfuk avatar Mar 23 '17 16:03 netwolfuk

Reading my previous post here. I see that I might have come off a little bit strong. Sorry about that, I think you're doing a great job. No offence was intended.

Here's the payload I send to Slack that is read from plugin-settings.xml. As you know from my previous comment, we use an old version of the plugin (0.9.27.61). So some of what I'll show might already have been fixed by you.

<!-- Entity encoded payload to slack channel -->
<parameters>
    <param name="payload" value="{&quot;username&quot;:&quot;build-bot&quot;,&quot;icon_emoji&quot;:&quot;:robot_face:&quot;,&quot;text&quot;:&quot;&lt;!here|here&gt; ${buildFullName} has finished. This is build number ${buildNumber}, has a status of *${buildResult}* and was triggered by ${triggeredBy}\n```${buildStatus}```&quot;,&quot;attachments&quot;:[{&quot;color&quot;:&quot;#FF0000&quot;,&quot;fields&quot;:[{&quot;title&quot;:&quot;TeamCity&quot;,&quot;value&quot;:&quot;&lt;http://cmserver.corp.radialpoint.com/teamcity/viewLog.html?buildTypeId=${buildTypeId}&amp;buildId=${buildId}|${buildFullName}&gt;&quot;,&quot;short&quot;:false},{&quot;title&quot;:&quot;SonarQube&quot;,&quot;value&quot;:&quot;&lt;http://sonarqube.radialpoint.com/overview?id=${projectExternalId}:${branchDisplayName}|${projectExternalId}:${branchDisplayName}&gt;&quot;,&quot;short&quot;:false}]}]}" />
</parameters>

Here are some screenshot of the UI

Here the title seems to be missing padding or margin:

screen shot 2017-03-23 at 1 03 20 pm

Here you can see that the list of build configuration is overflowing the size of the container.

screen shot 2017-03-23 at 1 03 33 pm

nap avatar Mar 23 '17 17:03 nap

@nap That's fine. No offense taken. Thanks for the words of encouragement.

I plan to implement a "variable builder" in the UI. Which allows one to build variables either at the project scope or webhook scope. For the Legacy payloads they will just appear in the payload as parameters. For the new templates in 1.1.x, they will be able to be referred to in a template.

Thanks for pointing out the overflow bug. I was not aware of that. I think I've fixed the dialog title padding in 1.1. However that code needs to be updated as it was from TeamCity 6 era. I've noticed that ESC does not close the dialog, and one can't drag it around.

netwolfuk avatar Mar 23 '17 20:03 netwolfuk

Are you planning on dropping support for TeamCity 9 for version 1.1?

nap avatar Mar 23 '17 21:03 nap

No. Probably ~~1.2 or 1.3~~ 2.0 #62 . And maybe even maintain a branch if required.

netwolfuk avatar Mar 23 '17 22:03 netwolfuk

  1. 10.0.2 centOS 7, dockered
  2. 1.1
  3. modified the slack template to work with Microsoft Teams
  4. JSON
  5. Microsoft Teams (Business) - probably both? :)
  6. best: works with minimal effort; worst: templates are confusing and should be configured via webinterface

cornz avatar Mar 28 '17 13:03 cornz

Thanks for your feedback @cornz. Template editing in the UI is under development #67.

Would you be prepared to share your MS Teams template?

netwolfuk avatar Mar 28 '17 16:03 netwolfuk

Sure, it's not that different from the slack one anyway and Microsoft has a decent API documentation for customization: https://dev.outlook.com/Connectors/Reference

cornz avatar Apr 02 '17 07:04 cornz

That's cool. I just have no way to test it, so whatever you have will be much better than anything I dream up.

netwolfuk avatar Apr 02 '17 07:04 netwolfuk

  1. TC 10.0 / Windows
  2. 0.9
  3. n/a
  4. JSON
  5. slack
  6. Templates are a hassle (so much so that I haven't set them up for a few of our smaller builds)

nbergen avatar Apr 18 '17 22:04 nbergen

Thanks @nbergen for your comments. When you say they are a hassle, it is because they are cumbersome to edit, or some other reason? I have started working on #67 which will provide a UI for creating/editing/cloning/deleting templates.

netwolfuk avatar Apr 20 '17 01:04 netwolfuk

It's been a little while since I've touched them, but I believe I ended up having to ts on to each TC server and find the correct folder to drop (and iterate on) the templates, and having separate scripts to format the template in a way Slack was happy with (escaping characters and dealing with whitespace).

So cumbersome to edit, both the actual files and massaging the format to suit the integration.

nbergen avatar Apr 20 '17 18:04 nbergen

Thanks @nbergen That's useful feedback. I'm hoping that the new templating concept allows more effective reuse of payload customisations.

There will also be a preview screen from which one can see the template rendered from the contents of a recent build, and (hopefully) able to trigger the webhook for testing, rather than having to run a build.

However, based on your feedback, it would be useful to be able to export/import the raw config somehow, for when one maintains multiple TeamCity instances.

netwolfuk avatar Apr 20 '17 20:04 netwolfuk

Version 1.1 has finally been released!

netwolfuk avatar Nov 12 '18 09:11 netwolfuk

Hi! We had to move to your project because https://github.com/PeteGoo/tcSlackBuildNotifier project is no longer actively maintained and it doesn't support well our version of TeamCity. What we use:

  1. TeamCity Professional 2019.1.5 / Windows
  2. tcWebHooks major version: 1.1.355.396
  3. Yes.
  4. jsonTemplate
  5. Slack
  6. Best - Preview Template it's super feature! Worst - doesn't support good parsing of Changes field. We get used to use in old plugin sending mentions to authors of commits to a slack channel if build was broken. Looking forward for 1.2 version!

mccsoft avatar Dec 02 '19 08:12 mccsoft

Thanks for your feedback @mcctomsk

Pete's code (which was actually forked from mine originally) does some extra magic to map teamcity users to slack ids. I've not looked at it recently, so am unsure if that logic could be implemented in Velocity or not.

netwolfuk avatar Dec 02 '19 09:12 netwolfuk