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

Make payload delimiter configurable #281

Merged
merged 6 commits into from
Aug 28, 2024
Merged

Make payload delimiter configurable #281

merged 6 commits into from
Aug 28, 2024

Conversation

rzumer
Copy link
Contributor

@rzumer rzumer commented Jan 17, 2024

Fixes #280.

Summary

The default key delimiter when flattening payloads is a period, which is not allowed in Slack workflow variable keys. This makes the slack-send action unusable with Slack workflows/incoming webhooks if the payload contains nested keys as there is no way to access those keys (as far as I can tell).

For example if I want to include workflow metadata from GitHub in my payload with ${{ toJson(github) }}, all nested keys are inaccessible, and if I want to compose this with other custom variables by nesting the serialized github values like "github": ${{ toJson(github) }}, "some-key": "some-value", then all of the GitHub metadata is inaccessible because it's all prefixed with github. and can't be entered as a variable key in a Slack workflow. Underscores and hyphens are both valid, so changing to an underscore makes all those nested keys accessible. See flat docs

Tested on a private workflow by building and calling the action directly from my branch.

This leaves the default as a period but allows users to override it by setting the payload-delimiter option alongside the payload sent to the action.

Requirements (place an x in each [ ])

The default key delimiter when flattening payloads is a period, which is not allowed in Slack workflow variable keys.
Copy link

Thanks for the contribution! Before we can merge this, we need @rzumer to sign the Salesforce Inc. Contributor License Agreement.

@zimeg zimeg added bug Something isn't working semver:major server-side issue labels Apr 12, 2024
@zimeg zimeg added this to the 2.0 milestone Apr 12, 2024
@zimeg
Copy link
Member

zimeg commented Apr 12, 2024

👋 Following up from #280 - I haven't heard of any immediate plans to support dot notation from Workflow Builder so I'm thinking this change is the right way to handle nested payloads going forward.

Since this can change key values of webhook inputs I believe this is a breaking change and will plan to include it in the next major version. Really appreciate the patience on introducing this change so far. We'll take a look at other possible changes we might want to include in a major version before merging this, but please know it's not forgotten!

@rzumer
Copy link
Contributor Author

rzumer commented Apr 12, 2024

Thanks for the follow-up!

@zimeg
Copy link
Member

zimeg commented May 15, 2024

👋 Hey @rzumer! Been thinking about this a bit and I'm hoping to avoid making a breaking change here since it's uncertain whether dot notion might eventually be supported by Workflow Builder. Also not wanting to keep this held up since flattening payloads can be super useful, so I was wondering if instead of a replacement, the delimiter can be added as an optional input argument?

I was thinking of something like the following, but let me know what you think and if this sounds good for you!

  - uses: slackapi/slack-github-action@v1.26.0
    with:
      payload: |
        {
          "example": {
            "value": "12"
          }
        }
+     payload-delimiter: '_'
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

@rzumer rzumer changed the title Use underscore delimiter for flattening Make payload delimiter configurable Jun 18, 2024
@rzumer
Copy link
Contributor Author

rzumer commented Jun 18, 2024

@zimeg Sorry for the delay, I've made that change and reverted the default to a period. I only tested the syntax in a JavaScript interpreter on its own this time since I don't have the build/deployment system set up for testing anymore, but it's a pretty simple change so hopefully that's fine with you.

Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rzumer No worries- thanks for making the update! The code changes look solid but I think we'll also need to add this to action.yml inputs with a bit or blurb of documentation in the technique 1 section for the new option 📚 After that I think this is set to merge! 🚀

Edit: It'd be nice to include a test case or two to confirm that these changes don't break later too 🙏

This reverts the default payload delimiter to a period and allows setting the `payload-delimiter` option to override it.
@rzumer
Copy link
Contributor Author

rzumer commented Jul 18, 2024

I updated the commit to document the new field and mention it in the readme.

As for test cases, the development environment I'd set up for initial testing is gone, there is no existing test case that tests the flattened payload for reference on how to access it, and there are no testing instructions, so I just don't have the time to figure this all out right now, sorry for the trouble.

By the way, this is tagged with semver:major, but now that the default delimiter matches the current behavior, it should be minor.

Copy link

codecov bot commented Aug 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 97.91%. Comparing base (c50e848) to head (9008c33).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #281      +/-   ##
==========================================
+ Coverage   96.84%   97.91%   +1.07%     
==========================================
  Files           2        2              
  Lines          95       96       +1     
