Skip to content

[pull] main from hookdeck:main#102

Merged
pull[bot] merged 18 commits intoerickirt:mainfrom
hookdeck:main
Mar 25, 2026
Merged

[pull] main from hookdeck:main#102
pull[bot] merged 18 commits intoerickirt:mainfrom
hookdeck:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Mar 25, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

leggetter and others added 18 commits March 24, 2026 16:39
Tag pushes set GITHUB_REF to refs/tags/..., which makes sdk-generation-action
derive an invalid GitHub PR base. Add a tag-triggered dispatch workflow that
starts sdk-generate-on-release.yml via workflow_dispatch with ref main, and
pass the tag as release_tag for v1.0.0 SDK version overrides.

Update contributing/release.md and contributing/sdks.md for the two-step flow.

Made-with: Cursor
* `Outpost.Attempts.List()`:  `response.Models[]` **Changed** (Breaking ⚠️)
* `Outpost.Attempts.Get()`:  `response` **Changed** (Breaking ⚠️)
* `Outpost.Destinations.ListAttempts()`:  `response.Models[]` **Changed** (Breaking ⚠️)
* `Outpost.Destinations.GetAttempt()`:  `response` **Changed** (Breaking ⚠️)
* `Outpost.Metrics.GetEventMetrics()`: **Added**
* `Outpost.Metrics.GetAttemptMetrics()`: **Added**
* `outpost.attempts.list()`:  `response.models[]` **Changed** (Breaking ⚠️)
* `outpost.attempts.get()`:  `response` **Changed** (Breaking ⚠️)
* `outpost.destinations.list_attempts()`:  `response.models[]` **Changed** (Breaking ⚠️)
* `outpost.destinations.get_attempt()`:  `response` **Changed** (Breaking ⚠️)
* `outpost.metrics.get_event_metrics()`: **Added**
* `outpost.metrics.get_attempt_metrics()`: **Added**
* `outpost.attempts.list()`:  `response.models[]` **Changed** (Breaking ⚠️)
* `outpost.attempts.get()`:  `response` **Changed** (Breaking ⚠️)
* `outpost.destinations.listAttempts()`:  `response.models[]` **Changed** (Breaking ⚠️)
* `outpost.destinations.getAttempt()`:  `response` **Changed** (Breaking ⚠️)
* `outpost.metrics.getEventMetrics()`: **Added**
* `outpost.metrics.getAttemptMetrics()`: **Added**
…15.0-sdk-gen-1774371999

chore: 🐝 Update SDK - Generate OUTPOST-TS [release-v0.15.0-sdk-gen] 0.9.2
…elog conflicts

Combine Typescript + Python SDK changelog sections after TS landed on base.

Made-with: Cursor
…15.0-sdk-gen-1774371012

chore: 🐝 Update SDK - Generate OUTPOST-PYTHON [release-v0.15.0-sdk-gen] 0.8.2
…elog conflicts

Combine Go + Typescript + Python SDK changelog sections.

Made-with: Cursor
…15.0-sdk-gen-1774370823

chore: 🐝 Update SDK - Generate OUTPOST-GO [release-v0.15.0-sdk-gen] 0.8.2
* feat(portal): use URL-based routing for create destination steps

Replace in-memory step index with URL paths (/new/topics, /new/type,
/new/config) so the browser back/forward buttons work between steps.

- Refactor CreateDestination into a layout component with nested routes
- Extract TopicsStep, TypeStep, ConfigStep into separate components
- Share form state across steps via React context
- Track max reached step to control sidebar navigation
- Redirect to first step when accessing /new or /new/config without data

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(portal): persist step data in URL search params for refresh support

Encode topics and type as search params (?topics=a,b&type=webhook) so
refreshing on /new/config preserves the selected destination type and
topics. If required params are missing, redirect back to first step.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Kafka integration test was always failing because the test
configured SASL PLAIN credentials but the Kafka containers ran
with PLAINTEXT listeners (no SASL), causing "Illegal SASL State"
errors.

- Add SASL PLAIN config to compose test-kafka container
- Add kafka_jaas.conf mounted into the container
- Update testcontainer with matching SASL config
- Update test consumer and topic helper to use SASL dialer

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…get-main

fix(ci): vendor Speakeasy executor + checkout fix for tag-based SDK generation
Allow disabling the webhook header prefix by setting it to whitespace
(e.g. " "). The provider trims whitespace, so " " effectively sets
the prefix to empty string.

- Config `toConfig()` converts string→*string: empty=""→nil (default),
  non-empty→&value
- `WithHeaderPrefix(*string)`: nil keeps default, non-nil applies with
  TrimSpace
- Add tests for nil/empty/whitespace/custom prefix in both providers

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Change the destination delete handler to return `{ "success": true }`
instead of the full destination object, matching the tenant delete
behavior and the OpenAPI spec.

Closes #705

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@pull pull bot locked and limited conversation to collaborators Mar 25, 2026
@pull pull bot added the ⤵️ pull label Mar 25, 2026
@pull pull bot merged commit a0f6826 into erickirt:main Mar 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants