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

MS Teams webhooks: deprecated O365 webhook will break on August 15th, 2024 / October 1st, 2024 #31615

Open
sommerf-lf opened this issue Jul 11, 2024 · 15 comments
Labels
issue/confirmed Issue has been reviewed and confirmed to be present or accepted to be implemented issue/workaround it is or has a workaround topic/webhooks

Comments

@sommerf-lf
Copy link
Contributor

sommerf-lf commented Jul 11, 2024

Description

Source Microsoft
I couldn't find any mention of this in any issue or PR.
Can't be repreduced, as it is not deprecated yet, but the warning already exists: see screenshot
However a Workflow can replace this, which needs a change of the payload sent.

Gitea Version

1.22.0

Can you reproduce the bug on the Gitea demo site?

No

Log Gist

No response

Screenshots

image

Git Version

No response

Operating System

No response

How are you running Gitea?

not relevant

Database

None

@sommerf-lf
Copy link
Contributor Author

Documentation for new workflow post message: https://learn.microsoft.com/en-us/connectors/teams/?tabs=text1#microsoft-teams-webhook

@silverwind
Copy link
Member

https://www.theregister.com/2024/07/09/users_rage_as_microsoft_announces/ is also related. Less then 3 months until they drop the functionality seems far too short of a period.

@sommerf-lf
Copy link
Contributor Author

to clearify:

  • will break at October 1st, 2024
  • can't create new endpoints at August 15th, 2024

@sommerf-lf sommerf-lf changed the title MS Teams webhooks: deprecated O365 webhook will break on August 15th, 2024 MS Teams webhooks: deprecated O365 webhook will break on August 15th, 2024 / October 1st, 2024 Jul 11, 2024
@sw2io
Copy link

sw2io commented Jul 17, 2024

i got a same error
#31645

@sommerf-lf
Copy link
Contributor Author

Update from microsoft:

Update 07/17/2024: Due to customer feedback received around the footer message, it will be removed from the cards that are posted within Microsoft Teams.

It will still break, just not show the error warning any more

@silverwind
Copy link
Member

Deprecation was extended to December 2025 with a URL change, otherwise December 2024.

https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/

@silverwind silverwind added issue/confirmed Issue has been reviewed and confirmed to be present or accepted to be implemented and removed type/bug labels Jul 23, 2024
@bbenouarets
Copy link

If other system administrators are having difficulties locating the affected teams:
I have written a small tool in Golang that uses the Graph API to output the affected teams.

Teams Webhook Finder

This has helped us enormously, as Microsoft does not offer its own solution for reading the affected channels and teams. We have over 350 teams in our company, which we would otherwise have had to search through manually.

@PehDeh
Copy link

PehDeh commented Jul 25, 2024

There is also a neat Powershell Script which could list also other Connectors in Teams:
https://github.com/12Knocksinna/Office365itpros/blob/master/Report-TeamsApps.PS1
https://office365itpros.com/2024/07/10/teams-office-connectors/

Teams Webhook Finder

@bbenouarets
Copy link

There is also a neat Powershell Script which could list also other Connectors in Teams:

https://github.com/12Knocksinna/Office365itpros/blob/master/Report-TeamsApps.PS1

https://office365itpros.com/2024/07/10/teams-office-connectors/

Teams Webhook Finder

That is correct. However, there are various dependencies. Modules must be installed and PowerShell is also required. With the Teams Webhook Finder, all I have is a small config and an executable file.
In addition, the cmdlets used to list the app definitions are only in preview, which does not guarantee a reliable application.

@yp05327
Copy link
Contributor

yp05327 commented Aug 13, 2024

You can create a new webhook in workflow, and it seems that the API is the same, they just added the permission control.
https://support.microsoft.com/en-us/office/post-a-workflow-when-a-webhook-request-is-received-in-microsoft-teams-8ae491c7-0394-4861-ba59-055e33f75498

@jordanweschler
Copy link

The API isn't exactly the same, it seems that the new structure expects the payload to be wrapped in an array. See the following error that occurs when Workflows attempts to create a card:

ExpressionEvaluationFailed. The execution of template action 'Send_each_adaptive_card' failed: the result of the evaluation of 'foreach' expression '@triggerOutputs()?['body']?['attachments']' is of type 'Null'. The result must be a valid array.

Annoyingly, teams responds with a 202 and then fails to post the event to a channel. To see the error you need to go into Manage Workflow and view the event history.

@yp05327
Copy link
Contributor

yp05327 commented Aug 21, 2024

I didn't find any documents about this new webhook api. Does MS have it?

@jordanweschler
Copy link

I found this page: https://learn.microsoft.com/en-us/connectors/teams/?tabs=text1%2Cdotnet#microsoft-teams-webhook

@yp05327
Copy link
Contributor

yp05327 commented Aug 27, 2024

It is not compatibility. So it will be a bug in the future.

see: prometheus/alertmanager#3920

@thecicco
Copy link

Hello everyone,
I was able to find a possible workaround for this problem:

All you need to do is:

  1. create the workflow from the template: [When a Teams webhook request is received].
  2. edit the template
  3. delete all the steps under the action [When a Teams webhook request is received].
  4. add the action [Initialize variable] and edit it as in the picture: PS: don't forget the type=object:
Screenshot 2024-08-29 alle 15 46 10 5) add the json that extracts the parameters coming from the webhook and converts them to: [`AdaptiveCard`] so that they can be printed correctly on teams
{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "msteams": {
    "width": "Full"
  },
  "body": [
    {
      "type": "TextBlock",
      "text": "@{triggerBody()?['title']}",
      "size": "ExtraLarge",
      "weight": "Bolder"
    },
    {
      "type": "FactSet",
      "facts": [
        {
          "title": "Repository:",
          "value": "@{triggerBody()?['sections'][0]['facts'][0]['value']}"
        },
        {
          "title": "@{triggerBody()?['sections'][0]['facts'][1]['name']}",
          "value": "@{triggerBody()?['sections'][0]['facts'][1]['value']}"
        },
        {
          "title": "Author:",
          "value": "@{triggerBody()?['sections'][0]['activitySubtitle']}"
        }
      ]
    }
  ],
  "actions": [
    {
      "type": "Action.OpenUrl",
      "title": "View in Gitea",
      "url": "@{triggerBody()?['potentialAction'][0]['targets'][0]['uri']}"
    }
  ]
}
  1. add the action [Publish card in a chat or channel] and set the message of the previous action as [Adaptive Card]
    Screenshot 2024-08-29 alle 15 46 41
  2. after doing this save and test.

The end result will look like this:
Screenshot 2024-08-29 alle 16 41 13

I hope it will be useful for you,
Riccardo.

@lunny lunny added the issue/workaround it is or has a workaround label Aug 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
issue/confirmed Issue has been reviewed and confirmed to be present or accepted to be implemented issue/workaround it is or has a workaround topic/webhooks
Projects
None yet
Development

No branches or pull requests

9 participants