==========================================
+ Hits           92       94       +2     
+ Misses          3        2       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rzumer Apologies for the above force pushes- something strange happened with my remotes, but I did add a few tests to catch possible regressions! You were right to call out that this section wasn't being covered yet 😅

The docs additions you made are appreciated! 🙏 Even though we aren't changing the default delimiter to use an underscore as the default value, I do think it's worth encouraging it as a default when nested payloads are used. It's not the most ideal, but this seems like an alright workaround for these cases!

I have also tested this with a local workflow and am finding that configurations are working just as expected! 🚀 With that, I think it's time we can merge this for the next minor version - a good call here. We might need to update a few of our dependencies before this, but I'm hoping it'll be soon 📦

Thank you again for calling out the strangeness of how we were flattening these nested payloads ❤️

@zimeg zimeg merged commit b452451 into slackapi:main Aug 28, 2024
4 checks passed
adamnolte referenced this pull request in autoblocksai/autoblocks-examples Sep 3, 2024
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
|
[@tailwindcss/forms](https://github.com/tailwindlabs/tailwindcss-forms)
| [`0.5.7` ->
`0.5.8`](https://renovatebot.com/diffs/npm/@tailwindcss%2fforms/0.5.7/0.5.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fforms/0.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fforms/0.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fforms/0.5.7/0.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fforms/0.5.7/0.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`20.16.1` ->
`20.16.3`](https://renovatebot.com/diffs/npm/@types%2fnode/20.16.1/20.16.3)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.16.1/20.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.16.1/20.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.3.4` ->
`18.3.5`](https://renovatebot.com/diffs/npm/@types%2freact/18.3.4/18.3.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.3.4/18.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.3.4/18.3.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [ai](https://sdk.vercel.ai/docs)
([source](https://github.com/vercel/ai)) | [`3.3.18` ->
`3.3.25`](https://renovatebot.com/diffs/npm/ai/3.3.18/3.3.25) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ai/3.3.25?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ai/3.3.25?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ai/3.3.18/3.3.25?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ai/3.3.18/3.3.25?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [dspy-ai](https://github.com/stanfordnlp/dsp) | `2.4.13` ->
`2.4.14` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/dspy-ai/2.4.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/dspy-ai/2.4.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/dspy-ai/2.4.13/2.4.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/dspy-ai/2.4.13/2.4.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[eslint-config-next](https://nextjs.org/docs/app/building-your-application/configuring/eslint#eslint-config)
([source](https://github.com/vercel/next.js/tree/HEAD/packages/eslint-config-next))
| [`14.2.6` ->
`14.2.7`](https://renovatebot.com/diffs/npm/eslint-config-next/14.2.6/14.2.7)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-next/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-next/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-next/14.2.6/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-next/14.2.6/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [guardrails-ai](https://www.guardrailsai.com/) | `0.5.5` -> `0.5.6` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/guardrails-ai/0.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/guardrails-ai/0.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/guardrails-ai/0.5.5/0.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/guardrails-ai/0.5.5/0.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [httpx](https://github.com/encode/httpx)
([changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md))
| `0.27.0` -> `0.27.2` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/httpx/0.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/httpx/0.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/httpx/0.27.0/0.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/httpx/0.27.0/0.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [next](https://nextjs.org)
([source](https://github.com/vercel/next.js)) | [`14.2.6` ->
`14.2.7`](https://renovatebot.com/diffs/npm/next/14.2.6/14.2.7) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/next/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/next/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/next/14.2.6/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/next/14.2.6/14.2.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [openai](https://github.com/openai/openai-python) | `1.42.0`
-> `1.43.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/openai/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/openai/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/openai/1.42.0/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/openai/1.42.0/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [openai](https://github.com/openai/openai-node) | [`4.56.0`
-> `4.57.0`](https://renovatebot.com/diffs/npm/openai/4.56.0/4.57.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.56.0/4.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.56.0/4.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [postcss](https://postcss.org/)
([source](https://github.com/postcss/postcss)) | [`8.4.41` ->
`8.4.44`](https://renovatebot.com/diffs/npm/postcss/8.4.41/8.4.44) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.4.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.4.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.4.41/8.4.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.4.41/8.4.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
|
[slackapi/slack-github-action](https://github.com/slackapi/slack-github-action)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/github-tags/slackapi%2fslack-github-action/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/slackapi%2fslack-github-action/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/slackapi%2fslack-github-action/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/slackapi%2fslack-github-action/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| action | minor |
| [tsx](https://tsx.is)
([source](https://github.com/privatenumber/tsx)) | [`4.18.0` ->
`4.19.0`](https://renovatebot.com/diffs/npm/tsx/4.18.0/4.19.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/tsx/4.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tsx/4.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tsx/4.18.0/4.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tsx/4.18.0/4.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |

---

### Release Notes

<details>
<summary>tailwindlabs/tailwindcss-forms
(@&#8203;tailwindcss/forms)</summary>

###
[`v0.5.8`](https://github.com/tailwindlabs/tailwindcss-forms/blob/HEAD/CHANGELOG.md#058---2024-08-28)

[Compare
Source](https://github.com/tailwindlabs/tailwindcss-forms/compare/v0.5.7...v0.5.8)

##### Fixed

- Support installing with alpha versions of Tailwind CSS v4
([#&#8203;163](https://github.com/tailwindlabs/tailwindcss-forms/pull/163))

</details>

<details>
<summary>vercel/ai (ai)</summary>

###
[`v3.3.25`](https://github.com/vercel/ai/releases/tag/ai%403.3.25)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.24...ai@3.3.25)

##### Patch Changes

- [`4f1530f`](https://github.com/vercel/ai/commit/4f1530f):
feat (ai/core): add OpenTelemetry Semantic Conventions for GenAI
operations to v1.27.0 of standard
- [`dad775f`](https://github.com/vercel/ai/commit/dad775f):
feat (ai/core): add finish event and avg output tokens per second
(telemetry)

###
[`v3.3.24`](https://github.com/vercel/ai/releases/tag/ai%403.3.24)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.23...ai@3.3.24)

##### Patch Changes

- [`d87a655`](https://github.com/vercel/ai/commit/d87a655): fix
(ai/core): provide fallback when globalThis.performance is not available

###
[`v3.3.23`](https://github.com/vercel/ai/releases/tag/ai%403.3.23)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.22...ai@3.3.23)

##### Patch Changes

- [`b55e6f7`](https://github.com/vercel/ai/commit/b55e6f7): fix
(ai/core): streamObject text stream in array mode must not include
elements: prefix.

###
[`v3.3.22`](https://github.com/vercel/ai/releases/tag/ai%403.3.22)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.21...ai@3.3.22)

##### Patch Changes

- [`a5a56fd`](https://github.com/vercel/ai/commit/a5a56fd): fix
(ai/core): only send roundtrip-finish event after async tool calls are
done

###
[`v3.3.21`](https://github.com/vercel/ai/releases/tag/ai%403.3.21)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.20...ai@3.3.21)

##### Patch Changes

- [`aa2dc58`](https://github.com/vercel/ai/commit/aa2dc58):
feat (ai/core): add maxToolRoundtrips to streamText
- Updated dependencies
\[[`aa2dc58`](https://github.com/vercel/ai/commit/aa2dc58)]
-
[@&#8203;ai-sdk/ui-utils](https://github.com/ai-sdk/ui-utils)[@&#8203;0](https://github.com/0).0.40
-
[@&#8203;ai-sdk/react](https://github.com/ai-sdk/react)[@&#8203;0](https://github.com/0).0.53
-
[@&#8203;ai-sdk/solid](https://github.com/ai-sdk/solid)[@&#8203;0](https://github.com/0).0.43
-
[@&#8203;ai-sdk/svelte](https://github.com/ai-sdk/svelte)[@&#8203;0](https://github.com/0).0.45
-
[@&#8203;ai-sdk/vue](https://github.com/ai-sdk/vue)[@&#8203;0](https://github.com/0).0.45

###
[`v3.3.20`](https://github.com/vercel/ai/releases/tag/ai%403.3.20)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.19...ai@3.3.20)

##### Patch Changes

- [`7807677`](https://github.com/vercel/ai/commit/7807677): fix
(rsc): Deep clone currentState in getMutableState()

###
[`v3.3.19`](https://github.com/vercel/ai/releases/tag/ai%403.3.19)

[Compare
Source](https://github.com/vercel/ai/compare/ai@3.3.18...ai@3.3.19)

##### Patch Changes

- [`7235de0`](https://github.com/vercel/ai/commit/7235de0): fix
(ai/core): convertToCoreMessages accepts Message\[]

</details>

<details>
<summary>stanfordnlp/dsp (dspy-ai)</summary>

###
[`v2.4.14`](https://github.com/stanfordnlp/dspy/releases/tag/2.4.14):
DSPy v2.4.14

[Compare
Source](https://github.com/stanfordnlp/dsp/compare/2.4.13...2.4.14)

</details>

<details>
<summary>vercel/next.js (eslint-config-next)</summary>

###
[`v14.2.7`](https://github.com/vercel/next.js/compare/v14.2.6...v14.2.7)

[Compare
Source](https://github.com/vercel/next.js/compare/v14.2.6...v14.2.7)

</details>

<details>
<summary>encode/httpx (httpx)</summary>

###
[`v0.27.2`](https://github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0272-27th-August-2024)

[Compare
Source](https://github.com/encode/httpx/compare/0.27.1...0.27.2)

##### Fixed

- Reintroduced supposedly-private `URLTypes` shortcut.
([#&#8203;2673](https://github.com/encode/httpx/issues/2673))

###
[`v0.27.1`](https://github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0271-27th-August-2024)

[Compare
Source](https://github.com/encode/httpx/compare/0.27.0...0.27.1)

##### Added

- Support for `zstd` content decoding using the python `zstandard`
package is added. Installable using `httpx[zstd]`.
([#&#8203;3139](https://github.com/encode/httpx/issues/3139))

##### Fixed

- Improved error messaging for `InvalidURL` exceptions.
([#&#8203;3250](https://github.com/encode/httpx/issues/3250))
- Fix `app` type signature in `ASGITransport`.
([#&#8203;3109](https://github.com/encode/httpx/issues/3109))

</details>

<details>
<summary>vercel/next.js (next)</summary>

###
[`v14.2.7`](https://github.com/vercel/next.js/compare/v14.2.6...v14.2.7)

[Compare
Source](https://github.com/vercel/next.js/compare/v14.2.6...v14.2.7)

</details>

<details>
<summary>openai/openai-python (openai)</summary>

###
[`v1.43.0`](https://github.com/openai/openai-python/blob/HEAD/CHANGELOG.md#1430-2024-08-29)

[Compare
Source](https://github.com/openai/openai-python/compare/v1.42.0...v1.43.0)

Full Changelog:
[v1.42.0...v1.43.0](https://github.com/openai/openai-python/compare/v1.42.0...v1.43.0)

##### Features

- **api:** add file search result details to run steps
([#&#8203;1681](https://github.com/openai/openai-python/issues/1681))
([f5449c0](https://github.com/openai/openai-python/commit/f5449c07580ac9707f0387f86f4772fbf0a874b6))

</details>

<details>
<summary>openai/openai-node (openai)</summary>

###
[`v4.57.0`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4570-2024-08-29)

[Compare
Source](https://github.com/openai/openai-node/compare/v4.56.2...v4.57.0)

Full Changelog:
[v4.56.2...v4.57.0](https://github.com/openai/openai-node/compare/v4.56.2...v4.57.0)

##### Features

- **api:** add file search result details to run steps
([#&#8203;1023](https://github.com/openai/openai-node/issues/1023))
([d9acd0a](https://github.com/openai/openai-node/commit/d9acd0a2c52b27983f8db6a8de6a776078b1d41b))

##### Bug Fixes

- install examples deps as part of bootstrap script
([#&#8203;1022](https://github.com/openai/openai-node/issues/1022))
([eae8e36](https://github.com/openai/openai-node/commit/eae8e36fd5514eb60773646ec775badde50e783c))

###
[`v4.56.2`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4562-2024-08-29)

[Compare
Source](https://github.com/openai/openai-node/compare/v4.56.1...v4.56.2)

Full Changelog:
[v4.56.1...v4.56.2](https://github.com/openai/openai-node/compare/v4.56.1...v4.56.2)

##### Chores

- run tsc as part of lint script
([#&#8203;1020](https://github.com/openai/openai-node/issues/1020))
([4942347](https://github.com/openai/openai-node/commit/49423472f2b0a0b63961174bedfc00bfd99d47f9))

###
[`v4.56.1`](https://github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4561-2024-08-27)

[Compare
Source](https://github.com/openai/openai-node/compare/v4.56.0...v4.56.1)

Full Changelog:
[v4.56.0...v4.56.1](https://github.com/openai/openai-node/compare/v4.56.0...v4.56.1)

##### Chores

- **ci:** check for build errors
([#&#8203;1013](https://github.com/openai/openai-node/issues/1013))
([7ff2127](https://github.com/openai/openai-node/commit/7ff21273091a605e05173502654cfb9c90a4382e))

</details>

<details>
<summary>postcss/postcss (postcss)</summary>

###
[`v8.4.44`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8444)

[Compare
Source](https://github.com/postcss/postcss/compare/8.4.43...8.4.44)

-   Another way to fix `markClean is not a function` error.

###
[`v8.4.43`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8443)

[Compare
Source](https://github.com/postcss/postcss/compare/8.4.42...8.4.43)

-   Fixed `markClean is not a function` error.

###
[`v8.4.42`](https://github.com/postcss/postcss/blob/HEAD/CHANGELOG.md#8442)

[Compare
Source](https://github.com/postcss/postcss/compare/8.4.41...8.4.42)

- Fixed CSS syntax error on long minified files (by
[@&#8203;varpstar](https://github.com/varpstar)).

</details>

<details>
<summary>slackapi/slack-github-action
(slackapi/slack-github-action)</summary>

###
[`v1.27.0`](https://github.com/slackapi/slack-github-action/releases/tag/v1.27.0):
Slack Send V1.27.0

[Compare
Source](https://github.com/slackapi/slack-github-action/compare/v1.26.0...v1.27.0)

#### What's changed

This release introduces an optional `payload-delimiter` parameter for
flattening nested objects with a customized delimiter before the payload
is sent to Slack Workflow Builder when using workflow webhook triggers.

```diff
  - name: Send a custom flattened payload
    uses: slackapi/slack-github-action@v1.27.0
+   with:
+     payload-delimiter: "_"
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
```

Setting this value to an underscore (`_`) is recommended when using
nested inputs within Workflow Builder to match expected input formats of
Workflow Builder, but the actual value can be changed to something else!
This "flattening" behavior **did** exist prior to this version, but used
a period (`.`) which is not valid for webook inputs in Workflow Builder.

<details>
<summary>Flattening example</summary>

The resulting output of flattened objects is not always clear, but the
following can hopefully serve as a quick reference as well as [these
specs](https://github.com/slackapi/slack-github-action/blob/5d1fb07d3c4f410b8d278134c714edff31264beb/test/slack-send-test.js#L264-L319)
when using `_` as the delimiter:

**Input**:

```json
{
    "apples": "tree",
    "bananas": {
        "truthiness": true
    }
}
```

**Output**:

```json
{
    "apples": "tree",
    "bananas_truthiness": "true"
}
```

Notice that `bananas_truthiness` is also stringified in this process, as
part of updating values to match the expected inputs of Workflow
Builder!

</details>

#### Changes

In addition to the changes above, the following lists all of the changes
since the prior version with the **complete changelog** changes found
here:
slackapi/slack-github-action@v1.26.0...v1.27.0

##### 🎁 Enhancements

- Make payload delimiter configurable in
[https://github.com/slackapi/slack-github-action/pull/281](https://github.com/slackapi/slack-github-action/pull/281)
- thanks [@&#8203;rzumer](https://github.com/rzumer)!

##### 📚 Documentation

- doc: how to reply to a message in
[https://github.com/slackapi/slack-github-action/pull/309](https://github.com/slackapi/slack-github-action/pull/309)
- thanks
[@&#8203;WilliamBergamin](https://github.com/WilliamBergamin)!

##### 🔒 Security

- chore(deps): bump axios to 1.7.5 to address CVE-2024-39338 in
[https://github.com/slackapi/slack-github-action/pull/332](https://github.com/slackapi/slack-github-action/pull/332)
- thanks [@&#8203;zimeg](https://github.com/zimeg)!

##### 🧪 Maintenance

- Add codecov coverage uploading in
[https://github.com/slackapi/slack-github-action/pull/308](https://github.com/slackapi/slack-github-action/pull/308)
- thanks [@&#8203;filmaj](https://github.com/filmaj)!
- ci(test): run integration tests in a single sequential environment in
[https://github.com/slackapi/slack-github-action/pull/310](https://github.com/slackapi/slack-github-action/pull/310)
- thanks [@&#8203;zimeg](https://github.com/zimeg)!

##### 📦  Dependencies

- Bump eslint-plugin-jsdoc from 48.2.2 to 48.2.3 in
[https://github.com/slackapi/slack-github-action/pull/305](https://github.com/slackapi/slack-github-action/pull/305)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- Bump
[@&#8203;slack/web-api](https://github.com/slack/web-api) from
7.0.2 to 7.0.4 in
[https://github.com/slackapi/slack-github-action/pull/307](https://github.com/slackapi/slack-github-action/pull/307)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump sinon from 17.0.1 to 18.0.0 in
[https://github.com/slackapi/slack-github-action/pull/313](https://github.com/slackapi/slack-github-action/pull/313)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump eslint-plugin-jsdoc from 48.2.3 to 48.2.7 in
[https://github.com/slackapi/slack-github-action/pull/314](https://github.com/slackapi/slack-github-action/pull/314)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps): bump axios from 1.6.8 to 1.7.2 in
[https://github.com/slackapi/slack-github-action/pull/315](https://github.com/slackapi/slack-github-action/pull/315)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps): bump codecov/codecov-action from 4.0.1 to 4.4.1 in
[https://github.com/slackapi/slack-github-action/pull/316](https://github.com/slackapi/slack-github-action/pull/316)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump nyc from 15.1.0 to 17.0.0 in
[https://github.com/slackapi/slack-github-action/pull/319](https://github.com/slackapi/slack-github-action/pull/319)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump eslint-plugin-jsdoc from 48.2.7 to 48.5.0 in
[https://github.com/slackapi/slack-github-action/pull/321](https://github.com/slackapi/slack-github-action/pull/321)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump mocha from 10.4.0 to 10.5.2 in
[https://github.com/slackapi/slack-github-action/pull/322](https://github.com/slackapi/slack-github-action/pull/322)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps): bump codecov/codecov-action from 4.4.1 to 4.5.0 in
[https://github.com/slackapi/slack-github-action/pull/324](https://github.com/slackapi/slack-github-action/pull/324)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps): bump
[@&#8203;slack/web-api](https://github.com/slack/web-api) from
7.0.4 to 7.2.0 in
[https://github.com/slackapi/slack-github-action/pull/323](https://github.com/slackapi/slack-github-action/pull/323)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps): bump https-proxy-agent from 7.0.4 to 7.0.5 in
[https://github.com/slackapi/slack-github-action/pull/320](https://github.com/slackapi/slack-github-action/pull/320)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump eslint-plugin-jsdoc from 48.5.0 to 48.10.2 in
[https://github.com/slackapi/slack-github-action/pull/325](https://github.com/slackapi/slack-github-action/pull/325)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump chai from 4.4.1 to 4.5.0 in
[https://github.com/slackapi/slack-github-action/pull/326](https://github.com/slackapi/slack-github-action/pull/326)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps): bump
[@&#8203;slack/web-api](https://github.com/slack/web-api) from
7.2.0 to 7.3.2 in
[https://github.com/slackapi/slack-github-action/pull/327](https://github.com/slackapi/slack-github-action/pull/327)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!
- build(deps-dev): bump mocha from 10.5.2 to 10.7.0 in
[https://github.com/slackapi/slack-github-action/pull/328](https://github.com/slackapi/slack-github-action/pull/328)
- thanks [@&#8203;dependabot](https://github.com/dependabot)!

#### 🎉 New contributors

- [@&#8203;rzumer](https://github.com/rzumer) made their first
contribution in
[https://github.com/slackapi/slack-github-action/pull/281](https://github.com/slackapi/slack-github-action/pull/281)!

</details>

<details>
<summary>privatenumber/tsx (tsx)</summary>

###
[`v4.19.0`](https://github.com/privatenumber/tsx/compare/v4.18.0...157c3ec6bcf0b0a5e387080576404c00f7fd662f)

[Compare
Source](https://github.com/privatenumber/tsx/compare/v4.18.0...v4.19.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
America/Chicago, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/autoblocksai/autoblocks-examples).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nested keys in JSON payloads can't be accessed in Slack workflows
2 participants