Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Poll: tcWebHooks : what to support in the future #60

Open
netwolfuk opened this issue Feb 14, 2017 · 20 comments
Open

Poll: tcWebHooks : what to support in the future #60

netwolfuk opened this issue Feb 14, 2017 · 20 comments

Comments

@netwolfuk
Copy link
Member

netwolfuk commented Feb 14, 2017

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 netwolfuk changed the title Poll: tcWebHooks support in the future Poll: tcWebHooks : what to support in the future Feb 14, 2017
@mrinc
Copy link

mrinc commented Feb 15, 2017

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

@netwolfuk
Copy link
Member Author

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.

This was referenced Feb 22, 2017
@ogerovich
Copy link

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.

@nap
Copy link

nap commented Mar 23, 2017

  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.

@netwolfuk
Copy link
Member Author

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.

@nap
Copy link

nap commented Mar 23, 2017

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

@netwolfuk
Copy link
Member Author

@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.

@nap
Copy link

nap commented Mar 23, 2017

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

@netwolfuk
Copy link
Member Author

netwolfuk commented Mar 23, 2017

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

@cornz
Copy link

cornz commented Mar 28, 2017

  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

@netwolfuk
Copy link
Member Author

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

Would you be prepared to share your MS Teams template?

@cornz
Copy link

cornz commented Apr 2, 2017

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

@netwolfuk
Copy link
Member Author

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

@nbergen
Copy link

nbergen commented Apr 18, 2017

  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)

@netwolfuk
Copy link
Member Author

netwolfuk commented Apr 20, 2017

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.

@nbergen
Copy link

nbergen commented Apr 20, 2017

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.

@netwolfuk
Copy link
Member Author

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
Copy link
Member Author

Version 1.1 has finally been released!

@mccsoft
Copy link

mccsoft commented Dec 2, 2019

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!

@netwolfuk
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants