auto icon indicating copy to clipboard operation
auto copied to clipboard

Microsoft Teams - Invalid Message Formatting

Open redrathnure opened this issue 3 years ago • 5 comments

Describe the bug

Getting incorrect formatted message using MS Teams plugin. Text looks like escaped version with special characters like \n. For example: screes_actual

To Reproduce

Enable microsoft-teams plugin and execute auto shipit

Expected behavior

Message in MS Teams channel looks closed to formatted version from generated CHANGELOG.md. E.g. there are URLs, multiline formatting and basic emoji icons.

screen_expected

Screenshots

screes_actual

Environment information:

Linux, sh
auto v10.29.3
git 2.20.1

Additional context

Message in MS Teams channel looks like escaped/serialized markdown version. I performed two tests:

  1. Copy message from MS Teams channel and resend it via Postman using MS Teams Web hook URL. As result got well formatted text (more-less, because URLs links was missed)
  2. I copied text from generated CHANGELOG.md file, perform JSON string escaping and send it it via Postman using MS Teams Web hook URL. As result got well formatted text (only few icons were missed, but this is MS Teams related issue).

Based on this, I conclude that MS Teams API works fine but issue is with formatting on sender side.

For example what I did manually and hat works fine: source text from CHANGELOG.md:

:tada: This release contains work from a new contributor! :tada:

Thank you, DevName1 ([@DEV001](https://git.blahblah.com/DEV001)), for all your work!

#### 🐛 Bug Fix

- Hotfix([PROJ-1234](https://jira.blahblah.com/browse/PROJ-1234): ): use different step size for price and power filter … [#678](https://git.blahblah.com/some/repo/pull/678) ([@DEV001](https://git.blahblah.com/DEV001))

#### Authors: 1

- DevName1 ([@DEV001](https://git.blahblah.com/DEV001))

---

escaped string:

:tada: This release contains work from a new contributor! :tada:\n\nThank you, DevName1 ([@DEV001](https://git.blahblah.com/DEV001)), for all your work!\n\n#### 🐛 Bug Fix\n\n- Hotfix([PROJ-1234](https://jira.blahblah.com/browse/PROJ-1234): ): use different step size for price and power filter … [#678](https://git.blahblah.com/some/repo/pull/678) ([@DEV001](https://git.blahblah.com/DEV001))\n\n#### Authors: 1\n\n- DevName1 ([@DEV001](https://git.blahblah.com/DEV001))\n\n---

Request for MS Teams WEB Hook:

{
  "@context": "https://schema.org/extensions",
  "@type": "MessageCard",
  "themeColor": "0072C6",
  "title": "Test",
  "text": ":tada: This release contains work from a new contributor! :tada:\n\nThank you, DevName1 ([@DEV001](https://git.blahblah.com/DEV001)), for all your work!\n\n#### 🐛 Bug Fix\n\n- Hotfix([PROJ-1234](https://jira.blahblah.com/browse/PROJ-1234): ): use different step size for price and power filter … [#678](https://git.blahblah.com/some/repo/pull/678) ([@DEV001](https://git.blahblah.com/DEV001))\n\n#### Authors: 1\n\n- DevName1 ([@DEV001](https://git.blahblah.com/DEV001))\n\n---",
}

May be somehow related to sanitizeMarkdown() function inside https://github.com/intuit/auto/blob/main/plugins/microsoft-teams/src/index.ts and https://github.com/intuit/auto/pull/1914 changes.

redrathnure avatar Jun 22 '21 16:06 redrathnure

I'm not a user of Microsoft teams myself. If you find something that can be improved feel free to make a PR!

hipstersmoothie avatar Aug 12 '21 23:08 hipstersmoothie

@vincentbriglia: We're trying to understand why the sanitizeMarkdown bit was required for you, while it seems problematic for us and others. (Related post made by @reintroducing : https://github.com/intuit/auto/pull/1914#issuecomment-846576263) Any thoughts on that?

I would be happy to make the necessary changes myself, but I would like to understand why sanitizeMarkdown was added in the first place.


Just to make sure that sanitizeMarkdown (=> jsesc) was the source of our problem, I commented the sanitizeMarkdown like so.

Before: image

After: image

mathieubergeron avatar Sep 20 '21 18:09 mathieubergeron

@mathieubergeron Thank you for bring this up, it's definitely a sight for sore eyes in our Teams npm publish reporting channel :) I was going to circle back on this after my PTO in two weeks because I've had enough looking at it but looks like you've already found the issue. It would be great if we can get a new version published that fixes this. I know you're waiting on an answer but honestly, it's completely unusable as it is so I'd favor a "get this out now and answer questions later" approach if possible. @hipstersmoothie thoughts?

reintroducing avatar Sep 20 '21 20:09 reintroducing

@mathieubergeron @reintroducing i would have never pushed anything that didn't work at the time, there is no way of double checking now, but it worked for 1 commit and immediately after we got this garbled content also - we just haven't prioritized the work on our end. Feel free to create a PR, @hipstersmoothie will pull it in without doubt.

vincentbriglia avatar Sep 20 '21 21:09 vincentbriglia

@mathieubergeron @reintroducing @vincentbriglia I can confirm that removing jsesc from the mix now creates nicely formatted release messages in Teams (we create a copy of the plugin wihin our repo and remove jsesc and all is good 👍🏻 )

jakobe avatar Oct 01 '21 10:10 jakobe