-
Notifications
You must be signed in to change notification settings - Fork 88
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
feat: Teams communication adapter #4968
Conversation
|
📚 Storybook DeploymentThe latest changes are available as preview in: https://32984a24.hive-storybook.pages.dev |
🐋 This PR was built and pushed to the following Docker images (tag: Docker Bake metadata{
"app": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/bo72l6oo92ljom8qp5vtdqmsu",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:376427ad195cf83ba786b19e41fac77638a3435feb1ff548b55179c0135e07cc",
"size": 685
},
"containerimage.digest": "sha256:376427ad195cf83ba786b19e41fac77638a3435feb1ff548b55179c0135e07cc",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/app:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/app:TeamsCommunicationAdapter"
},
"composition-federation-2": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/m9uw6r6res2e9a5tuiw0d90o3",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:22d5eb4a3c0d485a394dd4154c8d4f46d6f8d89d1439c363c40318214d2a7814",
"size": 685
},
"containerimage.digest": "sha256:22d5eb4a3c0d485a394dd4154c8d4f46d6f8d89d1439c363c40318214d2a7814",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/composition-federation-2:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/composition-federation-2:TeamsCommunicationAdapter"
},
"emails": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/fxot1rvj971x00p4g6bly18x2",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:5a6274a281b4b6e85e978edaf465a300174032cf54d0fe4d43e3f2b8b1e45c89",
"size": 685
},
"containerimage.digest": "sha256:5a6274a281b4b6e85e978edaf465a300174032cf54d0fe4d43e3f2b8b1e45c89",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/emails:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/emails:TeamsCommunicationAdapter"
},
"policy": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/ge08d4sgep2nfzf848rbdrjlv",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:7ea0a2342e757c54620fbbd18d1a23f1e8f1fc6d958ca9fb6a36891abef37c47",
"size": 685
},
"containerimage.digest": "sha256:7ea0a2342e757c54620fbbd18d1a23f1e8f1fc6d958ca9fb6a36891abef37c47",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/policy:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/policy:TeamsCommunicationAdapter"
},
"rate-limit": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/s5pu5kkoff74qxymuqpc5w2yo",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:a51b2807cfa802204fad6ea124931f5b7b44c134d374aed43a09ba6f390589ad",
"size": 685
},
"containerimage.digest": "sha256:a51b2807cfa802204fad6ea124931f5b7b44c134d374aed43a09ba6f390589ad",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/rate-limit:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/rate-limit:TeamsCommunicationAdapter"
},
"schema": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/e4fo0i54qp8tquwgp1xlrelcy",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:2f93f230838ed84497c766be809969016fba093b6d88697ae1b396458880c90e",
"size": 685
},
"containerimage.digest": "sha256:2f93f230838ed84497c766be809969016fba093b6d88697ae1b396458880c90e",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/schema:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/schema:TeamsCommunicationAdapter"
},
"server": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/fzxo71hix0l40cyt90yw60vrt",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:5fd14321281f32b584567333ca94d3a59fb9806ee7645a0a1a154f838b3d9542",
"size": 685
},
"containerimage.digest": "sha256:5fd14321281f32b584567333ca94d3a59fb9806ee7645a0a1a154f838b3d9542",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/server:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/server:TeamsCommunicationAdapter"
},
"storage": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/yjqel54yyzekoh3o9egipgy7m",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:c61076a96e19a16dd3dab7787ec759b95321c7d071d05e41ec558c577d1fd51a",
"size": 685
},
"containerimage.digest": "sha256:c61076a96e19a16dd3dab7787ec759b95321c7d071d05e41ec558c577d1fd51a",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/storage:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/storage:TeamsCommunicationAdapter"
},
"stripe-billing": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/16i6zu7afl15bg685vhsn53vd",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:0093c3b0a1424cd2a50e9be05e4fff8e39f8333c6a524793f210b3f8de58767b",
"size": 685
},
"containerimage.digest": "sha256:0093c3b0a1424cd2a50e9be05e4fff8e39f8333c6a524793f210b3f8de58767b",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/stripe-billing:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/stripe-billing:TeamsCommunicationAdapter"
},
"tokens": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/xeijlo02vo8ckx35g1cdhshb5",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:b2baa6df73a232c77d392608d170dc8f22aba193433d6bec136bb3da1f27b72c",
"size": 685
},
"containerimage.digest": "sha256:b2baa6df73a232c77d392608d170dc8f22aba193433d6bec136bb3da1f27b72c",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/tokens:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/tokens:TeamsCommunicationAdapter"
},
"usage": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/pgpcj9lybl2537o5tmywawqxx",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:989fc54723a0c09bd360d8c7aa4530b2e94f92654740d10ebbf2406b78d2241e",
"size": 685
},
"containerimage.digest": "sha256:989fc54723a0c09bd360d8c7aa4530b2e94f92654740d10ebbf2406b78d2241e",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/usage:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/usage:TeamsCommunicationAdapter"
},
"usage-estimator": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/y6vo932p9e5a9bqlyy31j04c4",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:a52f4c4367f130fb9098554bbd2828789277d4be4b917cc464cdca192743d4cf",
"size": 685
},
"containerimage.digest": "sha256:a52f4c4367f130fb9098554bbd2828789277d4be4b917cc464cdca192743d4cf",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/usage-estimator:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/usage-estimator:TeamsCommunicationAdapter"
},
"usage-ingestor": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/59300pu9v0tqdeftt5xbm4uc2",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:17d5d29d5af4a8cf6228f2fe8433eca737da46992cf42013b3c5c376333be44d",
"size": 685
},
"containerimage.digest": "sha256:17d5d29d5af4a8cf6228f2fe8433eca737da46992cf42013b3c5c376333be44d",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/usage-ingestor:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/usage-ingestor:TeamsCommunicationAdapter"
},
"webhooks": {
"buildx.build.ref": "builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac/builder-8c27cc26-e6c6-4935-9c66-afc61d7fb2ac0/isy9ems5bmxqgpojmxyx1ift0",
"containerimage.descriptor": {
"mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
"digest": "sha256:e7e747609532fba4c357eb96bbef6998529a278f9e35b31c0b65fbc001fb017f",
"size": 685
},
"containerimage.digest": "sha256:e7e747609532fba4c357eb96bbef6998529a278f9e35b31c0b65fbc001fb017f",
"image.name": "ghcr.io/kamilkisiela/graphql-hive/webhooks:903c95ac790baa32272fa1d19477010bdc205043,ghcr.io/kamilkisiela/graphql-hive/webhooks:TeamsCommunicationAdapter"
}
} |
c632416
to
905c655
Compare
packages/web/app/src/components/project/alerts/create-channel.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you also update docs? We need to communicate how to create such webhook endpoint, what is it etc.
https://the-guild.dev/graphql/hive/docs/management/projects#alert-channels
We also need to communicate this change by creating a product update.
662b9ac
to
2ba1762
Compare
💻 Website PreviewThe latest changes are available as preview in: https://25f4fbb3.hive-landing-page.pages.dev |
how do we create those? Where? |
0e8b5ec
to
4a3d6fb
Compare
packages/web/docs/src/pages/product-updates/2024-06-14-ms-teams-webhooks-alerts.mdx
Outdated
Show resolved
Hide resolved
bfddcd7
to
edbecd2
Compare
c416c87
to
65d9daa
Compare
@kamilkisiela should be ready for second PR round |
|
||
We added support for configuring MS Teams webhooks to receive alerts and notifications from Hive. | ||
|
||
![MS Teams Webhook dialog](/changelog/2024-06-14-ms-teams-webhooks-alerts/project-msteams-alert.png) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's use a picture that shows the remaining app in the background, so it is not just one big modal covering the full-screen width. Similar to https://the-guild.dev/graphql/hive/product-updates/2024-04-09-approval-comment
packages/web/docs/src/pages/product-updates/2024-06-14-ms-teams-webhooks-alerts.mdx
Outdated
Show resolved
Hide resolved
I tried to push the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added some feedback
that table definitely needs some truncating. I have very wide monitor, for me it looked much better. The maximum payload size for an incoming webhook message in Microsoft Teams is 28 KB. This includes the entire JSON payload, not just the Markdown content. Will add truncation there for max length of 27KB to be safe |
a504aff
to
eaa0bdd
Compare
eaa0bdd
to
d07cc6b
Compare
on CI lint is failing:
locally when running lint I get no issues, just some deprecation warning I did touch those files, but I cannot see anything that could be a problem. I tried running |
Apart from that eslint weirdness everything is green, so I am requesting review |
…sCommunicationAdapter
Background
closes #4538
This is how it looks when you add/remove a channel:
This is how a schema change looks in teams
on FE I have added a link to the guide how to setup webhook in ms teams:
once you add your URL it goes like this:
Description
Mostly just added a new CommunicationAdapter and extended BE/FE code which was assuming we only have two adapters
Testing
if you want to test on your local, you can use my ms teams webhook:
https://jspac.webhook.office.com/webhookb2/d11d2f0d-7820-4684-b721-e0d8e9a94ab8@4b220568-ffe7-4204-a3c5-5c6bebc60ab9/IncomingWebhook/1a693644edbc449c8a1ce9306d9c13ef/4a134898-79cd-4a70-9405-abfecd2879f4
Checklist